Back to Top

プログラムの覚書

Category: VB構文・その他

VB.NET WMIで情報を取得する

WMIを使用すると、ハードウェア情報、ソフトウェア情報など様々な情報を所得することが出来ます。

WMIを使用するためには、「System.Management.dll」を参照する必要があります。

ManagementObjectSearcher、ManagementObjectクラスを使用して情報を取得得します。

現在起動中のプロセスを取得する

Dim MS = New System.Management.ManagementObjectSearcher()
Dim MC As System.Management.ManagementObjectCollection

MS.Query.QueryString = "SELECT * FROM Win32_Process"
MC = MS.Get()

For Each MO As System.Management.ManagementObject In MC
    Dim s = MO("Description").ToString() & ":" & MO("ProcessId").ToString()
    Console.WriteLine("{0}", s)
Next

・検索はSQL文と同じようなものです。

選択の内容は、WMI/MI/OMI Providersを見てください。

ちなみに”Win32_Process”は、CIMWin32 WMI Providers > Win32 Provider > Operating System Classes > Win32_Process class にあります。

 

シリアルポートのデバイス名を取得する

Dim MS = New System.Management.ManagementObjectSearcher()
Dim MC As System.Management.ManagementObjectCollection

MS.Query.QueryString = "SELECT * FROM Win32_SerialPort"
MC = MS.Get()

For Each MO As System.Management.ManagementObject In MC
    Dim s = MO("Name").ToString()
    Console.WriteLine("{0}", s)
Next

※プロセス取得との違いは、QueryStringの選択文字列と項目の名前だけです。

 

VB.NET マウスカーソル

マウスカーソルの位置および、形状の取得・変更の方法を記載します。

画面座標のマウスポインタの位置を取得する

Dim spos As System.Drawing.Point = System.Windows.Forms.Cursor.Position

 

フォーム上のマウスポインタの位置を取得する

Dim spos As System.Drawing.Point = System.Windows.Forms.Cursor.Position

'画面座標をクライアント座標に変換する
Dim cpos As System.Drawing.Point = Me.PointToClient(spos)

・画面座標をクライアント座標に変換することで取得します。

 

フォーム上のマウスポインタを移動する

'クライアント座標を画面座標に変換する
Dim pos As System.Drawing.Point = Me.PointToScreen(New System.Drawing.Point(10, 10))

'マウスポインタの位置を設定
System.Windows.Forms.Cursor.Position = pos

 

全てのフォーム及びコントロール上のカーソルを変更

Cursor.Current = Cursors.WaitCursor       '形状変更

System.Threading.Thread.Sleep(10000)      '停止する

Cursor.Current = Cursors.Default          '元に戻す

Cursorsクラス

 

特定のフォーム及びコントロール上のカーソルを変更

Me.Cursor = Cursors.WaitCursor

System.Threading.Thread.Sleep(10000)

Me.Cursor = Cursors.Default