Hi guys... im trying to work on global hook and i tried browsing for some example and i tackled on one of this site that posted this code
private delegate int LowLevelKeyboardProcDelegate(int nCode, int
wParam, ref KBDLLHOOKSTRUCT lParam);
[DllImport("user32.dll", EntryPoint = "SetWindowsHookExA",
CharSet = CharSet.Ansi)]
private static extern int SetWindowsHookEx(int idHook,
LowLevelKeyboardProcDelegate lpfn, int hMod, int dwThreadId);
[DllImport("user32.dll", EntryPoint = "UnHookWindowsHookEx",
CharSet = CharSet.Ansi)]
private static extern int UnHookWindowsEx(int hHook);
[DllImport("user32.dll", EntryPoint = "CallNextHookEx",
CharSet = CharSet.Ansi)]
private static extern int CallNextHookEx(int hHook, int nCode, int
wParam, ref KBDLLHOOKSTRUCT lParam);
const int WH_KEYBOARD_LL = 13;
public struct KBDLLHOOKSTRUCT
{
public int vkCode;
int scanCode;
public int flags;
int time;
int dwExtraInfo;
}
private int intLLKey;
private KBDLLHOOKSTRUCT lParam;
private int LowLevelKeyboardProc(int nCode, int wParam, ref
KBDLLHOOKSTRUCT lParam)
{
bool blnEat = false;
switch (wParam)
{
case 256:
case 257:
case 260:
case 261:
if (((lParam.vkCode == 9) && (lParam.flags == 32)) ||
((lParam.vkCode == 27) && (lParam.flags == 32)) || ((lParam.vkCode ==
27) && (lParam.flags == 0)) || ((lParam.vkCode == 91) && (lParam.flags
== 1)) || ((lParam.vkCode == 92) && (lParam.flags == 1)) || ((true) &&
(lParam.flags == 32)))
{
blnEat = true;
}
break;
}
if (blnEat)
return 1;
else return CallNextHookEx(0, nCode, wParam, ref lParam);
}
public void KeyboardHook(object sender, EventArgs e)
{
intLLKey = SetWindowsHookEx(WH_KEYBOARD_LL, new LowLevelKeyboardProcDelegate(LowLevelKeyboardProc) ,
System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]).ToInt32(),0);
if(intLLKey == 0){
MessageBox.Show("alt tab was not pressed");
}else{
MessageBox.Show("alt tab waspressed");
}
}
now i want this code to check or prompt a message box that will say that the key alt+tab was pressed? how do i do this? and where should i placed it? is it during the form load?
i tried placing it in form load but it only prompts once but when i pressed the alt+tab it does not do anything anymore... i placed the it in form load like this
private void Form1_Load(object sender, EventArgs e)
{
KeyboardHook(sender, e);
}
i have no idea how to invoke or call and implement the global hook... please help me with this