단축키 응용 프로그램에 SendInput API를 사용하려고합니다. 그래서 내가하고있는 일은 글로벌 키크 훅 (keyhook)을 갖는 것이고, 어떤 키 조합이 성공하면 다른 키를 보내고 싶습니다.SendInput ExtraInfo/Flags
내 문제는 시뮬레이션 된 키를 보낼 때 내 후크가 해당 메시지를 받고 재귀 루프로 끝나는 것입니다.
그래서 ExtraInfo/Flags를 사용해 보았습니다. 그러나 어떤 이유로 내가 설정 한 값이 내가 후크에서받는 값과 같지 않습니다. 아무리
var down = new INPUT();
down.Type = (UInt32)InputType.Keyboard;
down.Data.Keyboard = new KEYBDINPUT();
down.Data.Keyboard.KeyCode = (UInt16)keyCode;
down.Data.Keyboard.Scan = 0;
down.Data.Keyboard.Flags = 0; //doesn't matter whatever I set here... never gets back to my hook
down.Data.Keyboard.Time = 0;
down.Data.Keyboard.ExtraInfo = IntPtr.Zero; //doesn't matter whatever I set here... never gets back to my hook
어떻게 내가 내 후크의 메시지가 나타날 때의를 다시 ... ExtraInfo를/플래그 설정 :
private IntPtr KeyStateChangeCallback(int nCode, IntPtr wParam, ref KEYBDINPUT lParam)
{
//lParam.ExtraInfo and lParam.Flags ... is always some mumbo jumbo value or zero...
}
나는 lowlevelkeyboard 후크, "WH_KEYBOARD_LL"를 사용하고 있습니다를 다음과 같이 설정하십시오 :
proc = KeyStateChangeCallback;
using (Process curProcess = Process.GetCurrentProcess())
using (ProcessModule curModule = curProcess.MainModule)
{
hookID = NativeMethods.SetWindowsHookEx(WH_KEYBOARD_LL, proc, NativeMethods.GetModuleHandle(curModule.ModuleName), 0);
}
다른 누구나 비슷한 문제가있어 도움을받을 수 있습니까? 작동중인 코드 샘플은 환상적 일 것입니다.
어떤 종류의 후크를 사용하고 있습니까? – shf301
감사합니다 :) WH_KEYBOARD_LL 훅을 사용하고 있습니다. 게시물을 다시 살펴보고 추가 정보로 업데이트하십시오. – user1831153