ホーム
Top.Mail.Ru Yandeks.Metrika
フォーラム: "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];

2階









メモリ:0.57 MB
時間:0.029 c
1-22056
デルフィムン
2001-12-15 13:11
2002.01.08
brcc32.exeを使用してリソースを作成する方法は?


3-21990
スカイ
2001-12-04 03:58
2002.01.08
LookUpフィールドの問題


1-22160
ヤクザ
2001-12-20 16:46
2002.01.08
クリップボードにコピー


1-22179
イカール
2001-12-21 09:10
2002.01.08
TTreeViewでルートノードを反復処理する方法は?


3-21981
Termik
2001-12-06 08:22
2002.01.08
キーフィールドとIDENTITYについて





アフリカーンス語 アルバニア語 Arabic アルメニア語 アゼルバイジャン語 バスク ベラルーシ Bulgarian カタロニア語 中国語(簡体字) 中国語(繁体字) クロアチア チェコ語 デンマーク語 Dutch 英語 エストニア語 タガログ語 Finnish フランス語
ガリシア語 ジョージアン ドイツ語 ギリシャ語 ハイチ語 ヘブライ語 ヒンディー語 ハンガリー語 アイスランド語 Indonesian アイリッシュ イタリア語 和風 Korean ラトビア語 リトアニア マケドニア語 Malay マルタ語 Norwegian
ペルシア語 ポリッシュ ポルトガル語 ルーマニア ロシア語 セルビア Slovak スロベニア語 スペイン語 スワヒリ語 Swedish Thai トルコ語 ウクライナ語 ウルドゥー語 ベトナム語 ウェールズ語 イディッシュ語 ベンガル語 ボスニア語
セブアノ語 エスペラント グジャラート語 ハウサ語 モン族 イボ ジャワ語 カンナダ語 クメール語 ラオ語 ラテン マオリ語 マラーティー語 モンゴル語 ネパール語 パンジャブ語 ソマリ タミル語 テルグ語 ヨルバ語
ズールー語
Английский Французский Немецкий Итальянский ポルトガル語 Русский Испанский