[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間: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

宜しくお願いします。

投稿時間:2006/05/20(Sat) 19:41
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: sendmessageでファンクションキーの送信
ここの逆引きヘルプの
アクティブウインドウにキーストロークを送る や
キーストロークをシミュレート(押下げ・制御)する(SendInput関数使用) では
参考にもなりませんか?

投稿時間:2006/05/21(Sun) 22:03
投稿者名:いか
Eメール:
URL :
タイトル:
Re^2: sendmessageでファンクションキーの送信
> ここの逆引きヘルプの
> アクティブウインドウにキーストロークを送る や
> キーストロークをシミュレート(押下げ・制御)する(SendInput関数使用) では
> 参考にもなりませんか?

そのような参考資料があったとは知りませんでした、これから当たってみます。
有難う御座います。

投稿時間:2006/05/21(Sun) 22:16
投稿者名:いか
Eメール:
URL :
タイトル:
Re^3: sendmessageでファンクションキーの送信
花ちゃん様有難う御座います。かなり参考になりそうです。
内容が多いのでまだ全体を把握できませんが、これから、解読して
目的のことが出来るようにがんばってみようと思います。
本当に有難う御座います。