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

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

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

全過去ログを検索

<< 0 >>
■22347  Re[11]: わんくま同盟勉強会 福岡#2 検討スレッド
□投稿者/ オムライス禁止! -(2008/07/18(Fri) 16:33:35)
>
    > まだまだ福岡勉強会、LT枠スピーカー枠を募集しております。
    > 手弁当ではございますが、皆様の立候補をお待ちしております。

    LTスピーカは弁当持ちでないと間に合わないかも...
    というか、間に合いませんでしたorz
    #オムライス禁止!ですねorz


    No21653 (うつせみ(虚蝉) さん) に返信
    > >ゆーちさん
    > 勉強会のスピーカー楽しみにしております。
    > 前回の続き…確実に会場がドッカンドッカンですか?
    >
    > まだまだ福岡勉強会、LT枠スピーカー枠を募集しております。
    > 手弁当ではございますが、皆様の立候補をお待ちしております。
記事No.21522 のレス /過去ログ44より / 関連記事表示
削除チェック/

■27783  Re[8]: VB6のコードをC#に書き換えるには。
□投稿者/ C#初心者 -(2008/11/14(Fri) 14:46:01)
    No27781 (.SHO さん) に返信
    >>keisan '呼び出し関数
    >>こちらなんですけど、VBではSubプロシージャを呼びだせるんですけど、
    >>C#にも同じようなやり方はあるのでしょうか?
    > 
    > keisan();
    > です。
    
    ありがとうございます。
    
    Trim(Str(dData1))なのですが、
    これは、
    dData1.ToString()
    であってますでしょうか?
記事No.27767 のレス /過去ログ51より / 関連記事表示
削除チェック/

■47068  Re[1]: msiのダイアログに表示される文字に改行を入れるには?
□投稿者/ オショウ -(2010/02/17(Wed) 23:11:07)
記事No.47064 のレス /過去ログ79より / 関連記事表示
削除チェック/

