いわゆるモディファイヤキーを押すのは、アルファベットキーを押すのに比べるとちょっと面倒。たとえばCtrl+aを送る場合、今までの知識から想像すると PostMessage(hWnd, WM_KEYDOWN, VK_CONTROL, 0); PostMessage(hWnd, WM_CHAR, 'a', 0); PostMessage(hWnd, WM_KEYUP, VK_CONTROL, 0); これでいけそうなんだけど、うまくいかない。ただ"a"が出力されるだけでした。ただキーを押しただけだとうまくいかないらしい。ということは、グローバルなキーボードの状態を「Ctrl押下」に変更しないといけない。とすると、現在のキー入力を、アクティブになってるプロセスから、目的のアプリのプロセス*1にアタッチしないといけない。・・・ということで、下のようにすれば動くみたいです。 #include int
CreateProcess() を使って起動した GUI アプリの最上位のトップレベルウィンドウのハンドルを取得することを考えよう。起動が開始されてウィンドウが生成するまで WaitForInputIdle() で待つことができる。 List 1 unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementati
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く