ネットでこのコードを見つけましたが、使い方がわかりません。目的のウィンドウがアクティブな場合に実行されるコードを作成したいだけです。
これは、私の研究について読んだAPI用です。
<DllImport("USER32.DLL", EntryPoint:="GetActiveWindow", SetLastError:=True,
CharSet:=CharSet.Unicode, ExactSpelling:=True,
CallingConvention:=CallingConvention.StdCall)>
Public Shared Function GetActiveWindowHandle() As System.IntPtr
End Function
<DllImport("USER32.DLL", EntryPoint:="GetWindowText", SetLastError:=True,
CharSet:=CharSet.Unicode, ExactSpelling:=True,
CallingConvention:=CallingConvention.StdCall)>
Public Shared Function GetActiveWindowText(ByVal hWnd As System.IntPtr, ByVal lpString As System.Text.StringBuilder, ByVal cch As Integer) As Integer
End Function
彼はこれを使ってテキストを取得しました。
Dim caption As New System.Text.StringBuilder(256)
Dim hWnd As IntPtr = GetActiveWindowHandle()
GetActiveWindowText(hWnd, caption, caption.Capacity)
MsgBox(caption.ToString)
そのコードを に入れましたform_load()
が、何も表示されません。何も起こらないように。どこに置くべきか、それを機能させる方法。If
ウィンドウのタイトルを取得してステートメントに入れたい。このコードを使用しているプログラマーも何人か見つけました。
Dim hWnd As IntPtr = GetForegroundWindow()
If
フォーカスのあるウィンドウを特定し、テキストを取得してステートメントに入れたいだけです。このコードをもっと単純化してください。FOCUS ウィンドウと ACTIVE ウィンドウの違いは何ですか? ACTIVE は開いているウィンドウだと思いますが、ユーザーが使用しているのは FOCUS だけです。FOCUSのタイトルが知りたいです。
例えば、
If "title of the window on focus" = "notepad" Then
MsgBox("notepad")
Else
MsgBox("not notepad")
End If
また、2 つのウィンドウが開いている場合、メモ帳がフォーカスされている場合はメッセージ ボックスにメモ帳が表示され、ユーザーがフォーカスを別のウィンドウに変更すると、メッセージ ボックスにメモ帳ではないというメッセージが自動的に表示されます。