■64367  Re[3]: MonthCalendarの休日表示
□投稿者/ shu -(2012/11/29(Thu) 14:20:15)
    No64284 (howling さん) に返信
    > mizuさん
    >
    > まずは100トピック目おめでとうございます(ぉ
    100トピックより前は過去ログに流れているだけですよ。


    > で、自作で作るって話ですが、WPF+C#なら良いコードっぽいのありますねぇ。
    > このわんくまの方のだw
    >
    > http://blogs.wankuma.com/kazuki/archive/2008/01/20/118342.aspx
    >
    > VBで作るとなると、WPF使えるのかなぁ???
    > 昔はWPF使うならC#とか仕事で言ってた気がするけど、
    > あれからまったく触ってないのでさっぱり。
    VB.NETでWPFは可能ですよ。
記事No.64281 のレス /過去ログ108より / 関連記事表示
削除チェック/

■66415  カードリーダーによるSDメモリ利用の監視について
□投稿者/ YY -(2013/04/22(Mon) 13:47:13)

    分類:[VB.NET/VB2005 以降] 

    こんにちは、お世話になります。

    XPpro+VB2008

    USBデバイスの検出したくいろいろ調べています。
    下記のサンプルコードでは、USBデバイスの抜き差しの検知はできるようになっていますが、
    ただし、USBメモリリーダーに挿入しても反応しません。この問題を解決したくご質問させていただきました。
    どうぞよろしくお願い致します。
    参照URL:
    ttp://hcs-papa.seesaa.net/article/169705315.html

    サンプルコード-------------ここから-------------------------

    Private WM_DEVICECHANGE = &H219
    Private Enum DBT As Int32
    DBT_DEVICEARRIVAL = &H8000
    DBT_DEVICEQUERYREMOVE = &H8001
    DBT_DEVICEQUERYREMOVEFAILED = &H8002
    DBT_DEVICEREMOVEPENDING = &H8003
    DBT_DEVICEREMOVECOMPLETE = &H8004
    End Enum
    Private Enum DBT_DEVICETYPE
    DBT_DEVICETYPE_OEM = &H0
    DBT_DEVICETYPE_DEVNODE = &H1
    DBT_DEVICETYPE_VOLUME = &H2
    DBT_DEVICETYPE_PORT = &H3
    DBT_DEVICETYPE_NET = &H4
    DBT_DEVICETYPE_DEVICEINTERFACE = &H5
    DBT_DEVICETYPE_HANDLE = &H6
    End Enum
    Public Structure DEV_BROADCAST_VOLUME
    Public dbcv_size As UInt32
    Public dbcv_devicetype As UInt32
    Public dbcv_reserved As UInt32
    Public dbcv_unitmask As UInt32
    End Structure
    Protected Overrides Sub WndProc(ByRef m As _
    System.Windows.Forms.Message)
    Select Case m.Msg
    Case WM_DEVICECHANGE
    Dim dbv As New DEV_BROADCAST_VOLUME
    dbv = _
    Marshal.PtrToStructure(m.LParam, _
    GetType(DEV_BROADCAST_VOLUME))
    If dbv.dbcv_devicetype = _
    DBT_DEVICETYPE.DBT_DEVICETYPE_VOLUME Then
    Dim drv As String = ""
    drv = getDriveString(dbv.dbcv_unitmask)
    Select Case m.WParam.ToInt32
    Case DBT.DBT_DEVICEARRIVAL
    MessageBox.Show(drv & "を取り付けた!")
    Case DBT.DBT_DEVICEREMOVECOMPLETE
    MessageBox.Show(drv & "を取り外した!")
    Case Else
    End Select
    End If
    Case Else
    End Select
    MyBase.WndProc(m)
    End Sub

    Private Function getDriveString(ByVal lParam As Int32) As String
    getDriveString = ""
    Dim I As Integer
    For I = 0 To 25
    If lParam And 1 Then
    Exit For
    End If
    lParam >>= 1
    Next
    If I >= 26 Then
    Exit Function
    End If
    getDriveString = Chr(Asc("A") + I)
    End Function
    サンプルコード-------------ここまで-------------------------
親記事 /過去ログ112より / 関連記事表示
削除チェック/

■66426  Re[1]: カードリーダーによるSDメモリ利用の監視について
□投稿者/ shu -(2013/04/23(Tue) 08:30:20)
    No66415 (YY さん) に返信

    DriveInfo辺りで取得できないですか?
    試してはいません。
記事No.66415 のレス /過去ログ112より / 関連記事表示
削除チェック/

■66427  Re[2]: カードリーダーによるSDメモリ利用の監視について
□投稿者/ YY -(2013/04/23(Tue) 09:17:16)
    shu 様
    ご回答どうもありがとうございます。


    > DriveInfo辺りで取得できないですか?

    dim oDrive As IO.DriveInfo
    For Each oDrive In IO.DriveInfo.GetDrives
    if oDrive.DriveType = IO.DriveType.Removable And oDrive.IsReady Then
    debug.print(oDrive.Name)
    endif
    next

    これにより、装着済み(SDカードなどをカードリーダーに挿入し、カードリーダーをPCへ接続済みの状態)でプログラムを実行した場合は
    oDrive.Name の結果は得られますが、
    ただし、プログラムを実行し、カードリーダーをPCへ接続した状態で、SDカードのみ抜き差しすると無反応です。
    なんとかこの状態(プログラムを実行し、カードリーダーをPCへ接続した状態で)でも SDカードなどカードリーダーの抜き差しを検知し
    その有効ドライブを監視したい。
記事No.66415 のレス /過去ログ112より / 関連記事表示
削除チェック/

■66429  Re[3]: カードリーダーによるSDメモリ利用の監視について
□投稿者/ 774RR -(2013/04/23(Tue) 10:49:21)
    USB フロッピードライブで、フロッピーディスクを使ったことはある?

    USB ドライブ自体の脱着では WM_DEVICECHANGE がやってくるが
    ドライブにフロッピーディスクを抜き差ししても WM_DEVICECHANGE は来ないんだ。
    同じことが起きているんだろう。

    USB カードリーダー自体の脱着では WM_DEVICECHANGE がやってくるが
    そのカードリーダーに SD メモリを抜き差ししても WM_DEVICECHANGE は来ないんだろう。

    SD カードの抜き差しで WM_DEVICECHANGE が来るタイプのリーダーを使うか
    WM_DEVICECHANGE に頼らず他の方法でチェックするか、どっちかだろう。
記事No.66415 のレス /過去ログ112より / 関連記事表示
削除チェック/

■66432  Re[4]: カードリーダーによるSDメモリ利用の監視について
□投稿者/ YY -(2013/04/23(Tue) 11:08:52)
    774RR 様
    ご回答どうもありがとうございます。

    > USB ドライブ自体の脱着では WM_DEVICECHANGE がやってくるが
    > ドライブにフロッピーディスクを抜き差ししても WM_DEVICECHANGE は来ないんだ。
    > 同じことが起きているんだろう。

    おっしゃる通りです。

    >
    > SD カードの抜き差しで WM_DEVICECHANGE が来るタイプのリーダーを使うか

    こういうタイプのリーダーもあるのですね。ただ 対応しないリーダーも検知したいので..

    > WM_DEVICECHANGE に頼らず他の方法でチェックするか、どっちかだろう。

    WM_DEVICECHANGE に頼らず他にどんな方法があるか教えていただけませんでしょう。
記事No.66415 のレス /過去ログ112より / 関連記事表示
削除チェック/

■66437  Re[5]: カードリーダーによるSDメモリ利用の監視について
□投稿者/ 774RR -(2013/04/23(Tue) 12:09:56)
    何をどうすべきかは、要望というか案件というか次第だろう。

    タイマーでも使って定期的に DriveInfo を取得するとか?
    そこまでする必然があるかどうか、あたりから検討が必要そう。

    メディアの着脱をいちいち通知しないってことは「いつ抜いてもいい」って意味だ。
    タイマーで定期的に読み込む=ユーザーの着脱とタイミングがかぶる可能性がある。
    たとえ読み込みアクセスであってもアクセス中に抜くのはまずそうな気がする。
記事No.66415 のレス /過去ログ112より / 関連記事表示
削除チェック/

■66436  Re[5]: カードリーダーによるSDメモリ利用の監視について
□投稿者/ とっちゃん -(2013/04/23(Tue) 12:07:11)
>
    No66432 (YY さん) に返信

    > WM_DEVICECHANGE に頼らず他にどんな方法があるか教えていただけませんでしょう。

    一応。。。選択肢だけ。
    RegisterDeviceNotification API という、デバイスからの通知を受け取るためのメッセージ登録があります。

    .NET からはちょっと使いにくいAPIかもしれませんが、メディアの抜き差しもチェックできた気がします。

    http://msdn.microsoft.com/en-us/library/aa363217.aspx
    ここに、登録できる通知メッセージがいろいろ出てますので、確認してみてください。


    もし、このAPIを使っても検出できないという場合は、ポーリングになります。
記事No.66415 のレス /過去ログ112より / 関連記事表示
削除チェック/

■66446  Re[6]: カードリーダーによるSDメモリ利用の監視について
□投稿者/ YY -(2013/04/23(Tue) 15:35:05)
    とっちゃん 様 774RR 様 
    ご回答どうもありがとうございます。

    > RegisterDeviceNotification API という、デバイスからの通知を受け取るためのメッセージ登録があります。

    いろいろ調べてみましたが、下記の記事を見つけました。8年前の記事でした(;゚Д゚)!
    http://microsoft.public.jp.visualc.narkive.com/hhXH7VQD

    それから、下記のサンプルコードでテストしてみましたが、
    やはり、(カードリーダーをPCへ接続した状態で、SDカードを挿入した場合は無反応でした。)
    http://timwappat.info/page/ub-funkey-usb-detection-example-vbnet-wpf.aspx

    >
    > もし、このAPIを使っても検出できないという場合は、ポーリングになります。

    タイマーで、774RR様のご指摘のようにあんまり良い方法ではないですが、
    残りこの方法しかないでしたら仕方ない。
    でも、ちょっと納得行かないですよね。(素人考え’OSよ、こんなんことでなぜ簡単に把握できないの!!’)独り言(;´Д`)

    引き続きなにかタイマーなどをつかった良いアイデアご存知でしたらご教示の程宜しくお願い致します。





記事No.66415 のレス /過去ログ112より / 関連記事表示
削除チェック/

■66450  Re[7]: カードリーダーによるSDメモリ利用の監視について
□投稿者/ とっちゃん -(2013/04/23(Tue) 17:14:17)
>
    No66446 (YY さん) に返信
    > とっちゃん 様 774RR 様 
    > ご回答どうもありがとうございます。
    >
    >>RegisterDeviceNotification API という、デバイスからの通知を受け取るためのメッセージ登録があります。
    >
    > いろいろ調べてみましたが、下記の記事を見つけました。8年前の記事でした(;゚Д゚)!
    > http://microsoft.public.jp.visualc.narkive.com/hhXH7VQD
    >
    懐かしい。。。MSのNewsGroupに投稿したやつだ。
    あそこ、検索できたんだ。。。知らなかったw

    えっと、かなり面倒ですがこの方法でXPでは検出できてます。
    少なくとも当時はピックアップできてました。

    当時は、XP以前のOS(2000や9x系)での検出ができなかったので
    結果的にはポーリングを選択したんですよねー。
    #ちなみにお仕事的に使ってたのは、デジカメメディアの検出


    >その後、糸口が見つかり、なんとか検出できるようになりました。

    と、書かれてる部分で、SetupDi系 API使ってガチャガチャやってる部分を
    使えば、メディアの抜き差しも検出できるようになるはずです。

    このあたりは、Vista以降でも変わってないと思います。
記事No.66415 のレス /過去ログ112より / 関連記事表示
削除チェック/

■66454  Re[8]: カードリーダーによるSDメモリ利用の監視について
□投稿者/ YY -(2013/04/23(Tue) 17:54:59)
    とっちゃん 様
    ご回答どうもありがとうございます。


    > 懐かしい。。。MSのNewsGroupに投稿したやつだ。

    8年前からガチャガチャ(熱意を感じられますヽ〔゚Д゚〕丿スゴイ)


    >
    > >その後、糸口が見つかり、なんとか検出できるようになりました。
    >
    > と、書かれてる部分で、SetupDi系 API使ってガチャガチャやってる部分を
    > 使えば、メディアの抜き差しも検出できるようになるはずです。
    >
    > このあたりは、Vista以降でも変わってないと思います。

    なんとかその部分をVB.NETに変換できないかチャレンジしてみます。(素人ながら・・・(;´Д`))
