1,221
社区成员
发帖
与我相关
我的任务
分享
private static void SetHook(PROCESS_INFORMATION pInfo)
{
WinAPI.HookProc hook = myHookProc;
Process p = Process.GetProcessById(pInfo.dwProcessId);
IntPtr modelhandle = WinAPI.GetModuleHandle(p.MainModule.ModuleName);
curHook = WinAPI.SetWindowsHookEx(HookType.WH_CALLWNDPROC, myHookProc, modelhandle, (uint)pInfo.dwThreadId);
int error = Marshal.GetLastWin32Error();
if (error != 0)
{
throw new Win32Exception(error);
}
}
private static IntPtr myHookProc(int code, IntPtr wParam, IntPtr lParam)
{
Keys key = (Keys)wParam.ToInt32();
Console.WriteLine(key);
return WinAPI.CallNextHookEx(IntPtr.Zero, code, wParam, lParam);
}
var mhlist = p.Modules.Cast<ProcessModule>().Select(model => new { Name = model.ModuleName, Handle = WinAPI.GetModuleHandle(model.ModuleName) }).ToList();
foreach (var m in mhlist)
{
Console.WriteLine("Name: {0} Handle: {1}",m.Name,m.Handle);
}