2012-02-10 3 views
0

문자 또는 숫자를 전송하지 않습니다 내 num lock이 토글하는 것입니다.SendInput을 내가 그런 식으로 뭔가있어

왜 문자 나 숫자를 앱에 보낼 수 없습니까?

참고 폴란드어 키보드 레이아웃의 Windows 7과 MinGW의 Qt를 사용하고 있습니다.

답변

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

관련 문제