程序热键的实现

【汇编】TSR内存驻留程序实现与删除及热键设置——以实现时钟为例 【汇编】TSR内存驻留程序实现与删除及热键设置——以实现时钟为例 最近完成了一个关于时钟中断驻留的汇编大作业,对于TSR很是感兴趣,查阅了不少资料,发现现在很少相关的内容资料。尤其是TSR删除这一块几乎找不到在低的水平完全正确的做法,下面我对于TSR的删除我会介绍一种几乎小程序可以完成的方法。当然,标题中的TSR实现,热键设置我也会一一介绍。 阅读详情
[问题提出]  
       有的程序需要自定义组合键完成一定功能,如何实现?  
 
   [解决方法]  
       RegisterHotKey函数原型及说明:  
       BOOL  RegisterHotKey(  
       HWND  hWnd,                                        //  接收WM_HOTKEY的窗口句柄  
       int  id,                                              //  hot  key的ID号.  
       UINT  fsModifiers,                          //  响应那个热键.  
       UINT  vk                                              //  与热键配合的键.  
 
       其中:  
           1)id的说明:  
           id为你自己定义的一个ID值,对一个线程来讲其值必需在0x0000  -  0xBFFF范围之内,对DLL来讲其值必需在0xC000  -  0xFFFF  范围之内,在同一进程内该值必须唯一  
 
           2)fsModifiers的取值如下:  
               .MOD_ALT  
               .MOD_CONTROL  
               .MOD_SHIFT  
               .MOD_WIN  
 
   [程序实现]  
       建立名为My的对话框工程.本例要用到RegisterHotKey()实现Alt+D的快捷键组合功能.在调用该函数后你的进程会在ALT+D按下时比系统先得到通知.你需要处理的消息是WM_HOTKEY.  
       如下:  
 
       在MyDlg.h中:  
       class  CMyDlg  :  public  CDialog  
       {  
                 //  Construction  
                 public:  
                         int  m_nHotKeyID;//为你自己定义的一个hot  key的ID值,在整个程序唯一.  
                 ........  
                 protected:  
                         HICON  m_hIcon;  
 
                 //  Generated  message  map  functions  
                 //{{AFX_MSG(CMyDlg)  
                 virtual  BOOL  OnInitDialog();  
                 afx_msg  void  OnSysCommand(UINT  nID,  LPARAM  lParam);  
                 afx_msg  void  OnPaint();  
                 afx_msg  HCURSOR  OnQueryDragIcon();  
                 afx_msg  LONG  OnHotKey(WPARAM  wParam,LPARAM  lParam);//手动加入.  
                 //}}AFX_MSG        
                 DECLARE_MESSAGE_MAP()  
       };  
         
       在MyDlg.cpp中:  
       #define  VK_D  68  
 
       ..............  
       BEGIN_MESSAGE_MAP(CMyDlg,  CDialog)  
                 //{{AFX_MSG_MAP(CHotKey1Dlg)  
                 ON_WM_SYSCOMMAND()  
                 ON_WM_PAINT()  
                 ON_WM_QUERYDRAGICON()  
                 ON_BN_CLICKED(IDOK,  OnRegisterHotKey)  
                 ON_BN_CLICKED(IDCANCEL,  OnUnregisterHotKey)  
                 ON_MESSAGE(WM_HOTKEY,OnHotKey)                                          //手动加入.  
                 //}}AFX_MSG_MAP  
       END_MESSAGE_MAP()  
 
       BOOL  CMyDlg::OnInitDialog()  
       {  
                 CDialog::OnInitDialog();  
 
                 //  Add  "About..."  menu  item  to  system  menu.  
                 m_nHotKeyID=0;  
                 BOOL  m_isKeyRegistered  =  RegisterHotKey(GetSafeHwnd(),m_nHotKeyID,MOD_ALT,VK_D);  
                 ASSERT(m_isKeyRegistered  !=  FALSE);  
                 return  TRUE;    //  return  TRUE    unless  you  set  the  focus  to  a  control  
       }  
         
       在取消按钮的事件函数中加入:  
       void  CMyDlg::OnCancel()  
       {  
                 BOOL  m_iskeyUnregistered  =  UnregisterHotKey(GetSafeHwnd(),  m_nHotKeyID);  
                 ASSERT(m_iskeyUnregistered  !=  FALSE);  
                 CDialog::OnCancel();  
       }  
 
       处理截到的组合键,并处理:  
       LONG  CMyDlg::OnHotKey(WPARAM  wParam,LPARAM  lParam)  
       {    
                 AfxMessageBox("你按下了组合键:Alt+D");  
                 //加入相关代码.  
                 return  0;  
       }  
 
       大家试试此功能,希望有不对之处给以指正.   
