1

プログラムにユーザー定義可能なキー マクロを作成しています。(これらのマクロはそのプログラムに限定されます。)

重要なメッセージを記録するために TApplicationEvents を使用しています。次に、SendInput を使用してそれらを再生します。ただし、再生が中断されないように、マウスとキーボードを無効にする必要があります。

JournalPlaybackProc と JournalRecordProc は、Vista と Win7 で UAC、UIPI の対象となるため使用できません。

SendInput を使用しているときに、マウスとキーボードの入力をブロックする簡単な方法はありますか。(特権の強化を必要としない方法です。)

また、再生を停止するエスケープ キーが 1 つ必要です。

編集: ホットキーを無視するため、TControl.Perform は機能しませんでした。

WM_KEY メッセージで予約済みのニブル (ビット 25 ~ 28) を使用することを考えましたが、Windows のドキュメントでは予約済みで使用しないと書かれています。どのような結果になる可能性があります。

4

2 に答える 2

3

「人工入力」を自分のアプリケーションに限定したい場合は、SendInput を使用しません。TApplicationEvents.OnMessage を使用してメッセージを記録する場合、マクロを再生するときに「if not(PlayingBack) then」チェックインを OnMessage に追加し、Form1.Perform を使用します。

于 2009-11-27T20:57:10.260 に答える
1

私は常に AutoIT の DLL を使用して KeyStrokes を送信したり、キーボードとマウスをブロックしたりしています。

AutoIT は Ctrl+Alt+Del キーをブロックできません。

それをチェックしてください

HTH

于 2009-11-28T07:06:56.223 に答える