如何用C#作全局(也就是系统)键盘钩子?谢谢 ( (

CNet 2002-10-31 02:22:10
关键是全局的,
还有做全局热键,比如Ctrl+Alt+某个键值。
...全文
266 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yarshray 2002-11-07
  • 打赏
  • 举报
回复
Win2K、NT下屏蔽Ctrl+Alt+Del的响应

这是一个系统级的调用,从普通的用户态根本没办法
所以必须使用登陆

http://www.csdn.net/magazine/download.shtm

详细解说!
ys19811110 2002-11-07
  • 打赏
  • 举报
回复
转的:

Global Hook Is Not Supported in .NET Framework

You cannot implement global hooks in Microsoft .NET Framework. To install a global hook, a hook must have a native dynamic-link library (DLL) export to inject itself in another process that requires a valid, consistent function to call into. This requires a DLL export, which .NET Framework does not support. Managed code has no concept of a consistent value for a function pointer because these function pointers are proxies that are built dynamically.
CNet 2002-11-01
  • 打赏
  • 举报
回复
不明白hillwell(天子门生)说的是什么意思?
ouyang76cn 2002-11-01
  • 打赏
  • 举报
回复
to:hillwell(天子门生)

贴主问的是怎样做钩子!!!!!
hillwell 2002-10-31
  • 打赏
  • 举报
回复
在这里声明一下,希望楼主不要介意 yarshray(saga jion)兄在很多帖子中
发言---很有热心---我所说赞扬的高手只举了班兄为例子,其实我对包括尼在内的诸位高手都是满怀敬意的。
yarshray 2002-10-31
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1135/1135992.xml?temp=.1188776
zag 2002-10-31
  • 打赏
  • 举报
回复
学习学习
yarshray 2002-10-31
  • 打赏
  • 举报
回复
http://www.vbcity.com/forums/topic.asp?tid=5733
vb.net的
SetWindowsHookEx、UnhookWindowsHookEx
yarshray 2002-10-31
  • 打赏
  • 举报
回复
你说的是捕获系统热键吗?
CNet 2002-10-31
  • 打赏
  • 举报
回复
yarshray(saga jion) :
错了,您写的不是全局键盘钩子而是localhook!
yarshray 2002-10-31
  • 打赏
  • 举报
回复
public class Win32Hook
{

[DllImport("kernel32")]
public static extern int GetCurrentThreadId();

[DllImport( "user32",
CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
public static extern int SetWindowsHookEx(
HookType idHook,
HOOKPROC lpfn,
int hmod,
int dwThreadId);

public enum HookType
{
WH_KEYBOARD = 2
}

public delegate int HOOKPROC(int nCode, int wParam, int lParam);

public void SetHook()
{
// set the keyboard hook
SetWindowsHookEx(HookType.WH_KEYBOARD,
new HOOKPROC(this.MyKeyboardProc),
0,
GetCurrentThreadId());
}

public int MyKeyboardProc(int nCode, int wParam, int lParam)
{
//在这里放置你的处理代码 return 0;
}
}
使用方法
可以在Form的构造函数里放入
Win32Hook hook = new Win32Hook();
hook.SetHook();

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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