std::cout<<"SendKeyBoardEvent "<<keyBEventType<<endl;
// Simulate a key press
Sleep(200); //in
if (!strcmp(keyBEventType,"ENTER"))
{
// ENTER key down
keybd_event(VK_RETURN,0x9C,0,0);
// ENTER key up
keybd_event(VK_RETURN,0x9C, 0,0);
}
Когда я запускаю этот код из своего инструмента, я должен использовать две клавиши со стрелками вниз и и вводить или любые другие две комбинации клавиш, кроме ALT-ENTER. Я использовал KEY_UP и CONTROL. кто-нибудь видит мою проблему здесь? Я ценю вашу помощь.
РЕШЕНИЕ для getch () с таймером в качестве защитного случая FTP передан (SpecialClient) навсегда
Сначала истекает таймер, либо вводится ключ пользователя
void waitBoostSleep(int seconds)
{
boost::this_thread::sleep(boost::posix_time::seconds(seconds));
}
int waitTime(int sec)
{
waitBoostSleep(sec);
a->SendKeyBoardEvent("ENTER");
std::cout<<"TimerExpired after "<<sec<<endl;
return 0;
}
int StopSicFTPRingBuffer (int TimeInSeconds)
{
boost::thread t66(&waitTime,TimeInSeconds);
if (getch() == 13)
{
a->SendKeyBoardEvent("ENTER");
return 1;
}
t66.join();
return 0;
}
Из основной программы
boost::thread t77(&StopSicFTPRingBuffer,45);
system(SicFTPR.str().c_str());
t77.join();
Sytem будет вызывать специальный ftp-клиент, где он может быть прерван пользователем с помощью ENTER.
В случае, если кто-то, как я, нуждается в такого рода требованиях. Это отлично сработало для меня.
Я установил 45 секунд, если таймер истек, то клавиша ENTER автоматически выполнит остановку передачи по FTP. Если пользователь нажал клавишу ВВОДА до истечения таймера, передача по FTP будет остановлена.