sendinput



Автор Николай Балакин задал вопрос в разделе Другие языки и технологии

Как правильно использовать WinAPI функцию SendInput ? и получил лучший ответ

Ответ от Андрей SA[активный]
INPUT input; input.type = INPUT_KEYBOARD; input.ki.wVk = code; input.ki.wScan = 0; input.ki.dwFlags = 0; input.ki.time = 0; input.ki.dwExtraInfo = 0; SendInput(1, &input, sizeof(input)); input.type = INPUT_KEYBOARD; input.ki.wVk = code; input.ki.wScan = 0; input.ki.dwFlags = KEYEVENTF_KEYUP; input.ki.time = 0; input.ki.dwExtraInfo = 0; SendInput(1, &input, sizeof(input));//-----------------------------------------------keybd_event(VK_CAPITAL, 0, 0, 0);keybd_event(VK_CAPITAL, 0, KEYEVENTF_KEYUP,0);VOID keybd_event(BYTE bVk,// код виртуальной клавишиBYTE bScan,// аппаратный скэн-кодDWORD dwFlags,// флажки, определяющие различные параметры функцииDWORD dwExtraInfo// дополнительные данные, связанные с нажатием клавиши);#include <windows.h> void SetNumLock( BOOL bState ) { BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); if( (bState && !(keyState[VK_NUMLOCK] & 1)) || (!bState && (keyState[VK_NUMLOCK] & 1)) ) { // Simulate a key press keybd_event( VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 ); // Simulate a key release keybd_event( VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } } void main() { SetNumLock( TRUE ); }там же пример на васике есть keydata.wVk = Asc(key)keydata.dwExtraInfo = 0keydata.dwFlags = 0keydata.time = 1keydata.wScan = 0inputdata.ki = keydatainputdata.hi = yinputdata.mi = xinputdata.type = INPUT_KEYBOARDSendKeybdInput = SendInput(1, inputdata, Len(inputdata))

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как правильно использовать WinAPI функцию SendInput ?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*