C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■436  二重起動を確実に禁止する
□投稿者/ スフレ -(2005/05/24(Tue) 00:03:36)

    分類:[VB6以前] 


    分類:[VB6以前] 

    @ITの掲示板から http://jeanne.wankuma.com/tips/process/02-mutex.html 「二重起動を確実に禁止する」に辿り着いたのですが、このページのVB6の例、間違ってます。このコードだと、該当プロセスがない状態から2つのプロセスがほぼ同時に起動すると、

    1. プロセス1でOpenMutex()が呼ばれる。返り値 0
    2. プロセス2でOpenMutex()が呼ばれる。返り値 0
    3. プロセス2でCreateMutex()が呼ばれる。成功。
    4. プロセス1でCreateMutex()が呼ばれる。失敗。
    5. プロセス1とプロセス2の両方でアプリケーション本体へ

    ということが有り得ます。

    正しい手順は、最初にCreateMutex()を呼びます。

親記事 /0過去ログ1より / 関連記事表示
削除チェック/

■11568  Re[1]: C++/CLIでのリソースの解放について
□投稿者/ Hongliang -(2007/12/18(Tue) 07:22:43)
>
    > これは参照はガベージコレクションが起きるまでが有効なので、上のコードは基本的には通常の動作をしながら
    > いきなりIsDisposedの参照部分で実行時エラーを起こしてしまう可能性があるということなのでしょうか?

    GC が発生するまで参照が有効なのではなく、参照が残っている間は GC によって回収されません。
    hForm が Form インスタンスを参照している限り hForm は GC の対象になりません。
    hForm に別のインスタンスを代入することで、それまで参照していたインスタンスは(他に参照されていなければ)GC の対象になります。
    また、デストラクタはインスタンスを破棄するものではありません。
記事No.11566 のレス /過去ログ25より / 関連記事表示
削除チェック/

■22525  Re[1]: DataTableへ配列の値を入れたい
□投稿者/ やじゅ -(2008/07/25(Fri) 05:09:27)
>
    2008/07/25(Fri) 09:31:07 編集(投稿者)

    No22521 (気合 さん) に返信
    > DataTableへ配列の値(仮に1〜100までの値)を格納したいです。for文で回したりしていれずコピーなどでどうにか入らないものでしょうか?
    > ご教授願いします

    配列を使わないで、ArrayList型などのコレクション系を使用して、
    DataTableに格納すればいいでしょう。

    取出す時には、指定した型(ArrayList型など)でキャストする必要があるけどね。

    ※ご教授→ご教示が適切ね


    ★訂正: 質問の意図が違っていたかもしれません。
    下記のようなことをしたいのかな??

    配列の内容を一気にDataTableにセットしたい
    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=14324&forum=7&7
記事No.22521 のレス /過去ログ43より / 関連記事表示
削除チェック/

■43505  Re[1]: プログラムを途中で止める方法
□投稿者/ GOD -(2009/11/11(Wed) 18:02:42)
    No43503 (がながな さん) に返信
    > VB.NETで走らせているプログラムを途中で止めたいのですが、どのようにすれば止まるでしょうか?
    >
    これは何を想定して書いてます?
    IDEでデバッグ中にですか?EXEファイルの実行中ですか?
    前者なら「CTRL+BREAK」キーで止まるみたい(VB2008環境ではIDE側の画面選択後にキー押下 または 一時停止ボタンクリック)ですが、後者なら何かしらプログラムを書いてください。
記事No.43503 のレス /過去ログ74より / 関連記事表示
削除チェック/

■62936  Re[2]: C#でのクローズイベント
□投稿者/ hoido -(2011/11/10(Thu) 22:02:48)
    NF64様回答ありがとうございました。
    無事解決できました。
記事No.62926 のレス / END /過去ログ105より / 関連記事表示
削除チェック/

