屏蔽部分热键

刚看到的,也许以后能用上,记录
public void HideAllFunction(Page page) 
  {
   if(!page.IsStartupScriptRegistered ("msgHideAllFunction"))
   {
    string clientScript=@"<script language=JavaScript>
                   
          function KeyDown(){   
            if ((window.event.altKey)&& ((window.event.keyCode==37)||(window.event.keyCode==39)))  //屏蔽 Alt+ 方向键 ←  //屏蔽 Alt+ 方向键 →
            {
               
             event.returnValue=false;
            }
            if (event.keyCode==116) //屏蔽 F5 刷新键
            {         
             event.keyCode=0;
             event.returnValue=false;
            }
            if ((event.ctrlKey)&&(event.keyCode==78))//屏蔽 Ctrl+n
            {  
             event.returnValue=false;
            }  
            if ((event.shiftKey)&&(event.keyCode==121))//屏蔽 shift+F10
            {
              
             event.returnValue=false;
            }
            if (event.keyCode==122)//屏蔽 F11
            {
             event.keyCode=0;
             event.returnValue=false;
            }
           }

           function nocontextmenu()
            {
            event.cancelBubble = true
            event.returnValue = false;

            return false;
            }
          document.onkeydown = KeyDown;
          document.οncοntextmenu=nocontextmenu;
          
          
   
         </script>";

    page.RegisterStartupScript("msgHideAllFunction",clientScript);
   }


  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想在C#应用程序中屏蔽常规热键(例如Ctrl+C、Alt+Tab等),可以使用Windows API函数来实现。以下是一个示例代码,演示了如何屏蔽Ctrl+Alt+Delete热键: ```csharp using System; using System.Runtime.InteropServices; using System.Windows.Forms; public class HotkeyInterceptor { private const int WH_KEYBOARD_LL = 13; private const int HC_ACTION = 0; private const int VK_CONTROL = 0x11; private const int VK_MENU = 0x12; private const int VK_DELETE = 0x2E; private static LowLevelKeyboardProc _proc = HookCallback; private static IntPtr _hookID = IntPtr.Zero; public static void Main() { _hookID = SetHook(_proc); Application.Run(); UnhookWindowsHookEx(_hookID); } private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam); private static IntPtr SetHook(LowLevelKeyboardProc proc) { using (Process curProcess = Process.GetCurrentProcess()) using (ProcessModule curModule = curProcess.MainModule) { return SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curModule.ModuleName), 0); } } private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0 && wParam == (IntPtr)HC_ACTION) { int vkCode = Marshal.ReadInt32(lParam); if ((Control.ModifierKeys & Keys.Control) != 0 && (Control.ModifierKeys & Keys.Alt) != 0 && vkCode == VK_DELETE) { return (IntPtr)1; //屏蔽Ctrl+Alt+Delete } } return CallNextHookEx(_hookID, nCode, wParam, lParam); } [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool UnhookWindowsHookEx(IntPtr hhk); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam); [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr GetModuleHandle(string lpModuleName); } ``` 这段代码使用了`SetWindowsHookEx`函数来设置一个键盘钩子,然后在`HookCallback`方法中检查按下的键是否是Ctrl+Alt+Delete,并通过返回值来屏蔽热键。注意,这个代码只是演示了如何屏蔽一个热键,你需要根据自己的需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值