如何捕获Ctrl+Space呢?

angelcool 2005-05-04 11:39:02
我用键盘钩子可以捕获Space键的信息为: nCode=0,wParam=32
捕获的Ctrl键的信息为: nCode=0,wParam=17
但是按下组合键Ctrl+Space,信息仍然为:nCode=0,wParam=17
怎样能区分它们呢?


我注册了热键,但是它好像不认。代码如下:
在安装钩子函数时注册热键:RegisterHotKey(m_hWndAS,VK_CTRLSPACE,MOD_CONTROL,VK_SPACE);
在卸载钩子时取消热键: ::UnregisterHotKey(m_hWndAS,VK_CTRLSPACE);
在钩子函数中做判断: if(wparam==VK_CTRLSPACE)
lparam = VK_CTRLSPACE;
但是没用,好像wparam的值仍然为17,即VK_CONTROL。

哪里出问题了??
...全文
435 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelcool 2005-05-13
  • 打赏
  • 举报
回复
UP
angelcool 2005-05-11
  • 打赏
  • 举报
回复
nobady!!
angelcool 2005-05-11
  • 打赏
  • 举报
回复
Up Again
hello1996 2005-05-11
  • 打赏
  • 举报
回复
UP
angelcool 2005-05-09
  • 打赏
  • 举报
回复
两个问题都把我搞晕了,连答复都帖错了。上述Spy++的发现属于下帖:
http://community.csdn.net/Expert/topic/3971/3971243.xml?temp=.7113764
^_^
hello1996 2005-05-09
  • 打赏
  • 举报
回复
study
jerry 2005-05-08
  • 打赏
  • 举报
回复
处理消息一般是这样的,可能是CTRL+SPACE这个组合键已经被系统用来做输入法切换了,所以捕获不到,不知道是不是这样的.
weiziyuner 2005-05-08
  • 打赏
  • 举报
回复
在m_hWndAS窗口中处理WM_HOTKEY即处理用户按热键的消息
angelcool 2005-05-08
  • 打赏
  • 举报
回复
ding
angelcool 2005-05-08
  • 打赏
  • 举报
回复
to weiziyuner(烂人)
m_hWndAS窗口对应的程序不是我编写的。所以我不能处理它的热键消息。

to krh2001(边城浪子)
可能吧。我本想用spy++跟踪一下,可好像也没有类似的信息。

我用Spy++发现:
1、拖动窗口时,发送的消息是
WM_NCLBUTTONDOWN (HTCAPTION)
WM_MOUSEMOVE (MK_LBUTTON)
....
WM_LBUTTONUP
2、点击最小化按钮
WM_NCLBUTTONDOWN (HTMINBUTTON)
WM_MOUSEMOVE (MK_LBUTTON)
....
WM_LBUTTONUP
3、单击菜单
WM_NCLBUTTONDOWN (HTMENU)
WM_MOUSEMOVE (MK_LBUTTON)
....
WM_LBUTTONUP
我想可以通过在得到WM_NCLBUTTONDOWN消息时设定一个全局变量来标识来判断。
还只是思路没有测试成功,有结果了再告诉大家。
KevinWon 2005-05-06
  • 打赏
  • 举报
回复
路过学习
KelvinSpace 2005-05-06
  • 打赏
  • 举报
回复
云~第一版需要设置开发环境才能编译通过,代码都包含了。
第二版就不需设置,直接能编译。
我是把CTRL和SPACE都当作一般按钮处理。
我的程式与你的要求不同,只是提取参考。
[新木马PE源代码 ]
angelcool 2005-05-06
  • 打赏
  • 举报
回复
to krh2001(边城浪子)
因为当Ctrl+Space按下时wparam==17,即VK_CONTROL,所以我才那样做判断。
而且我也按你的提示修改了,但是仍然是无效的,它还是不能判断这个组合键。
jerry 2005-05-06
  • 打赏
  • 举报
回复
if((wparam==VK_SPACE) && (::GetKeyState(VK_CONTROL)&0x8000))

应该这样判断. CONTROL 是组合键,应该在按其它键的时候判断有没有同时按下 CONTROL 另GetKeyState返回的是一组标志组合, 应该判断其中的一个按下标志有没有被置位. \\

详细请参考 MSDN
jerry 2005-05-05
  • 打赏
  • 举报
回复
GetKeyState
angelcool 2005-05-05
  • 打赏
  • 举报
回复
就是用的键盘钩子,发现Ctrl+Space和Ctrl获得的值是一样的,跟Space没关系。

