示例#1
0
void Plugin::remHook(const std::string name)
{
    if (hasHook(name))
    {
        m_hooks.erase(name);
    }
}
示例#2
0
文件: main.cpp 项目: partin/Macro
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);
    }
}
示例#3
0
Hook* Plugin::getHook(const std::string name)
{
    if (hasHook(name))
    {
        return m_hooks[name];
    }
    else
    {
        return NULL;
    }
}
示例#4
0
文件: main.cpp 项目: partin/Macro
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;
    }
}