C# KeyPress 事件能否提供全局事件
想做一个程序当在程序任何窗体按下F4键,就会触发一个事件KeyPress事件我写在textBox控件里还有效,写在窗体里好像没用另外,我用:if(e.KeyChar=='...
想做一个程序
当在程序任何窗体按下F4键,就会触发一个事件
KeyPress 事件我写在textBox控件里还有效,写在窗体里好像没用
另外,我用:if (e.KeyChar == '\r') 可以判断输入的是否是回车
if (e.KeyChar == 115)是不是F4键啊?查的ASCII表说F4是115,不知道对不对。 展开
当在程序任何窗体按下F4键,就会触发一个事件
KeyPress 事件我写在textBox控件里还有效,写在窗体里好像没用
另外,我用:if (e.KeyChar == '\r') 可以判断输入的是否是回车
if (e.KeyChar == 115)是不是F4键啊?查的ASCII表说F4是115,不知道对不对。 展开
展开全部
设置窗体的KeyPreview=true
KeyPress事件只能检测到可见字符的输入,不能检测控制字符,建议使用KeyDown
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要全局只能去hook
追问
hook是什么?
追答
~~~你百度c# hook 键盘就可以了; 这里你不需要全局hook 只要hook进程内就可以了;
这是我相关函数在c#中的声明:
// hook回调
public delegate int HookProc(int nCode, int wParam, IntPtr lParam);
// 安装hook
[DllImport("user32.dll", CharSet = CharSet.Auto,
CallingConvention = CallingConvention.StdCall, SetLastError = true)]
public static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hMod, int dwThreadId);
// 将消息传到下个hook
[DllImport("user32.dll", CharSet = CharSet.Auto,
CallingConvention = CallingConvention.StdCall)]
public static extern int CallNextHookEx(int idHook, int nCode, int wParam, IntPtr lParam);
// 卸载hook
[DllImport("user32.dll", CharSet = CharSet.Auto,
CallingConvention = CallingConvention.StdCall, SetLastError = true)]
public static extern int UnhookWindowsHookEx(int idHook);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询