using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Windows.Forms; namespace drmaple { class HotKey { //如果函数执行成功,返回值不为0. //如果函数执行失败,返回值为0.要得到扩展错误信息,调用GetLastError. [DllImport("user32.dll", SetLastEr
每个窗体都有这样3个事件:KeyDown.KeyPress.KeyUp,KeyDown和KeyPress都是按键按下事件,但KeyDown用的是KeyCode跟键盘各个按键相对应,它对应Keys枚举,用起来比较方便:而KeyPress用的是KeyChar,这个就要找ASC II编码了,不方便.KeyUp是按键弹起事件,不常用,因此我们使用KeyDown事件来设置窗体的快捷键,双击该事件后的空白生成代码,首先我们设置单个按键,让它按下F11最大化,再次按下还原,在事件中加入如下代码: if (e.
C#.NET Winform 注册使用全局快捷键详解 借助于全局快捷键,用户可以在任何地方操控程序,触发对应的功能.但 WinForms 框架并没有提供全局快捷键的功能.想要实现全局快捷键需要跟 Windows API 打交道.本文就交你如何使用 Windows API 使用全局快捷键. 了解消息循环机制 消息机制简要介绍 一个窗体到底是如何工作的呢?它是如何响应用户的操作的呢?不妨先让我们搞明白一个程序的运行机制吧. 在 Windows 上面,一个桌面应用程序是通过消息机制驱动的.消息(Mes
重写DefWndProc事件 #region Window 消息捕获 const int WM_COPYDATA = 0x004A; public struct COPYDATASTRUCT { public IntPtr dwData; public int cbData; [MarshalAs(UnmanagedType.LPStr)] public string lpData; } [DllImport("user32")] public static extern bool C