请问各位高手,
怎样在C#中屏蔽Alt+F4,Alt+Tab,Ctrl+Alt+Delete键????

解决方案 »

  1.   

    键盘钩子
    HOOK,拦截Windows消息
      

  2.   

    Alt+F4,Alt+Tab可以通过HOOK来的,Ctrl+Alt+Delete HOOK是钩不住的,只能改自己做的DLL替换掉系统的DLL
      

  3.   

    API 
    [DllImport("user32.dll")]
    看下  public static extern UInt32 RegisterHotKey(IntPtr hWnd, UInt32 id, UInt32 fsModifiers, UInt32 vk);
      

  4.   

    hook也不行 楼主改学汇编吧
      

  5.   

    有这样一个方法.不知道你能用不.
    private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if ((e.Alt) && (e.KeyCode == Keys.F4))
                {
                    exit = true;
                }
            }
     private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                e.Cancel = exit;
                exit = false;
            }
    这样一来Alt+F4 就关不了程序了
      

  6.   

    Ctrl+Alt+Delete这个地干活,难度大大的
      

  7.   

    说起屏蔽 Ctrl+Alt+Delete ,我想起来大约10年前,我玩 兰古利萨2 的时候,第一次玩就被游戏吸引并且玩了一整天~~  但是当我要停的时候意外发现找不到保存退出的地方~~~~界面上哪里都点不到,试了Esc什么的也不行,甚至Win键都没有用,Alt+Tab 也切不出来~~~Alt+F4 没用~~
    最后实在想不到办法了,我按了  Ctrl+Alt+Delete  (Win95可不出来任务管理器那个对话框,按这个就是直接重启,所以不到万不得已不用) ,意外发现~~~连这个也不能用~~~
    只能说这个游戏太牛了~~~~~ 后来在一本“攻略”上发现F10就可以出来“是否要退出”的对话框~~~然后意外发现原来那个键盘的F10键失灵了~~~
    屏蔽Ctrl+Alt+Delete 是绝对可以做到的,不过我不知道怎么做。
      

  8.   

    可不可以这样 如果用hook侦测到按下 Ctrl+Alt 的时候 系统就自动按下另一个键比如shift 这样 就算再按 delete  就是按下4个键了 可以让Ctrl+Alt+Delete失效!同理其他组合键可以吧
      

  9.   

    Ctrl+Alt  这两个键你侦测一下试试
      

  10.   

    屏蔽Ctrl+Alt+Delete 在C#中好像做不到(我猜的)以前好像在VC版中见蒋晟问过
    做起来相当的麻烦
      

  11.   

    给你篇VC 的
    http://news.newhua.com/html/vc/2005-11/22/05112209281897021_1.shtml
      

  12.   

    syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) :
    你说会不会是Ctrl、Alt、Delete 这3个键中也有一个坏的呢?
    玩笑啊,嘿嘿~~~
    我觉得可以把gpedit.msc中的Ctrl+Alt+Del选项:防止用户启动“任务管理器”(Taskmgr.exe)。如果该设置被启用,并且用户试图启动任务管理器,系统会显示消息,解释是一个策略禁止了这个操作。
    HKEY_USERS\S-1-5-21-299502267-1979792683-682003330-1003\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{EF8FECBA-5390-4A97-8F28-6E99E784AA80}User\Software\Microsoft\Windows\CurrentVersion\Policies\System
    HKEY_USERS\S-1-5-21-299502267-1979792683-682003330-1003\Software\Microsoft\Windows\CurrentVersion\Policies\System
    启用~~~
      

  13.   

    Top  
     syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) ( ) 信誉:95   
    兰古利萨2大哥不要胡说好不好。10年前,梦幻模拟战2 在PC上根本没有。模拟器 ROM,MD和SFC还没DUMP出来,你不会玩的是 次爹机版的吧!!  
      

  14.   

    private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if ((e.Alt) && (e.KeyCode == Keys.F4))
                {
                    MessageBox.Show("屏蔽!");
                }
            }
      

  15.   

    呆!
    代替方法一:替换调Taskmgr.exe文件。
    代替方法二:HOOK窗口标题为"Windows 任务管理器"的窗口,并关闭。现在网吧管理软件几乎都是使用这两种方法。
      

  16.   

    //禁用Alt+f4键,注要把你窗口中的所有控件都做上
        if ((e.KeyCode == Keys.F4) && (e.Alt == true))
                {
                    e.Handled = true;
                }
                if ((e.KeyCode == Keys.Delete) && (e.Alt == true) && (e.Control == true))
                {
                    e.Handled = true;
                }
      

  17.   

    可以用以下代码实现,但前题是必须打开Form的KeyPreview属性private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if ((e.Alt) && (e.KeyCode == Keys.F4))
                {
                    exit = true;
                }
            }
     private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                e.Cancel = exit;
                exit = false;
            }
      

  18.   

    叶帆有一款控件是可以做到这点的——不过我也不知道是怎么实现的我的Win2003是可以别彻底锁住的——VB版本的控件
      

  19.   

    你可以禁用系统的Alt Del Ctrl这几个键子,在组策略里面,用程序设定应该可以的吧
      

  20.   

    我没法做到屏蔽 但是 效果照样可以实现
    LZ可以 写一个process 抓取当前的进程,只要出现任务管理器立马关掉!这样一样可以屏蔽掉 CTRL+ALT+DELETE
    代码Process [] a = Process.GetProcessesByName("taskmgr");
    try
    {
    a[0].CloseMainWindow();
    }
    catch
    {
    }