private void Form1_Load(object sender, EventArgs e)
{
//intLLKey = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]).ToInt32(), 0);
// it's working, but I wanna to call it in another thread
// not working
new TaskFactory().StartNew(() =>
{
intLLKey = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]).ToInt32(), 0);
});
}
[DllImport("user32", EntryPoint = "SetWindowsHookExA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern int SetWindowsHookEx(int idHook, LowLevelKeyboardProcDelegate lpfn, int hMod, int dwThreadId);
public const int WH_KEYBOARD_LL = 13;
public int LowLevelKeyboardProc(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam)
{
...
}
我不知道为什么,我真的想在另一个主题中用某种原因来调用它