当前位置: 首页 > wzjs >正文

营销型外贸网站建设广告联盟接单平台

营销型外贸网站建设,广告联盟接单平台,建站出海,网站开发需求文档csdn使用qt 定义全局钩子 捕获系统的键盘事件 即使焦点不在自定义软件上,也能够触发 以下待接口代码: class Hook :public QObject { Q_OBJECT public: Hook(); enum Type { CTRL_E, CTRL_W, SPACE, Enter, C };//自定义枚举,定义“修改”、“撤回…

使用qt 定义全局钩子 捕获系统的键盘事件 即使焦点不在自定义软件上,也能够触发
以下待接口代码:
class Hook :public QObject
{
Q_OBJECT
public:
Hook();
enum Type {
CTRL_E,
CTRL_W,
SPACE,
Enter,
C
};//自定义枚举,定义“修改”、“撤回”两种状态
void installHook();//安装钩子函数
void unInstallHook();//删除钩子
void sendSignal(Type type);
Q_ENUM(Type)//注册枚举类型进元对象系统,否则无法将枚举类型作为信号参数传递
signals:
void sendKeyType(Type);//发送按键监控信号
};

static HHOOK keyHook = nullptr;//钩子对象
static Hook* hook;//Qt界面中调用Hook类的对象
LRESULT CALLBACK keyProc(int nCode, WPARAM wParam, LPARAM lParam) {//钩子消息函数,系统消息队列信息会返回到该函数中
KBDLLHOOKSTRUCT* pkbhs = (KBDLLHOOKSTRUCT*)lParam;//lParam用于判断按键类型
if (wParam == WM_KEYDOWN) {//wParam用于判断事件类型,当前为按键按下事件
//使用位掩码0x8000检查按键按下状态,确保准确检测瞬时按键
if (pkbhs->vkCode == Qt::Key_E &&
(GetAsyncKeyState(VK_CONTROL) & 0x8000) &&
(GetAsyncKeyState(VK_MENU) & 0x8000)) // Ctrl+Alt+E
{
qDebug() << (“按下按钮 ctrl+alt+e\n”);
}
else if (pkbhs->vkCode == Qt::Key_E &&
(GetAsyncKeyState(VK_CONTROL) & 0x8000)) // 仅Ctrl+E
{
hook->sendSignal(Hook::CTRL_E);
LOG_FUN_INFO(“##############Input Ctrl+E##############”);
}
else if (pkbhs->vkCode == Qt::Key_W &&
(GetAsyncKeyState(VK_CONTROL) & 0x8000))
{//按下Ctrl+W
hook->sendSignal(Hook::CTRL_W);
LOG_FUN_INFO(“##############Input Ctrl+W##############”);
}
else if (pkbhs->vkCode == Qt::Key_Space)
{//按下space
hook->sendSignal(Hook::SPACE);
}
else if (pkbhs->vkCode == 13) //Enter Key
{//按下space
hook->sendSignal(Hook::Enter);
}
else if (pkbhs->vkCode == Qt::Key_C)
{//按下space
hook->sendSignal(Hook::C);
}
}
LOG_FUN_INFO(“##############Input %d”, pkbhs->vkCode);
return CallNextHookEx(keyHook, nCode, wParam, lParam);//继续原有的事件队列
}
Hook::Hook()
{
}
void Hook::installHook() {//安装钩子函数
keyHook = SetWindowsHookEx(WH_KEYBOARD_LL, keyProc, nullptr, 0);
hook = this;
}
void Hook::unInstallHook() {//删除钩子函数
UnhookWindowsHookEx(keyHook);
keyHook = nullptr;
}
void Hook::sendSignal(Type type) {//发送信号函数
emit sendKeyType(type);
}

http://www.dtcms.com/wzjs/401914.html

相关文章:

  • 哈尔滨招标信息网官网大连百度关键词优化
  • 网站开发技术 难点seo研究中心晴天
  • 自己怎么设置网站seo管理平台
  • 怎么做网站界面设计郑州全域静态管理
  • 网站建设产品展示型的指数基金怎么选
  • 番禺做网站技术无人在线观看高清视频单曲直播
  • 手机网站开发怎么测试快速提升网站排名
  • 一流学科建设专题网站免费推广引流软件
  • html教程菜鸟教程语法seo优化思路
  • 做网站的作用东莞建设企业网站公司
  • 广东建设集团有限公司官网品牌seo培训咨询
  • 网站建设公司知名软件外包公司排名
  • 网址缩短生成器网站排名优化教程
  • 钟祥建设局网站最新国际新闻热点事件
  • 什么是网络营销 网络营销有哪些特点宁波seo快速排名
  • 展示网站方案百度下载官网
  • 新开传奇网站迷失版开发一个app平台大概需要多少钱?
  • 做网站 做应用新媒体运营是做什么
  • 360公司官网首页seo营销专员
  • 新疆生产建设兵团十二师网站济南seo公司报价
  • 自有服务器怎么做网站备案优化大师win7官方免费下载
  • 合肥网站建设网页设计seo网址优化靠谱
  • 口碑好的网站建设平台百度预测大数据官网
  • wordpress公园seo谷歌
  • 网站设计软件下载朝阳区seo搜索引擎优化介绍
  • 网站建设南京爱站网使用体验
  • 浙江华纳建设有限公司网站搜索引擎简称seo
  • 做商城网站需要什么做网站排名服务热线
  • 邵阳住建部网站最近的头条新闻
  • 南昌网站建设怎么样免费推广方式都有哪些