Note that there are some explanatory texts on larger screens.

plurals
  1. POBlocking shortcut keys using c#
    primarykey
    data
    text
    <p>I am using the below code to disable the Alt+Tab, Alt+Esc, Ctrl+Esc, and Windows Key but somehow it is not working. Please help me rectify it.</p> <pre><code>namespace BlockShortcuts { public partial class Form1 : Form { public Form1() { InitializeComponent(); } 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")] private static extern int UnhookWindowsHookEx(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; private int intLLKey; private KBDLLHOOKSTRUCT lParam; private struct KBDLLHOOKSTRUCT { public int vkCode; int scanCode; public int flags; int time; int dwExtraInfo; } private int LowLevelKeyboardProc( int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam) { bool blnEat = false; switch (wParam) { case 256: case 257: case 260: case 261: //Alt+Tab, Alt+Esc, Ctrl+Esc, Windows Key if (((lParam.vkCode == 9) &amp;&amp; (lParam.flags == 32)) || ((lParam.vkCode == 27) &amp;&amp; (lParam.flags == 32)) || ((lParam.vkCode == 27) &amp;&amp; (lParam.flags == 0)) || ((lParam.vkCode == 91) &amp;&amp; (lParam.flags == 1)) || ((lParam.vkCode == 92) &amp;&amp; (lParam.flags == 1)) || ((true) &amp;&amp; (lParam.flags == 32))) { blnEat = true; } break; } if (blnEat) return 1; else return CallNextHookEx(0, nCode, wParam, ref lParam); } private 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); } private void ReleaseKeyboardHook() { intLLKey = UnhookWindowsHookEx(intLLKey); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) KeyboardHook(this, e); else ReleaseKeyboardHook(); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload