中堅プログラマーの備忘録

忘れっぽくなってきたので備忘録として・・・

visual studio

【C#.net】名前付きパイプで非同期のプロセス間通信をする

1.概要 2.サーバー側 2.クライアント側 4.動作 1.概要 同じPC内でのプロセス間通信を名前付きパイプでやってみようと思います。 1対1のプロセス間通信なら匿名パイプでこと足りますが なんせ匿名パイプは親子関係が必要になり使い勝手が悪いです。 ソケット…

【C#.net】Visual StudioでDLLを作成して使う

1.概要 2.DLLとは 3.DLLの作成 4.DLLを使う 5.DLLの更新 1.概要 WindowsアプリケーションプログラミングにおいてDLLは切っても切り離せない関係性です。 意識しなくても、知らず知らずのうちにDLLを使っている場合もあるでしょう。今回は自分でDLLを作成し、…

【C#.net】FileSystemWatcherの挙動について検証する

1.概要 2.確認用ソース 3.確認方法 4.検証結果 ①ドラッグアンドドロップ ②【Ctrl + v】でのコピー ③FTPでのファイル転送 5.考察 1.概要 Windowsで特定のディレクトリを監視して、操作に対するイベントを補足するには 【FileSystemWatcherクラス】を使うのが…

【C#.net】DIO-0808LY-USBを使ってI/Oの制御を行う

1.概要 2.ドライバーのインストール 3.動作確認 4.プロジェクトにクラスライブラリの追加 5.まとめ 1.概要 外部I/Oを取り込んでアプリケーションで判断を行うためには PCにI/Oポートがない場合が多いので専用のデバイスが必要になります。 使用するデバイス…

【C#.net】Jsonファイルから任意の文字列でkeyを指定しvalueを取得する

1.概要 2.Jsonファイルを扱う 3.やりたいこと 4.スクリプト 1.概要 無料でありWeb APIから情報が取得できるサービスが非常にたくさん存在しています。 非常に便利でお世話になることも多いのではないでしょうか? 但し、無料であるが故、いつサービスが終了…

【C#.net】PictureBox、AxWindowsMediaPlayerのメモリ解放について

1.概要 2.PictureBoxの挙動について 3.AxWindowsMediaPlayerの挙動について アプリケーション概要 不具合内容 対策 4.スクリプト 5.まとめ 1.概要 画像、動画のViewerを作成していた時に メモリが徐々に増加していることの気づきました。 自分ではしっかりと…

【Visual Studio】プロジェクトの初期設定でやるべきこと

1.概要 2.プラットフォームターゲットを【x64】に設定する 解説 方法 3.Visual Studioホスティングプロセスを無効にする 解説 方法 4.PDBファイルを作成しないようにする 解説 方法 1.概要 新規でプロジェクトを作成した場合に、やるべき設定をまとめました…

【C#.net】USBメモリの挿入を検知して、取り外しまで行う。

1.概要 2.実現方法 挿入の検知 ドライブレターの取得 取り外し 3スクリプト 4.まとめ 1.概要 最近は情報漏洩の問題でセキュリティ機能付きUSBメモリの使用が推奨されています。 私の会社でも普通のUSBメモリは使えないという状況です。 なかなか厳しい世の中…

【C#.net】関数からの戻り値を複数取得したい・・・Tuple型を使う

1.概要 2.参照渡しを使う方法 3.Tuple型を使う方法 4.使ってみた感想 1.概要 例えば下記のようなファイルを削除する関数があります。 private bool FileDelete(string filePass) { try { System.IO.File.Delete(filePass); return true; } catch (Exception …

【C#.net】ZipArchiveクラスを使ってzipファイルの解凍処理を行う

1.概要 2.準備をする 3.スクリプト 4.解凍処理の流れ 5.実行結果 1.概要 アプリケーションでZipファイルの解凍処理を行う場合 サードパーティ製のものを使うという選択肢が一般的だったかと思います。 フリーのライブラリである【SharpZipLib】を使ったこと…

【c#.net】asyn/awaitについてTcpClientクラスを使って非同期処理を検証する

1.概要 2.基本的な使い方 3.TcpClientクラスを非同期にする 4.まとめ 1.概要 C#5.0から追加になった非同期処理【async/await】について 使いにくい【TcpClient】クラスをあえて使って検証してみます。様々な機能を持ったアプリケーションでは非同期処理はマ…

【C#.net】フォーム間でのデータの受け渡し方法のサンプル

1.概要 2.親Formから子Formにデータを渡す 実行結果 3.子フォームの操作結果を取得する 実行結果 4.親子間でデータをやり取りする 実行結果 1.概要 Formアプリケーションを作成する際に 複数のFormを扱う場面があるかと思います。 そんな時に使えるForm間の…

【522 SSL connection failed; session reuse required:】の原因と解決策を考える

1.概要 2.原因 3.サーバー側でなおす 4.クライアント側でなおす 5.KeepAliveについて 1.概要 FTPSでファイル転送のシステムを構築している時に クライアントアプリ側【FtpWebRequest】で下記のエラーが発生しました。リモート サーバーがエラーを返しました:…

【Visula Studio】管理者権限を持ったアプリケーションを作成する

1.概要 2.特に意識せず作成した場合 3.アプリケーションに管理者権限を与える 4.実行する 1.概要 Visual Studioで作成したアプリケーションで システムファイルやレジストリの操作を行う場合 アプリケーションを管理者権限で起動する必要があります。管理者…

【C#.net】FtpWebRequestがあまりにも使えないのでFluentFTPを使う

1.概要 2.対策 3.FluentFTPを使う 4.スクリプト 5.使ってみた感想 1.概要 FTPSクライアント機能を持ったアプリケーションを作成していた時に 下記の不具合に遭遇しました。不具合が確認できた条件としては サーバはHTTPサーバとしての機能はあるが、FTPサー…

【C#.net】RS232Cで【制御文字(STX、ETX)】を送るにはどうしたらいいのか?

1.概要 2.16進コードをbyte型配列にする 3.byte型配列を送る 4.スクリプト 5.結果 1.概要 RS232C通信を行う時、文字列であれば【serialPort1.Write】または【serialPort1.WriteLine】に 送信したい文字列を突っ込めば、送信することは出来ますが 送信したい…

【C#.net】アクティブウィンドウの状態を切り替え、監視制御を行う。

1.概要 運用上、常にアクティブ状態である必要があるアプリケーションウィンドウがあります。 これが何かしらの原因で、フォーカスが失われアクティブ状態から抜けてしまうことがあります。 例えば、エラーポップアップなどがこれにあたるのではないでしょう…

【visual studio】Setup ProjectでProgramDataにファイルを配置する方法

1.概要 2.インストーラーの作成 3.ProgramDataにデータを配置する設定をする 4.結果 1.概要 visual studioで作成したアプリケーションを配布する際に 【InstallSield】や【InnoSetup】など様々なものがありますが 今回はvisual studio 2012まで標準であった…

【C#.net】文字列で指定したクラスのインスタンスを作成し、値を設定する

1.概要 2.文字列からTypeの取得 3.Typeからインスタンスを作成する。 4.値を設定する 5.やりたかったこと 1.概要 同じような機能を持った関数が乱立するようなコードは コードが長くなる原因となるため可読性が悪くなってしまい バグの温床になりかねません…

【C#.net】SerialPortクラスを使ってRS232C通信を行う

1.概要 2.SerialPortクラスを使う 3.使用可能なポートを取得する 4.ポートの設定を行う 5.スクリプト 6.実行する 1.概要 最近のPCには標準で搭載されていないことが多くなってきましたが 外部デバイスの制御にはRS232C通信がまだ根強く残っており アプリケー…

【Visual Studio】「アンセーフコードは/unsafeでコンパイルした場合のみ有効です」エラーへの対応

C#.netでポインターを扱う場合、unsafeキーワードを用いる必要があります。 ただこのunsafeキーワードは【Visual Studio】の設定を変更しないと コンパイルエラーが出てしまうので、これを下記のとおり設定変更してあげる必要があります。設定方法は簡単で …

C#.netでwebBrowserを作成してみる。【chromium】

1.概要 2.インストールする 3.【Any CPU】でも使えるようにする 4.スクリプト 開発環境:visual studio2015 開発言語:C#.net 1.概要 以前の記事で【WebBrowserコントロール】を使って ブラウザを組み込んだアプリケーションを作成してみました。 ですが、デ…

【c#.net】タスクトレイに常駐するアプリケーションの設定をする

1.概要 2.コントロールの追加 3.【NotifyIcon】の設定 4.【CntextMenuStrip】の設定 5.アプリケーションの動作 6アプリケーションの設定 7.スクリプト 8.結果 開発環境:visual studio2015 開発言語:C#.net 1.概要 タスクトレイに常駐しているアプリケーシ…

【vb.net】windowsアプリケーションからGmailでメールを送信する

1.概要 2.スクリプト 3.結果 1.概要 アプリケーションを作成する際に 簡易的に状態通知を行いたい時があります。 メールサーバーを構築してもいいですが、 そこまでする必要性があるのか?と思うときもあります。 そんな時にGmailを使って状態通知が出来れば…

【C#.net】windowsにインストールされているアプリケーションのバージョンを取得する

1.概要 2.レジストリ 3.原理 4.スクリプト 5.結果 1.概要 インストーラーを使ってインストールされたアプリケーションは レジストリにその情報が登録されています。 【コントロールパネル】にある【プログラムと機能】の一覧にあるアプリケーションのバージ…

c#.netでファイルをダウンロードするにはWebClientクラスを使うのがいいのか?

1.概要 2.検証内容 ①バイナリ型式でダウンロードする。 ②非同期処理(デッドロックしないようにする) ③ダウンロード完了時にイベントを発生させる ④ダウンロードのタイムアウト時間を設ける 開発環境;visual studio 2015 開発言語:c#.net 1.概要 WEB上にあ…

c#.netでWMIを利用してPCの起動時間を取得する

開発環境:visual studio2015 開発言語:c#.net現在動作しているPCが本当に想定された時間に起動したものなのか? これを知りたい時がありました。 理由としては、もしかして想定外の再起動処理をしてないか? または、停電によるインフラ側の不具合があるの…

C#.netでwebBrowserを作成してみる。【IE11】

開発環境:visual studio2015 開発言語:C#.net.netFrameworkにはWebBrowserコントロールというものがあって アプリケーション内にブラウザを組み込むことが可能です。 今回はこれを使ってみました。 事前作業としてFormにwebBrowserコントロールを貼り付け…

c#.netでMediaElementを使って、WPFアプリケーションの動画プレイヤーを作成する

開発環境:visual studio 2015 開発言語:C#.net以前、Formアプリケーションで【WindowsMediaPlayerコントロール】を使って 簡単な動画プレイヤーを作成してみましたが 今回はWPFの【MediaElement】を使って動画プレイヤーを作成してみました。 【WPFアプリ…

.netアプリケーションでコマンドライン引数を取得する

開発環境:visual studio2015 開発言語:C#アプリケーション起動時にパラメーターを渡したい場合 【System.Environment.CommandLine】プロパティか 【System.Environment.GetCommandLineArgs() 】メソッドを使用します。まずはフォームアプリケーションでプ…