■93016  USB接続の検出方法
□投稿者/ じょこびっち -(2019/11/14(Thu) 14:45:04)

    分類:[C#] 

    USBで接続している特定のデバイスが電源OFF、またはUSBが抜けてしまった時に「接続が切れました」的なメッセージを出したいのですが、どのようにしたらUSBの接続が外れたり差し込まれたりの検出ができるのでしょうか?
    調べてみてもManagementScopやらManagementEventWatcherやらEventArrivedEventHandlerやら、メインフォームに書くのか、クラスを新しく作るのかもよくわかりませんでした。
    よろしくお願いします。
親記事 /過去ログ161より / 関連記事表示
削除チェック/

■93017  Re[1]: USB接続の検出方法
□投稿者/ 魔界の仮面弁士 -(2019/11/14(Thu) 15:11:02)
    2019/11/14(Thu) 15:16:11 編集(投稿者)

    No93016 (じょこびっち さん) に返信
    > どのようにしたらUSBの接続が外れたり差し込まれたりの検出ができるのでしょうか?

    過去ログとしては No66415 , No78061 , No91134 あたりでしょうか。
    WndProc メソッドをオーバーライドして、WM_DEVICECHANGE メッセージ (0x219) を捉えたら拾えるかも。
    OS 側でデバイスとして認識されない、給電目的で繋がれるデバイスなどは駄目でしょうけれど…。


    > USBで接続している特定のデバイスが電源OFF、またはUSBが抜けてしまった時に

    ここで想定しているデバイスはどういったものでしょうか。

    USB 接続されるデバイスとしては、電力線利用の LED ライトや扇風機とかもありますし、
    USB-PD で PC 側に電力供給するための AC 電源などもあります。


    電源 OFF という点だけ見ると、USB マウス や USB キーボード といった HID 系では無さそう。
    モバイルハードディスクや光学ディスクドライブ、スピーカー、USB ハブ、
    USB モニターなどについては、スイッチのあるものと無いものがありますが、
    USB 接続の LAN や USB メモリー、カードリーダー等は、電源スイッチは
    付いていないものしか見たことが無いです。

    電源スイッチのある可能性が高そうなデバイスとしては、プリンターとか、
    USB 接続の Wi-Fi ルーターとか、ビデオカメラなど…?
記事No.93016 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93023  Re[2]: USB接続の検出方法
□投稿者/ じょこびっち -(2019/11/15(Fri) 09:16:24)
    No93017 (魔界の仮面弁士 さん) に返信
    >
    > 過去ログとしては No66415 , No78061 , No91134 あたりでしょうか。
    > WndProc メソッドをオーバーライドして、WM_DEVICECHANGE メッセージ (0x219) を捉えたら拾えるかも。
    > OS 側でデバイスとして認識されない、給電目的で繋がれるデバイスなどは駄目でしょうけれど…。

    WM_DEVICECHANGEは捉える事が出来ました。
    でも、DBT_DEVICEARRIVALやDBT_DEVICEREMOVECOMPLETEは捉えられません。
    ちなみにDBT_DEVICEARRIVALをDBT_DEVNODES_CHANGED(0x0007)に書き換えたら捉えられました。
    DBT_DEVICEARRIVALやDBT_DEVICEREMOVECOMPLETEは無理なのでしょうか?

    protected override void WndProc(ref Message m)
    {
    if (m.Msg == 0x219)
    {
    if (m.WParam.ToInt32() == 0x8000)
    {
    MessageBox.Show("8000");
    }
    else if (m.WParam.ToInt32() == 0x8004)
    {
    MessageBox.Show("8004");
    }
    }
    base.WndProc(ref m);
    }


    > ここで想定しているデバイスはどういったものでしょうか。
    >
    > 電源スイッチのある可能性が高そうなデバイスとしては、プリンターとか、
    > USB 接続の Wi-Fi ルーターとか、ビデオカメラなど…?

    オシロスコープです。
    USBにオシロがつながっているなどの特定は難しいのでしょうか?
記事No.93016 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93024  Re[3]: USB接続の検出方法
□投稿者/ みい -(2019/11/15(Fri) 09:25:01)
    オシロなら測定以外の状態取得やバージョン取得のコマンド(関数)はありませんか?
    応答がなかったら切断とみなし、切断されたら成功するまで定期的に接続を試みるとか。
記事No.93016 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93026  Re[4]: USB接続の検出方法
□投稿者/ じょこびっち -(2019/11/15(Fri) 09:48:49)
    2019/11/15(Fri) 10:00:19 編集(投稿者)

    No93024 (みい さん) に返信
    > オシロなら測定以外の状態取得やバージョン取得のコマンド(関数)はありませんか?
    > 応答がなかったら切断とみなし、切断されたら成功するまで定期的に接続を試みるとか。

    みいさん。
    そうなんですよね。それは念頭にあるんですよ。
    WM_DEVICECHANGEを捉えたらコマンドを送って接続状況を判断する。
    しかし、せっかくなので更に詳しい事も知っておければ後で役に立ちますし、コードを書く時に色んな判断が出来ると思っています。
    アドバイスしていただいたのに申し訳ありません。
記事No.93016 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93028  Re[5]: USB接続の検出方法
□投稿者/ とっちゃん -(2019/11/15(Fri) 10:30:45)
    No93026 (じょこびっち さん) に返信

    > WM_DEVICECHANGEを捉えたらコマンドを送って接続状況を判断する。
    > しかし、せっかくなので更に詳しい事も知っておければ後で役に立ちますし、コードを書く時に色んな判断が出来ると思っています。
    > アドバイスしていただいたのに申し訳ありません。

    Device管理系はまずはここのページを読むところからかなぁ。。。

    ・Device Management(Mirosoft Docs)
    https://docs.microsoft.com/en-us/windows/win32/devio/device-management?WT.mc_id=DT-MVP-32182

    接続したデバイスとのやり取りは機械固有のやり取りが基本になりますが、そうではなく全般となるとまたいろいろと違ってきます。
    RegisterDeviceNotification もきちんと対象となるインターフェースを指定しておけばかなりいろんな情報を通知してもらえるはずです。
記事No.93016 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93029  Re[6]: USB接続の検出方法
□投稿者/ じょこびっち -(2019/11/15(Fri) 13:16:30)
    No93028 (とっちゃん さん) に返信
    >
    > 接続したデバイスとのやり取りは機械固有のやり取りが基本になりますが、そうではなく全般となるとまたいろいろと違ってきます。
    > RegisterDeviceNotification もきちんと対象となるインターフェースを指定しておけばかなりいろんな情報を通知してもらえるはずです。
    >
    少し読んで気が付いたのですが、USBメモリを抜き差ししたら
    No93023のコードでDBT_DEVICEARRIVALとDBT_DEVICEREMOVECOMPLETEは捉えられました。
    オシロスコープだけ捉えられませんでした。
    てことはRegisterDeviceNotificationでオシロスコープを指定すれば(何をどう指定するの?)いいって事ですか?
    あまり理解出来てないので抵当な事を言ってしまっているかもですが。。。
記事No.93016 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93030  Re[7]: USB接続の検出方法
□投稿者/ じょこびっち -(2019/11/15(Fri) 13:42:15)
    このサイトに記載されているコードを試したらできました。
    https://stackoverflow.com/questions/1976573/using-registerdevicenotification-in-a-net-app

    とっちゃんさんのおっしゃる通りRegisterDeviceNotificationを使っていますね。
    これから解析して理解してみたいと思います。

    魔界の仮面弁士さん、みいさん、とっちゃんさん
    アドバイスありがとうございました。
    次回もよろしくお願いします。
記事No.93016 のレス / END /過去ログ161より / 関連記事表示
削除チェック/

■95100  Re[6]: SMTPでメールを送信がしたい
□投稿者/ KOZ -(2020/06/23(Tue) 15:16:56)
記事No.95089 のレス /過去ログ164より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -