2012-02-10 16 views
0

文字や数字を送信しません。私のnumロックが切り替わるということです。SendInput、私はそのようなものを持っている

なぜアプリに文字や数字を送信できないのですか?

注意私は、Windows 7とポーランド語のキーボードレイアウトを使い、QtとMinGWを使用しています。

答えて

0

VK_CAPITALは拡張キーではありません。
(vk >= 33 && vk <= 46) || (vk >= 91 && vk <= 93)の場合はキーが拡張されます。

KEYBDINPUT kb = {0}; 
INPUT Input = {0}; 

if ((vk >= 33 && vk <= 46) || (vk >= 91 && vk <= 93)) 
    kb.dwFlags = KEYEVENTF_EXTENDEDKEY; 

kb.wVk = vk; 
Input.type = INPUT_KEYBOARD; 
Input.ki = kb; 

SendInput(1, &Input, sizeof(Input)); 
kb.dwFlags |= KEYEVENTF_KEYUP; 
SendInput(1, &Input, sizeof(Input)); 

そして、最も重要なことを::

またZeroMemoryので、あなたの関数は次のようになります、ここでは省略することができ問題は、この機能では、おそらくではありません。入力は間違ったウィンドウに送られたと思います。 SetFocus関数を使用してこの入力を指示します(SendInputを呼び出す前に呼び出します)。

また、SendInputを で調べる必要があります。pinvoke.net

関連する問題