Отправка клавиатурных команд - PullRequest
1 голос
/ 05 августа 2010

Как бы я отправил команду клавиатуры, чтобы они нажимали «Y», а затем нажимали «ввод». Спасибо

Ответы [ 3 ]

2 голосов
/ 05 августа 2010

Вот статья CodeProject по этому вопросу: http://www.codeproject.com/KB/cpp/sendkeys_cpp_Article.aspx

И статья msdn, описывающая, как это сделать: http://msdn.microsoft.com/en-us/library/ms171548.aspx

И еще одна статья CodeProject, описывающая, как использовать keybd_event (): http://www.codeproject.com/KB/system/keyboard.aspx

Не уверен, как это работает (я не разработчик C ++), но он должен отправить букву «а» в блокнот (вам нужно иметь открытый файл с именем «test»)..txt "): из Exchange эксперта (я добавил исправления, но не пробовал его запускать): http://www.experts -exchange.com / Программирование / Programming_Languages ​​/ Cplusplus / Q_21119534.html

#define _WIN32_WINNT 0x0501
#include <windows.h>
#include <iostream>

using namespace std;

void main()
{
char end;
HWND windowHandle = FindWindow(0, "test.txt - Notepad");
INPUT *key;
if(windowHandle == NULL)
 cout << "not found";
SetForegroundWindow(windowHandle);
Sleep(1000);

key = new INPUT;
key->type = INPUT_KEYBOARD;
key->ki.wVk = 41;
key->ki.dwFlags = 0;
key->ki.time = 0;
key->ki.wScan = 0;
key->ki.dwExtraInfo = 0;

SendInput(1,key,sizeof(INPUT));

key->ki.dwExtraInfo = KEYEVENTF_KEYUP;

SendInput(1,key,sizeof(INPUT));
cout << "key inputted";
cin >> end;
}
1 голос
/ 05 августа 2010

я делаю простого повешенного, и когда они доходят до последней буквы, он печатает его для них, если они до сих пор были идеальны

Вы делаете этот путьслишком сложно, если вы пытаетесь смоделировать нажатие клавиатуры просто для реализации этого.

Предположительно, в вашем коде есть что-то вроде:

void OnKeyPress(char key)
{
    // handle the key: is it correct, etc?
}

Все, что вам нужно сделать, это вызватьметод непосредственно, когда они добираются до последней буквы и до сих пор совершенны.Вам вообще не нужно «имитировать» событие клавиатуры.

0 голосов
/ 01 апреля 2012

используйте что-то вроде этого:

int main()
{
char ans;
cout << "question";
cin >> ans;
cin.get();
if(ans==y)
{
do something;
}
cin.get();
return0;
}

это установит переменную ans к вашему вводу, используя функцию cin >>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...