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()에 대한C++ send keyboard_event with Guard with Guard
솔루션 가드의 경우 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은 사용자가 ENTER 리턴으로 인터럽트 할 수있는 특별한 ftp 클라이언트를 호출합니다.
나 같은 사람은 이런 종류의 요구 사항이 필요합니다. 그것은 나를 위해 완벽하게 작동했습니다. 타이머를 만료 한 후 45 초를 설정했으면 ENTER 키가 자동으로 실행되어 FTP 전송을 중지합니다. 타이머가 만료되기 전에 사용자가 ENTER 키를 먼저 누르면 FTP 전송이 중지됩니다.
'keyBEventType'과'keybd_event()'의 정의는 무엇입니까? 나는 당신의 코드 어디에도 보이지 않는다. – genpfault
@genpfault'keybd_event'는 표준 Win32 함수 –
입니다. 여러분이 묻는 것은 명확하지 않습니다. –