4

SendInput を使用してキーの押下を送信するこのコードがありますが、キーを長押ししたい場合には機能しません (たとえば、「a」を長押しすると、メモ帳で「aaaaaaaaa」が返されます)。

今、私はグーグル全体を見てきましたが、これを回避する唯一の方法は、長時間保持したい場合に入力を送信し続けることです。これは、「a」が何度も押されることをシミュレートするだけなので、そうしたくありません。

keyboard.wVk = 0;
keyboard.wScan = MapVirtualKey(key, 0);

keyboard.dwFlags = KEYEVENTF_SCANCODE;

if (index_vector_no)
    pressed[index_vector_no] = true;

keyboard.dwExtraInfo = 0;

input.type = INPUT_KEYBOARD;
input.ki = keyboard;

SendInput(1, &input, sizeof (input));

そこで、次の質問に対するいくつかの回答をお願いします。

A) SendInput を使用してこれを回避する方法はないと考えているのは正しいですか?

B) キーダウン信号とキーアップ信号を正常に送信できる代替方法は何ですか? 特定のアプリケーションだけでなく、ウィンドウにキーを送信することをお勧めします。

C) グローバルなキーボードとマウスのシミュレーションを処理する、私が使用できる優れた軽量の C++ ライブラリはありますか?

前もって感謝します!=)

編集: 私の問題の詳細については、この投稿をご覧ください: http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_20833788.html

4

1 に答える 1