void GTKeyboardDriver::keyRelease(GUITestOpStatus &os, int key, int modifiers) { GT_CHECK(key != 0, " Error: key = 0 in GTKeyboardDriver::keyRelease()"); if (modifiers) { INPUT input = getKeyEvent(modifiers, true); SendInput(1, &input, sizeof(input)); } INPUT input = getKeyEvent(key, true); SendInput(1, &input, sizeof(input)); }
bool keyReleaseWindows(int key, int modifiers = 0, bool extended = false) { DRIVER_CHECK(key != 0, " Error: key = 0 in GTKeyboardDriver::keyRelease()"); if (modifiers) { INPUT input = getKeyEvent(modifiers, true); SendInput(1, &input, sizeof(input)); } INPUT input = getKeyEvent(key, true, extended); SendInput(1, &input, sizeof(input)); return true; }
int main(int, char **) { time_t time; std::time(&time); struct tm *current_time; current_time = localtime(&time); char time_string[17]; strftime(time_string, 17, "%Y-%m-%d %H:%M", current_time); std::cout << "Current time: " << time_string << std::endl; EventManager events; events.add(inputEvent()); KeyEvent key = KeyEvent::OTHER; do { if(kbhit()) { key = getKeyEvent(); switch(key) { case KeyEvent::NEW: events.add(inputEvent()); break; case KeyEvent::QUIT: break; default: break; } } std::vector<Event> overdue = events.getOverDue(); if (!overdue.empty()) { for(Event event : overdue) std::cout << event.getMessage() << std::endl; break; } } while (key != KeyEvent::QUIT); return 0; }
int DS::Keyboard::pool() { DS::Event *event = new DS::Event(); getKeyEvent(event); if( event->what() == evKeyDown ) // 若有按鍵產生 ,則將此事件放入訊息串列中 { //msgQueue->add( event ); //event_queue.push_back(event); event_queue.push(event); return 1; } else { delete event; // 若無,則殺去剛才所 new 的事件。 return 0; } }
size_t Keyboard_GetEvents(keyevent_t *evbuf, size_t bufsize) { keyevent_t *e; size_t i = 0; if(!initOk) return 0; // Get the events. for(i = 0; i < bufsize; ++i) { e = getKeyEvent(); if(!e) break; // No more events. memcpy(&evbuf[i], e, sizeof(*e)); } return i; }
//---------------------------------------------------------------- void Input::update() { // update the mouse buttons data based on the previous acquire data // button 1 if (m_ucMouseButton[MB_1]) { if (!m_bButtonState[MB_1]) { m_lMouseButtonClick[MB_1] = true; m_bButtonState[MB_1] = true; } else m_lMouseButtonClick[MB_1] = false; } else if (m_bButtonState[MB_1]) m_bButtonState[MB_1] = false; // button 2 if (m_ucMouseButton[MB_2]) { if (!m_bButtonState[MB_2]) { m_lMouseButtonClick[MB_2] = true; m_bButtonState[MB_2] = true; } else m_lMouseButtonClick[MB_2] = false; } else if (m_bButtonState[MB_2]) m_bButtonState[MB_2] = false; // button 3 if (m_ucMouseButton[MB_3]) { if (!m_bButtonState[MB_3]) { m_lMouseButtonClick[MB_3] = true; m_bButtonState[MB_3] = true; } else m_lMouseButtonClick[MB_3] = false; } else if (m_bButtonState[MB_3]) m_bButtonState[MB_3] = false; getKeyEvent(); }
uint8_t KEYS::readKeypad(void) { return(getKeyEvent()); }
uint8_t KEYS::getKeyEvent(void) { return(getKeyEvent(0)); }
void TarryTown::pKeyRelease(QScriptValue target, QString text) { Hessian * tv = (Hessian *)target.toQObject(); QWebView * v = (QWebView*)tv->GetView(); QKeyEvent * event = getKeyEvent(text,"release"); QApplication::sendEvent(v,event); }