WPF窗体程序中实现响应系统热键所用到的键值定义 在WPF窗体程序中实现响应系统热键与在传统的Windows窗体程序中一样,需要调用Windows API函数RegisterHotKey和UnregisterHotKey。将API函数输入类的方法如下:         [System.Runtime.InteropServices.DllImport("user32")]         private static extern boo 阅读详情

相关推荐

利用pyqt5实现常驻Windows系统托盘并利用全局热键唤出的程序

最近利用pyqt5写了一个小工具,想像微信一样可以在系统托盘驻留,并具备全局热键唤出、ESC键隐藏等功能,下面利用一个简单的UI界面来记录一下实现的过程 基本思路 利用QtDesigner制作UI界面; QSystemTrayIcon制作托盘程序; system_hotkey是一个全局热键库,可以自定义热键; 重写Event,增加ESC退出功能、屏蔽UI最小化、关闭按钮的功能,目的是只允许程序通...

weixin_45359357的博客 2251

C#实现 Windows 11 快捷键切换声音输出设备

Windows 11上使用.NET(C#) 实现通过快捷键切换声音输出设备的功能,需要能够实现监听全局快捷键,和切换声音输入设备的方法。而切换声音输入设备的功能,需要通过使用Core Audio API进行实现。然而,直接从.NET访问这些底层API需要使用P/Invoke(平台调用服务)来调用Windows的非托管API,这可能相对复杂且容易出错。一般需要使用第三方库来简化实现过程,本文主要介绍.NET(C#) 中实现 Windows 11 快捷键切换声音输出设备方法。

风清扬的专栏 1906

NHotkey:一个托管库,用于处理Windows Forms和WPF应用程序中的全局热键

快捷键 即使WPF或WinForms应用程序没有焦点,也可以轻松处理快捷键。 使用熟悉的KeyBinding语法在XAML中声明热键。 Nuget软件包: 对于WPF: 对于Windows窗体: Windows窗体用法 添加对NHotkey.dll和NHotkey.WindowsForms.dll的引用。 在要处理热键的文件中,导入NHotkey.WindowsForms命名空间: using NHotkey . WindowsForms ; 在初始化期间,添加一些热键: HotkeyManager . Current . AddOrReplace ( " Incr

NHotkey 使用指南

NHotkey 使用指南 项目介绍 NHotkey 是一个专为 .NET 开发的管理库,旨在简化在 Windows Forms 和 WPF 应用程序中处理全局热键的需求。通过这个库,开发者可以轻松创建不受应用焦点限制的热键功能,增强用户体验。由 Thomas Levesque 维护,支持.NET 6.0及以上版本,同时也兼容.NET Framework 4.6.2及更高版本。 项目快速启动 要迅速...

gitblog_00343的博客 960

NHotkey, 在 Windows 窗体和WPF应用程序中,管理全局热键的托管库.zip

NHotkey, 在 Windows 窗体和WPF应用程序中,管理全局热键的托管库 NHotkey即使你的WPF或者WinForms应用程序没有焦点,也轻松处理快捷键。 用熟悉的KeyBinding 语法声明XAML中的热键。Nuget软件包:对于 WPF: NHotkey.Wpf对于 Windows 窗体:N

热键管理程序Perfect Hotkey1.32中文注册版.rar

软件介绍: Perfect Hotkey是一款热键管理工具,新建热键能为不同的行为分配按键组合。热键管理可删除或编辑已分配的按键组合,轻松地管理你的热键,要添加新的热键可点击新建热键按钮。预制消息能组织自定义预制回复,如果你需要向多人发出类似的回复,请考虑使用完美热键这个功能,这个功能允许你将邮件保存为预制的回复且可重复使用它,而无需复制并粘贴的窗口。导出设置备份所有用户数据到文件,导入设置从文件中恢复所有用户数据。还能管理光驱,插入或弹出CD/DVD。

NHotkey 开源项目使用教程

NHotkey 开源项目使用教程 本教程旨在帮助开发者快速理解和使用 NHotkey 库,它是一个用于处理Windows Forms和WPF应用程序中全局热键的托管库。以下是关于其基本结构、关键文件以及配置的详细介绍。 1. 项目目录结构及介绍 NHotkey 作为一个NuGet包,其源代码在GitHub上的目录结构通常遵循.NET标准库的组织原则。虽然具体的内部目录结构细节未直接提供,但基于常规...

gitblog_00050的博客 399

中科蓝讯AB536X/AB892X芯片开发避坑指南:Downloader配置中那些容易忽略的细节

本文详细解析中科蓝讯AB536X/AB892X芯片开发中Downloader配置的关键细节,包括软开关机实现、触摸灵敏度调试、量产校频等常见问题。特别针对无PR口芯片的替代方案、触摸参数优化、校频流程等易忽略环节提供实用解决方案,帮助开发者规避量产风险,提升开发效率。

weixin_30687051的博客 475

推荐开源项目:Hotkey - 实现跨平台热键功能的Go语言库

推荐开源项目:Hotkey - 实现跨平台热键功能的Go语言库 在追求高效和便捷的编程世界里,一个能够实现跨平台热键功能的工具显得尤为珍贵。今天,我们来探索【hotkey】——一款由Go设计团队打造的高效、简洁的跨平台热键管理库。 项目介绍 hotkey是一个专为Go语言开发的跨平台热键包,它允许开发者在全球范围内注册快捷键,即使当前窗口没有焦点也能响应用户的热键操作。通过引入这个库,你的应用将能...

gitblog_01188的博客 1166

YOLOv8 轴承缺陷检测 使用YOLOv8进行训练、评估和可视化预测结果 包含1440张图片的轴承缺陷检测数据集 YOLO格式或XML格式

本文介绍了一个基于YOLOv8的轴承缺陷检测项目。数据集包含1440张图片,标注了4类缺陷(凹槽、凹陷、卡伤、划痕),按8:1:1比例划分为训练集(1152张)、验证集(144张)和测试集(144张)。标注文件支持YOLO格式和XML格式,可直接用于模型训练。项目实现了数据准备、模型训练、评估及可视化预测结果的全流程,使用YOLOv8n预训练模型进行50个epoch的训练,并提供了数据格式转换(XML转YOLO)的代码示例。最终模型可自动检测轴承表面缺陷,并保存预测结果。

OICQQ67658008的博客 1438

BQ40Z50R2循环学习实战:量产文件生成与关键状态位解析

本文详细解析了TI BQ40Z50R2电量计循环学习(Golden Learning)的实战流程与量产文件生成方法。重点剖析了updateStatus状态位在充放电静置阶段的常见异常(如卡在0x04或跳至0x0E)及其根本原因,并提供了从环境控制、命令顺序到文件处理的完整避坑指南,帮助工程师高效完成量产配置。

weixin_29170327的博客 214

程序中使用热键的实现

在Winform程序中使用热键实现相关功能

我的收藏 655

Quartus安装Altera USB-Blaster安装驱动程序出现问题(代码39)的解决办法

Quartus安装Altera USB-Blaster安装驱动程序出现问题(代码39)的解决办法

MCU_HOT的博客 1万+

C# WinForm窗体程序、如何实现像QQ一样的热键

using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Windows.Forms; namespace KoalaStudio.BookshopManager { class HotKey { //如果函数执行成功,返回值不为0。 //如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。 .

最数据的专栏 360

从码农到生态建造者:我的一人公司运作方案

华哥·OPC 运营方案 v1.0 - 第一次迭代 🚀,搭建闭环生态系统,赋能 AI 时代的超级个体,更好的做自己,同时照亮别人。

AaronZZH 的博客 994

如何使用CPU-Z获取内存条频率信息(编程)

当我们需要获取计算机内存条的频率信息时,可以利用CPU-Z这个工具来实现。CPU-Z是一款专门用于获取计算机硬件信息的工具,它提供了API接口,我们可以通过编程的方式来获取内存条频率信息。你可以从CPU-Z官方网站下载适用于你的操作系统的CPU-Z程序,并从安装目录中找到。函数,我们可以初始化CPU-Z,如果返回值不为0,则表示初始化失败。函数来获取内存条频率信息,如果返回值小于等于0,则表示获取失败。函数来初始化CPU-Z并获取内存条频率信息。最后,我们将获取到的内存条频率信息打印输出,并使用。

ByteProwl的博客 457

VC实现系统热键激活后台服务程序

引言  通常情况下,用于后台监控的服务程序(Service)是没有界面的,甚至也没有提供任务栏图标,因此绝大多数情况下服务程序是无法同用户进行交互的。但是在实际应用中,这些服务程序虽然绝大多数时间是在后台运行,但是在某些必要的情况下还是需要用户的干预并同用户进行一些必要的交互操作。但是由于服务程序没有提供任何可供交互操作之用的界面,因此如何将其从后台激活(即呼出)成为解决此问题的一个关键。本文

Jingle的专栏 984

【StreamSet】ETL之StreamSet之Pipelines的状态监听之WebHook钉钉篇

介绍下StreamSets的状态监听以及钉钉的webhook的互联,这位博友问的恰是时候,不久前我刚刚对接过钉钉的机器人,这次看到这个问题,对我来说,应该轻车熟路了,那就有了这篇博文,状态监听之钉钉篇。...

m0_54252387的博客 487

在应用程序中使用热键-vc++6_0实现方法

Windows操作系统提供了许多热键,比如常用的热键:Win+E打开资源管理器,Win+F打开查找对话框,F1打开帮助等等。使用这些热键可以使我们的操作更加方便。那么,怎样在自己的应用程序中添加和使用热键呢?下面以VC++为例来说明。MFC提供了CHotKeyCtrl类,由 CHotKeyCtrl 类表示的热键控件是一个窗口,显示用户键入的组合键(如 CTRL +S)的文本表示形式。它还维护此

sw283632534的专栏 1609

ABAP CDS View 从入门到精通教程第一篇:ABAP CDS View 在 SAP 技术体系中的重要地位

摘要:本文介绍了SAP开发技术专家提供的多套SAP开发教程,涵盖ABAP、UI5、Fiori、OData、BTP等技术领域。重点阐述了ABAP CDS View在SAP S/4HANA中的核心地位,作为虚拟数据模型(VDM)的关键技术,它实现了OLTP和OLAP的统一处理。文章还说明了学习CDS View的前置条件,包括需要SAP NetWeaver 7.50 SP01或更高版本系统,以及使用SAP ABAP Development Tool进行开发实践。作者具有16年SAP开发经验,这些教程形成了完整的S

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 897

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

VC实现系统热键激活后台服务程序(界面)

http://hi.baidu.com/aleizxl/blog/item/cab92e163972464920a4e9f2.html 摘要: 本文给出了一种通过设置系统热键来呼出在系统后台隐藏运行的服务程序的一种方法,通过这种方法,可以实现后台服务程序在必要的时候同用户的交互设置。  引言  通常情况下,用于后台监控的服务程序(Service)是没有界面的,甚至也没有提供任务栏图标,因此绝大

Greenfire的专栏 1336

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 根据文件句柄,获取文件名
下一篇: 开机自动运行
goingup
博客等级 码龄22年 52粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值