フォーラム: "Main";
現在のアーカイブ:2002.01.08;
ダウンロード:[xml.tar.bz2];
ダウン
キーが押されたというメッセージをシステムに送信する方法 似ている枝を探す
← →
Delphimun (2001-12-20 12:10) [0]キーが押されたというメッセージをシステムに送信する方法は? たとえば、キーが押されていることを示すメッセージをタイマーに入れ、ユーザーは現在ノートブックで作業しているため、これらの文字はシステムに送信したノートブックに書き込まれます(キーが押されたこと)
← →
gek (2001-12-20 12:32) [1]メモ帳のハンドルを取得して、wm_keydownに送信します。
← →
Delphimun (2001-12-20 13:10) [2]私はすでにそれを理解しました(ノートブックを送信するだけでなく、一般的なシステムでも必要でした)
興味のあるfaqの例を次に示します。
-------------------------------------------------- -----------------------
以下の手順により、クリックを
からの入力を受け入れることができるコントロール(ウィンドウコントロール)
キーボード。 この手法を使用して、キーをオンにすることができます。
Windows NTでのNumLock、CapsLock、およびScrollLock。 同じ手法が機能します
CapsLockおよびScrollLock用のWindows 95の下で、キーに対しては機能しません
NumLock
4つの手順があることに注意してください。SimulateKeyDown()-
キーストロークをエミュレート(リリースせず)SimulateKeyUp()-
リリースキーSimulateKeystroke()をエミュレートします-ヒットをエミュレートします
キー(押して離す)およびSendKeys()により、柔軟に
コントロールはキーボードメッセージを送信しました。
SimulateKeyDown()、SimulateKeyUp()、SimulateKeystroke()はコードを取得します
仮想キー(VK_F1など)。 手続き
SimulateKeystroke()は、追加のパラメーターを取得します。
PrintScreenを押すことのエミュレーション。 このパラメーターがゼロの場合、全体
画面がクリップボードにコピーされます。 余分な場合
1に等しいパラメーターは、アクティブなウィンドウのみがコピーされます。
4つのボタンクリック方法の使用例を示します。
ButtonClick1-capslockを有効にしますButtonClick2-全体を傍受します
画面をクリップボード(クリップボード)に。 ButtonClick3-インターセプト
クリップボード(クリップボード)へのアクティブウィンドウ。 ButtonClick4-編集でフォーカスを設定し、
文字列を送信します。
例:
プロシージャSimulateKeyDown(キー:バイト);
始まる
keybd_event(キー、0、0、0);
終わり
プロシージャSimulateKeyUp(キー:バイト);
始まる
keybd_event(キー、0、KEYEVENTF_KEYUP、0);
終わり
プロシージャSimulateKeystroke(Key:byte; extra:DWORD);
始まる
keybd_event(キー、エクストラ、0,0);
keybd_event(キー、エクストラ、KEYEVENTF_KEYUP、0);
終わり
プロシージャSendKeys(s:文字列);
var i:整数;
フラグ:bool;
w:単語;
始まる
{Caps Lockキーの状態を取得}
フラグ:= GetKeyState(VK_CAPITAL)ではなく、1 = 0;
{Caps Lockキーがオンになっている場合はオフにします}
フラグなら
SimulateKeystroke(VK_CAPITAL、0);
for i:= 1 to Length(s)do
始まる
w:= VkKeyScan(s [i]);
{キー変換にエラーがない場合}
if((HiByte(w)<> $ FF)and(LoByte(w)<> $ FF))then
始まる
{キーがシフトキーを押す必要がある場合-押し続ける}
HiByte(w)および1 = 1の場合
SimulateKeyDown(VK_SHIFT);
{VK_KEYを送信}
SimulateKeystroke(LoByte(w)、0);
{キーが必要な場合 キーをシフトダウン-リリースしてください}
HiByte(w)および1 = 1の場合
SimulateKeyUp(VK_SHIFT);
終わり
終わり
{Caps Lockキーが起動時にオンになっていた場合は、オンに戻します}
フラグなら
SimulateKeystroke(VK_CAPITAL、0);
終わり
procedure TForm1.Button1Click(送信者:TObject);
始まる
{キャップロックの切り替え}
SimulateKeystroke(VK_CAPITAL、0);
終わり
procedure TForm1.Button2Click(送信者:TObject);
始まる
{画面全体をクリップボードにキャプチャ}
{PrintScreenキーを押すことをシミュレートすることにより}
SimulateKeystroke(VK_SNAPSHOT、0);
終わり
procedure TForm1.Button3Click(送信者:TObject);
始まる
{アクティブウィンドウをクリップボードにキャプチャする}
{PrintScreenキーを押すことをシミュレートすることにより}
SimulateKeystroke(VK_SNAPSHOT、1);
終わり
procedure TForm1.Button4Click(送信者:TObject);
始まる
{ウィンドウ(エディットコントロール)にフォーカスを設定し、文字列を送信します}
Application.ProcessMessages;
Edit1.SetFocus;
SendKeys( "Delphi Is RAD!");
終わり
-------------------------------------------------- -------------------------
ここで、ユーザーのclavボタン(アルファなど)のクリックを追跡し、このプレス\をリセットして自分のものに置き換えます。
ページ: 1 全枝
フォーラム: "Main";
現在のアーカイブ:2002.01.08;
ダウンロード:[xml.tar.bz2];
メモリ:0.57 MB
時間:0.029 c