記事No.66415 のレス /過去ログ112より / 関連記事表示
削除チェック/

■66455  Re[9]: カードリーダーによるSDメモリ利用の監視について
□投稿者/ とっちゃん -(2013/04/23(Tue) 18:30:23)
>
    No66454 (YY さん) に返信
    > なんとかその部分をVB.NETに変換できないかチャレンジしてみます。(素人ながら・・・(;´Д`))

    ざっと見た感じでは、変換はできるんじゃないかな?とは思いますが、P/Invoke苦手なのでよくわからんですw

    うまく変換できないようなら、ここができない!と質問すれば、VBに詳しい人たちが教えてくれると思いますよ。
    #その時はスレッド分けてピンポイントで質問することをお勧めします。
記事No.66415 のレス /過去ログ112より / 関連記事表示
削除チェック/

■84250  Re[1]: ウインドウズ98でN88BASICを起動させたい
□投稿者/ とっちゃん -(2017/06/05(Mon) 14:45:11)
    No84248 (ITB5259 さん) に返信
    > ウインドウズ98でN88BASICを起動させたい。
    >
    > ウインドウズ98が有、N88BASICで作ったプログラムが有ります。
    > MS-DOSにはなります。N88BASICはありますがインストールするのでしょうか?
    >
    > なんとか起動させたいのですが、どうしたら良いか分りません!
    >
    >
    N88-BASIC は、NEC のPC-8801シリーズ用のベーシック言語+OS(mkII以降は、DOS(Disk Operating System)としての役割も持つ)です。
    これとは別に、NEC PC-9801シリーズ用に N88-BASIC(86)というのもあります。
    こちらは、MS-DOSに搭載できるバージョンもあります。

    が、前者は 8bit CPU 搭載マシンで、Windows 98 は動きません。
    後者は、NEC PC-9801/9821 シリーズのマシンじゃないと動作しません。
    また、一部のプログラムは、同じ PC-9801 シリーズでもXA系のハイレゾモデルでは動作しません(グラフィックの関係)。

    その他、歴史的なことは、Wikipediaなどを見てみるといいかもしれません。

    さて。。。現状、Windows 98 が動いているマシンがあり(OSがあるだけではだめ)、
    さらに、N88-BASIC で作られたプログラムがある。

    プログラムがどんなものかにもよりますが、
    http://www.vector.co.jp./soft/win95/prog/se055956.html

    という、互換ベーシックがあります。動作環境は、Windows95/98 らしいです。
    プログラムの内容次第なので本当に動くかどうかはわかりませんが、こんなのもありますというところで。

    導入等々は自己責任で。
記事No.84248 のレス /過去ログ144より / 関連記事表示
削除チェック/

■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より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -