名前 題名 ▼ Mr.XRAYさん > [ 仮想キーコードの送信方法 ] > http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201907/19070005.txt > > >エンターキーは送信されません。 > > キーコードは送信されています. > Enter キーの押下としては機能していないだけです. > 以下で確認できます. > > //============================================================================= > // SendMessage でキーコードを送る > //============================================================================= > procedure TReceivForm.Button1Click(Sender: TObject); > begin > Memo1.Clear; > > SendMessage(Memo1.Handle, WM_KEYDOWN, VK_RETURN, 0); > SendMessage(Memo1.Handle, WM_KEYUP, VK_RETURN, 0); > > SendMessage(Memo1.Handle, WM_KEYDOWN, VK_Shift, 0); > SendMessage(Memo1.Handle, WM_KeyDown, VK_LEFT, 0); > SendMessage(Memo1.Handle, WM_KEYUP, VK_LEFT, 0); > SendMessage(Memo1.Handle, WM_KEYUP, VK_Shift, 0); > end; > > //============================================================================= > // PostMessage でキーコードを送る > // PostMessage はメッセージキューにポストする > // この場合はキーの情報をポストする > //============================================================================= > procedure TReceivForm.Button2Click(Sender: TObject); > begin > Memo1.Clear; > > PostMessage(Memo1.Handle, WM_KEYDOWN, VK_RETURN, 0); > PostMessage(Memo1.Handle, WM_KEYUP, VK_RETURN, 0); > > PostMessage(Memo1.Handle, WM_KEYDOWN, VK_Shift, 0); > PostMessage(Memo1.Handle, WM_KeyDown, VK_LEFT, 0); > PostMessage(Memo1.Handle, WM_KEYUP, VK_LEFT, 0); > PostMessage(Memo1.Handle, WM_KEYUP, VK_Shift, 0); > end; > > //============================================================================= > // Memo1 の OnKeyDown イベント処理 > //============================================================================= > procedure TReceivForm.Memo1KeyDown(Sender: TObject; var Key: Word; > Shift: TShiftState); > begin > Memo1.Lines.Add('OnKeyDown $' + IntToHex(Key, 4)); > end; > > //============================================================================= > // Memo1 の OnKeyup イベント処理 > //============================================================================= > procedure TReceivForm.Memo1KeyUp(Sender: TObject; var Key: Word; > Shift: TShiftState); > begin > Memo1.Lines.Add('OnKeyUp $' + IntToHex(Key, 4)); > end; > > //============================================================================= > // ApplicationEvents1 の OnMessage イベント処理 > // WM_KEYDOWN, WM_KEYUP 等はメッセージキューにポストされた値を取得する > // メッセージキューにポストするには PostMessage を使用する > // SendMessage はメッセージキューにはポストしない > //============================================================================= > procedure TReceivForm.ApplicationEvents1Message(var Msg: tagMSG; > var Handled: Boolean); > var > Ltext : string; > begin > if Msg.hwnd = Memo1.Handle then begin > if Msg.message = WM_KEYDOWN then begin > Ltext := 'WM_KEYDON $' > + IntToHex(Msg.wParam, 4) > + ' $' + IntToHex(Msg.lParam, 4);; > Memo1.Lines.Add(Ltext); > end else > if Msg.message = WM_KEYUP then begin > Ltext := 'WM_KEYUP $' > + IntToHex(Msg.wParam, 4) > + ' $' + IntToHex(Msg.lParam, 4);; > Memo1.Lines.Add(Ltext); > end; > end; > end; GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link