void Plugin::remHook(const std::string name) { if (hasHook(name)) { m_hooks.erase(name); } }
void MacroApp::playback(const std::vector<DWORD> & macro, bool wait) { if (wait) { if (m_state != recordState_t::IDLE) { return; } for (int i = 8; i < 256; ++i) { if (i == 0x10 || i == 0x11 || i == 0x12) { // ignore VK_SHIFT, VK_CONTROL and VK_MENU. // care about VK_LSHIFT, VK_RSHIFT, VK_LCONTROL, VK_RCONTROL, VK_LMENU, VK_RMENU instead continue; } if ((::GetAsyncKeyState(i) & 0x8000) != 0) { m_waitFor.push_back(i); } } if (m_waitFor.empty()) { Macro::playback(m_settings, macro); } else { Hook(); m_state = recordState_t::WAIT; m_waitingToPlay = macro; } return; } else { if (!hasHook()) Macro::playback(m_settings, macro); } }
Hook* Plugin::getHook(const std::string name) { if (hasHook(name)) { return m_hooks[name]; } else { return NULL; } }
void MacroApp::record() { if (m_state == recordState_t::RECORD) { m_systray.Icon(IDI_ICON1); Unhook(); m_state = recordState_t::IDLE; } else { m_systray.Icon(IDI_ICON3); m_macro.clear(); if (!hasHook()) { Hook(); } m_state = recordState_t::RECORD; } }