投稿日 | : 2006/05/20(Sat) 17:00 |
投稿者 | : いか |
Eメール | : |
URL | : |
タイトル | : sendmessageでファンクションキーの送信 |
VB6.0です。宜しくお願いします。
APIでファンクションキーの送信は出来るでしょうか?文字や例えばEnterキーなんかは文字コードでc
hr(13)
で送信していますが、ファンクションキーの送り方が分からないので、センドキーステートメントで
SendKeys "{F3}"と送っていますが、少し不安なので、APIで送ることが出来ないかと思っ
ています。
現在、以下のようなコードで送っています。
Sub 送信()
Dim lngTargetWindowHandle As Long
Dim strSendDataBuffer As String
Dim lngSendDataBufferSize As Long
Dim bytSendDataBuffer() As Byte
Dim udtSendCopydata As COPYDATASTRUCT
Dim lngResult As Long
cmd = Chr(13)'エンター
'文字列を送信するウィンドウのハンドルが取得できたときは
If lngTargetWindowHandle <> 0 Then
' 送信する文字列を設定
strSendDataBuffer = StrConv(cmd, vbFromUnicode)
strSendDataBuffer = strSendDataBuffer
' 送信する文字列のサイズを算出
lngSendDataBufferSize = LenB(strSendDataBuffer) + 1
' COPYDATA構造体を設定
udtSendCopydata.dwData = 1
' バッファのサイズ
udtSendCopydata.cbData = lngSendDataBufferSize
' バッファの先頭アドレス
udtSendCopydata.lpData = StrPtr(strSendDataBuffer)
' WM_COPYDATAメッセージを送信
lngResult = SendMessage(lngTargetWindowHandle, WM_COPYDATA, _
Form1.hwnd, udtSendCopydata)
End If
End Sub
宜しくお願いします。