如题,怎么捕捉非窗体上的鼠标的单击,拖动,双击,右单击等事件,还有键盘的输入事件注意不是笨窗体上的,是系统全局的。。
解决方案 »
- 如何在winform中嵌入excel?
- 急!VS2008的 HTML 设计器加载失败!请高手帮我解决下!谢谢!
- imap,没有密码如何通过用户帐号获取用户的邮件?
- 做一个Asp.net程序,关于动态创建CheckBox控件后,改变CheckBox的选择状态,显示相应提示信息的问题
- 如何获取网页中图片的URL!! 急!!
- 登录窗口的问题!!!
- 请教如何在c#程序中调用.exe和.bat的文件
- 菜鸟问题:类型转换。。。。。100分啊
- System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询
- 为什么在asp.net下使用FileStream对象会报错而在控制台就不会
- 如何备份sql server 2005的数据库?
- C#操作Xml
{
private IntPtr m_HookEx;
/// <summary>
/// 设置自己进程的钩子
/// </summary>
/// <param name="p_HookCodes">钩子类型</param>
public HookMessage(WindowsHookCodes p_HookCodes)
{
m_HookEx = Win32API.SetWindowsHookEx((int)p_HookCodes, new Win32API.HookProc(SetHookProc), IntPtr.Zero, Win32API.GetCurrentThreadId());
}
/// <summary>
/// 设置进程的钩子
/// </summary>
/// <param name="p_HookCodes">钩子类型</param>
/// <param name="p_ThreadID">全局钩子</param>
public HookMessage(WindowsHookCodes p_HookCodes, bool p_Zero)
{
IntPtr _Value =System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]);
m_HookEx = Win32API.SetWindowsHookEx((int)p_HookCodes, new Win32API.HookProc(SetHookProc), _Value, 0);
}
/// <summary>
/// 关闭钩子
/// </summary>
public void UnHookMessage()
{
if (Win32API.UnhookWindowsHookEx(m_HookEx))
{
m_HookEx = IntPtr.Zero;
}
} public delegate void GetHookMessage(int p_Code, IntPtr p_wParam, IntPtr p_lParam);
public event GetHookMessage GetHook; private IntPtr SetHookProc(int p_Code, IntPtr p_wParam, IntPtr p_lParam)
{
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
if (GetHook != null) GetHook(p_Code, p_wParam, p_lParam);
return IntPtr.Zero;
}
}