难!怎样在C#中屏蔽Alt+F4,Alt+Tab,Ctrl+Alt+Delete键 请问各位高手,怎样在C#中屏蔽Alt+F4,Alt+Tab,Ctrl+Alt+Delete键???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 键盘钩子HOOK,拦截Windows消息 Alt+F4,Alt+Tab可以通过HOOK来的,Ctrl+Alt+Delete HOOK是钩不住的,只能改自己做的DLL替换掉系统的DLL API [DllImport("user32.dll")]看下 public static extern UInt32 RegisterHotKey(IntPtr hWnd, UInt32 id, UInt32 fsModifiers, UInt32 vk); hook也不行 楼主改学汇编吧 有这样一个方法.不知道你能用不.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 就关不了程序了 Ctrl+Alt+Delete这个地干活,难度大大的 说起屏蔽 Ctrl+Alt+Delete ,我想起来大约10年前,我玩 兰古利萨2 的时候,第一次玩就被游戏吸引并且玩了一整天~~ 但是当我要停的时候意外发现找不到保存退出的地方~~~~界面上哪里都点不到,试了Esc什么的也不行,甚至Win键都没有用,Alt+Tab 也切不出来~~~Alt+F4 没用~~最后实在想不到办法了,我按了 Ctrl+Alt+Delete (Win95可不出来任务管理器那个对话框,按这个就是直接重启,所以不到万不得已不用) ,意外发现~~~连这个也不能用~~~只能说这个游戏太牛了~~~~~ 后来在一本“攻略”上发现F10就可以出来“是否要退出”的对话框~~~然后意外发现原来那个键盘的F10键失灵了~~~屏蔽Ctrl+Alt+Delete 是绝对可以做到的,不过我不知道怎么做。 可不可以这样 如果用hook侦测到按下 Ctrl+Alt 的时候 系统就自动按下另一个键比如shift 这样 就算再按 delete 就是按下4个键了 可以让Ctrl+Alt+Delete失效!同理其他组合键可以吧 Ctrl+Alt 这两个键你侦测一下试试 屏蔽Ctrl+Alt+Delete 在C#中好像做不到(我猜的)以前好像在VC版中见蒋晟问过做起来相当的麻烦 给你篇VC 的http://news.newhua.com/html/vc/2005-11/22/05112209281897021_1.shtml 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\SystemHKEY_USERS\S-1-5-21-299502267-1979792683-682003330-1003\Software\Microsoft\Windows\CurrentVersion\Policies\System启用~~~ Top syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) ( ) 信誉:95 兰古利萨2大哥不要胡说好不好。10年前,梦幻模拟战2 在PC上根本没有。模拟器 ROM,MD和SFC还没DUMP出来,你不会玩的是 次爹机版的吧!! private void Form1_KeyDown(object sender, KeyEventArgs e) { if ((e.Alt) && (e.KeyCode == Keys.F4)) { MessageBox.Show("屏蔽!"); } } 呆!代替方法一:替换调Taskmgr.exe文件。代替方法二:HOOK窗口标题为"Windows 任务管理器"的窗口,并关闭。现在网吧管理软件几乎都是使用这两种方法。 //禁用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; } 可以用以下代码实现,但前题是必须打开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; } 叶帆有一款控件是可以做到这点的——不过我也不知道是怎么实现的我的Win2003是可以别彻底锁住的——VB版本的控件 你可以禁用系统的Alt Del Ctrl这几个键子,在组策略里面,用程序设定应该可以的吧 我没法做到屏蔽 但是 效果照样可以实现LZ可以 写一个process 抓取当前的进程,只要出现任务管理器立马关掉!这样一样可以屏蔽掉 CTRL+ALT+DELETE代码Process [] a = Process.GetProcessesByName("taskmgr");try{a[0].CloseMainWindow();}catch{} 关于保存文本文档到本地 都进来看看,base.WndProc(ref m)的原理和使用 数据结构 vs C# 求助 c#报表纸型设置问题 GDI画字符串 画不出来 请大神解答这句话是什么意思 c#认为是无用的垃圾内存的依据是什么? 怎样在最短的时间培训新人掌握C#及.Net技术?....一千分....等你领!Up每个两分 关闭释放 这个pdfCtl 对象 C# UdpClient接收消息问题? 怎么样才能得到tableLayoutPanel的当前行呀
HOOK,拦截Windows消息
[DllImport("user32.dll")]
看下 public static extern UInt32 RegisterHotKey(IntPtr hWnd, UInt32 id, UInt32 fsModifiers, UInt32 vk);
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 就关不了程序了
最后实在想不到办法了,我按了 Ctrl+Alt+Delete (Win95可不出来任务管理器那个对话框,按这个就是直接重启,所以不到万不得已不用) ,意外发现~~~连这个也不能用~~~
只能说这个游戏太牛了~~~~~ 后来在一本“攻略”上发现F10就可以出来“是否要退出”的对话框~~~然后意外发现原来那个键盘的F10键失灵了~~~
屏蔽Ctrl+Alt+Delete 是绝对可以做到的,不过我不知道怎么做。
做起来相当的麻烦
http://news.newhua.com/html/vc/2005-11/22/05112209281897021_1.shtml
你说会不会是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
启用~~~
syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) ( ) 信誉:95
兰古利萨2大哥不要胡说好不好。10年前,梦幻模拟战2 在PC上根本没有。模拟器 ROM,MD和SFC还没DUMP出来,你不会玩的是 次爹机版的吧!!
{
if ((e.Alt) && (e.KeyCode == Keys.F4))
{
MessageBox.Show("屏蔽!");
}
}
代替方法一:替换调Taskmgr.exe文件。
代替方法二:HOOK窗口标题为"Windows 任务管理器"的窗口,并关闭。现在网吧管理软件几乎都是使用这两种方法。
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;
}
{
if ((e.Alt) && (e.KeyCode == Keys.F4))
{
exit = true;
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = exit;
exit = false;
}
LZ可以 写一个process 抓取当前的进程,只要出现任务管理器立马关掉!这样一样可以屏蔽掉 CTRL+ALT+DELETE
代码Process [] a = Process.GetProcessesByName("taskmgr");
try
{
a[0].CloseMainWindow();
}
catch
{
}