我用键盘钩子可以捕获Space键的信息为: nCode=0,wParam=32
捕获的Ctrl键的信息为: nCode=0,wParam=17
但是按下组合键Ctrl+Space,信息仍然为:nCode=0,wParam=17
oyljerry 2005-05-05
  • 打赏
  • 举报
回复
用键盘钩子呢
angelcool 2005-05-05
  • 打赏
  • 举报
回复
to KelvinSpace(Kelvin)
我看了你的程序pe2.part01.rar中的代码,你是安装了WH_JOURNALRECORD类型的钩子,可以获取键盘和鼠标的输入,但是它只能作为系统钩子,而不能做为线程钩子,不满足我的需要。
我运行你的程序,但是不知道哪里有问题,不能与服务器建立连接,你的程序能单机使用吗?
KelvinSpace 2005-05-05
  • 打赏
  • 举报
回复
错!用HOOK可以载到
看看我的远程控制
控制端
http://www.vckbase.com/code/listcode.asp?mclsid=9&sclsid=919
angelcool 2005-05-05
  • 打赏
  • 举报
回复
———————???————————
那么我还能怎样才能得到这个热键信息
或者
还有其他判断Ctrl+Space的方法吗?
加载更多回复(9)
代码转载自:https://pan.quark.cn/s/50df8825dc0d Tensilica Xtensa指令集架构手册是一份详尽阐述Xtensa指令集架构(ISA)的参考指南,它主要面向Tensilica公司所推出的处理器核心,尤其是LX106核,同时亦涵盖了ESP8266和ESP32等相关内容。该手册全面介绍了Xtensa处理器核心的指令集、配置选项、扩展能力以及将架构映射至硬件的详细情况。接下来将依据手册中所述的知识点进行深入解读。 ### Xtensa指令集架构(ISA) Xtensa指令集架构是Tensilica公司为其处理器产品设计的一套指令集,该指令集具备高度的可配置性和可扩展性。这一特性使得Xtensa ISA能够在不同的应用领域和硬件需求中进行个性化定制,以满足特定的功能与性能要求。 #### 可配置性(Configurability) Xtensa ISA的可配置性体现在用户可以根据实际需求对处理器的多个方面进行定制。这包括但不限于: - **指令集扩展**:用户可以根据特定的应用需求添加新的指令,从而提升处理特定任务的效率。 - **寄存器文件扩展**:根据应用需求,可以增加或优化处理器的寄存器数量和类型。 - **协处理器扩展**:通过集成特定的协处理器,可以将专门的计算任务卸载到协处理器上,从而提升整体性能。 #### 可扩展性(Extensibility) Xtensa ISA不仅可配置,还拥有卓越的可扩展性,它支持多种扩展,包括: - **状态扩展(State Extensions)**:允许处理器添加新的状态寄存器,以支持新的功能或增强现有功能。 - **指令扩展(Instruction Extensions)**:...
下载代码方式:https://pan.quark.cn/s/8779ceeac982 YOLOv5被认为是一种功能卓越且精确度高的目标检测系统,它在即时处理场景中展现出优越的性能。"基于YOLOv5的火灾检测"计划致力于运用这项尖端的计算机视觉方法,以达成对火焰和烟雾的有效辨识,进而起到防止及降低火灾事故的作用。在这个压缩文件里,用户能够获取到预先训练完成的模型,这表示使用者能够直接执行推理检测,无需从头开始训练模型。 我们现在将详细探讨YOLO(You Only Look Once)系统。YOLO是一种单阶段的目标检测方法,它将目标检测任务转化成回归问题,通过直接预测边界框和类别可能性来迅速识别图像中的物体。YOLOv5是这一系列的最新迭代,由Ultralytics团队研发,它在前几代的基础上进行了改进,包括更迅速的训练速率、更精准的检测以及更强的适应性。 YOLOv5的关键优化包含: 1. **数据增强**:应用了Mosaic数据增强技术,这是一种融合了随机缩放、翻转、裁剪及色彩调节的技巧,增强了模型的普遍适用性。 2. **更高效的架构**:运用了SPP-Block(Spatial Pyramid Pooling)和Path Aggregation Network (PANet)设计,提升了特征提取的效能和精确度。 3. **权重初始化**:采用了更优化的权重初始化策略,使模型在初始训练阶段就能更快地达到收敛。 4. **联合训练**:YOLOv5支持多尺度训练,即同步训练不同尺度的网络,以改善对小目标的检测效果。 5. **优化的损失函数**:使用了GIOU(Generalized IoU)损失函数,改进了边界框的定位。 针对火灾检测的应用,YOLOv...

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