sende key events fra og til et program ude af focus
HejJeg har en hardware enhed, hvorfra jeg modtager forskellige input, disse input vil jeg gerne konvertere til short-cuts som fx kan styre winamp eller wmp, eller et vilkårligt andet program for den sags skyld. Mit problem ligger i at jeg gerne vil gøre det selvom hverken mit program eller fx. winamp er i fokus.
Hvis de er i fokus virker det fint med:
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
ude fokus har jeg forsøgt med først at finde handlet til winamp, det går fint nok, men når jeg så sender enten:
::PostMessage(ApplicationWnd, WM_LBUTTONDOWN, VK_RETURN, 0);
::PostMessage(ApplicationWnd, WM_LBUTTONUP, VK_RETURN, 0);
eller
::PostMessage(ApplicationWnd, WM_KEYDOWN, VK_RETURN, 0);
::PostMessage(ApplicationWnd, WM_KEYUP, VK_RETURN, 0);
så sker der bare ingenting
jeg tror umiddelbart at mit handle er korrekt for hvis jeg fx kalder:
::SetActiveWindow(ApplicationWnd); // Set active window
::SetForegroundWindow(ApplicationWnd); // move window to foreground.
::SetFocus(ApplicationWnd); // set keyboard focus
så bliver det pågældende vindue som jeg har et handle til, sat i fokus...såååå..... jeg forstår ikke hvorfor mine key events ikke bliver til noget....
Jeg har også uden held været ved at rode med:
GetWindowThreadProcessId(ApplicationWnd, &ApplicationID);
GetWindowThreadProcessId(pThisWnd->m_hWnd, &thisID);
AttachThreadInput(thisID, ApplicationID, true);
any ideas anyone ??
/vh mpk