блок зажатия, Прервать поток сообщений от зажатой кнопки
Код:
#include <windows.h>
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
int main ( int argc, char *argv[])
{
HWND ICE;
ICE = FindWindow("TAA_Main", "");
MSG Msg = {0};
RegisterHotKey(NULL, 1, 0, VK_F2);
RegisterHotKey(NULL, 2, 0, VK_F4);
bool a = 1; int i = 0;
clock_t time;
while (1){ Sleep (500);
if ( PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE) != 0 && Msg.message == WM_HOTKEY)
{
switch ( Msg.wParam ){
case 1:
PostMessage(ICE, WM_KEYDOWN, VK_NEXT, 1);
break;
case 2:
PostMessage(ICE, WM_KEYDOWN, VK_PRIOR, 1);
break;
}}}
return 0;}
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
int main ( int argc, char *argv[])
{
HWND ICE;
ICE = FindWindow("TAA_Main", "");
MSG Msg = {0};
RegisterHotKey(NULL, 1, 0, VK_F2);
RegisterHotKey(NULL, 2, 0, VK_F4);
bool a = 1; int i = 0;
clock_t time;
while (1){ Sleep (500);
if ( PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE) != 0 && Msg.message == WM_HOTKEY)
{
switch ( Msg.wParam ){
case 1:
PostMessage(ICE, WM_KEYDOWN, VK_NEXT, 1);
break;
case 2:
PostMessage(ICE, WM_KEYDOWN, VK_PRIOR, 1);
break;
}}}
return 0;}
И если зажать кнопку F2 к примеру то даже отпустив ее приложение будет продолжать слать сообщения что кнопка нажата.
Те. неполучается остановить поток сообщений сразу как клавиша отпущена(
Можно канешно используя GetAsyncKeyState(); проверять физически состояние клавиши на данный момент но мож есть еще способы?
До бесконечности продолжать что ли будет? С задержкой то полсекунды?