`

C# 禁用ctrl+alt+del

    博客分类:
  • C#
阅读更多
using System;
using System.Runtime.InteropServices;
using System.Threading;
namespace LockWindows
{


/// <summary>
/// NativeWIN32 的摘要说明。
/// </summary>
public class NativeWIN32
{
   public NativeWIN32()
   {
    //
    // TODO: 在此处添加构造函数逻辑
    //
   }
  
   [DllImport("user32.dll", CharSet=CharSet.Auto)]
   public static extern IntPtr FindWindowEx(IntPtr parent /*HWND*/, 
    IntPtr next /*HWND*/, 
    IntPtr sClassName, 
    string sWindowTitle);
   [DllImport("user32.dll", CharSet=CharSet.Auto)]
   public static extern void SetForegroundWindow(int hwnd);

   [DllImport("user32.dll")]
   public static extern bool ShowWindow(int hWnd, nCmdShow nCmdShow);

   [DllImport("user32.dll", CharSet=CharSet.Auto)]
   public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

   [DllImport("user32.dll", CharSet=CharSet.Auto)]
   public static extern int CreateMutex(IntPtr hWnd, int msg, int wParam, int lParam);

   [DllImport("HK_KeyBoardCtr.dll", CharSet=CharSet.Auto)]
   private static extern void hideHotKey();

   [DllImport("HK_KeyBoardCtr.dll", CharSet=CharSet.Auto)]
   private static extern void showHotKey();

   public static bool hideSysKey(bool bHide)
   {
    try
    {
     if(bHide)
     {
      hideHotKey();
     }
     else
     {
      showHotKey();
     }
     return true;
    }
    catch
    {
     return false;
    }
   }
   //SendMessage(Handle2, WM_GETTEXT, 1024, Integer(@Buf));

   /// <summary>
   /// 找窗口
   /// </summary>
   /// <param name="windowTittle">窗口标题</param>
   /// <returns>返回真表示找到了,返回为假表示未找到</returns>
   public static bool FindThisWindow(string windowTittle)
   {
    IntPtr hParent = IntPtr.Zero;
    IntPtr hNext=IntPtr.Zero;
    hNext=NativeWIN32.FindWindowEx(hParent,hNext,IntPtr.Zero,windowTittle);
    if(hNext.ToInt32()>0)
    {
     NativeWIN32.SetForegroundWindow(hNext.ToInt32());    
     return true;  
    }
    else
    {
     return false;
    }
   }
   public static bool isExists(string strMutex)
   {

    bool createdNew;
    System.Threading.Mutex mutex = new System.Threading.Mutex(true,strMutex,out createdNew);
    return !createdNew; //createNew为真,则表示mutex创建成功,没有冲突,这样就认为本程序没有启动
   }

   public static bool CloseTheWindows(string strWindowName)
   {
    try
    {
     IntPtr hParent = IntPtr.Zero;
     IntPtr hNext=IntPtr.Zero;
     hNext=NativeWIN32.FindWindowEx(hParent,hNext,IntPtr.Zero,strWindowName);
     if(hNext.ToInt32()>0)
     {
      //关闭窗口
      NativeWIN32.SendMessage(hNext,16,0,0);
      return true;  
     }
     else
     {
      return false;
     }
    }
    catch(Exception err)
    {
     return false;
    }
   }

   public enum nCmdShow:uint
   {
    SW_FORCEMINIMIZE=0x0,
    SW_HIDE=0x1,
    SW_MAXIMIZE=0x2,
    SW_MINIMIZE=0x3,
    SW_RESTORE=0x4,
    SW_SHOW=0x5,
    SW_SHOWDEFAULT=0x6,
    SW_SHOWMAXIMIZED=0x7,
    SW_SHOWMINIMIZED=0x8,
    SW_SHOWMINNOACTIVE=0x9,
    SW_SHOWNA=0xA,
    SW_SHOWNOACTIVATE=0xB,
    SW_SHOWNORMAL=0xC,
    WM_CLOSE=0x10,
    //    WM_GETTEXT=0x11,
   }
}
}


分享到:
评论

相关推荐

    C#锁屏软件(真正禁用ctrl+alt+del,含源代码,适合初学者)

    用C#实现的锁屏软件,包括禁用ctrl+alt+del(真正的禁用,不是修改注册表禁用,引用了别人写的DLL,不过在windows7下无效,目前好像还没有有效简单的办法禁用win7的该组合键)、禁用常用的系统组合键(用全局钩子),...

    屏蔽按键CTRL+ALT+DEL

    在IT领域,"CTRL+ALT+DEL"是一个特殊键组合,通常用于在Windows操作系统中启动任务管理器或安全登录。这个键组合具有重要的系统级功能,但有时在特定环境中,如公共场所的计算机或企业的终端机,可能需要屏蔽或替换...

    禁用Ctrl+Alt+Del的代码示例

    下面我们将详细探讨如何禁用Ctrl+Alt+Del以及相关的技术知识。 禁用Ctrl+Alt+Del的一种常见方法是通过注册表编辑或者使用系统API。这里我们主要关注通过编程方式实现,特别是基于Windows API的方法。两个文件名...

    网上第一个解决win7下禁用Ctrl_alt_del的C#代码

    在给定的标题和描述中,我们讨论的是如何在C#应用程序中实现禁用Ctrl+Alt+Delete功能,并且解决方案是通过VC++编写一个动态链接库(DLL)来实现。 首先,我们需要理解为什么C#本身不能直接处理这个问题。C#作为.NET...

    C# 键盘钩子例子 可屏蔽Ctrl+Alt+Delete

    【C# 键盘钩子例子 可屏蔽Ctrl+Alt+Delete】 在Windows操作系统中,开发者有时需要对用户的键盘输入进行特殊处理,例如在某些安全软件或者特定应用中,为了防止用户通过`Ctrl+Alt+Delete`组合键退出程序或唤起任务...

    windows下c# 屏蔽系统atrl+alt+delete组合键

    通过以上步骤,你可以使用C#编写一个控制类软件,在Windows 10和Windows 7上屏蔽Ctrl+Alt+Delete键。在BanCAD这个项目中,可能已经包含了实现这一功能的源代码和相关资源。解压BanCAD文件后,可以学习和理解其中的...

    禁用Ctrl+Alt+Del.e

    标题“禁用Ctrl+Alt+Del.e”暗示了一个与操作系统安全和登录过程相关的主题,特别是涉及到禁用标准的Ctrl+Alt+Del组合键,这个组合键通常用于启动任务管理器、锁定计算机或进行用户登录。在Windows系统中,这是一个...

    屏蔽ctrl+alt+del的源代码(VB6)

    标题 "屏蔽ctrl+alt+del的源代码(VB6)" 涉及到的是一个VB6(Visual Basic 6)编程项目,其主要目的是阻止用户通过标准的Ctrl+Alt+Del组合键来启动任务管理器或其他系统级操作。这个功能在某些特定的应用场景下可能...

    Windows XP系统中屏蔽 Ctrl+Alt+Del、Alt+Tab以及Ctrl+Esc键序列

    在Windows XP系统中,Ctrl+Alt+Del、Alt+Tab以及Ctrl+Esc是三个非常重要的键盘组合键,它们各自有着特定的功能。Ctrl+Alt+Del通常用于启动任务管理器,Alt+Tab则用于在打开的应用程序之间切换,而Ctrl+Esc则相当于...

    禁用和允许Ctrl Alt Del组合按键

    但是这个禁用有个缺点,就是禁用CtrlAltDel组合键后,会出现无法登录,无法关机,无法重启等情况。因此必须等到系统起来后再执行禁用这个组合键,在关机之前要先允许组合键后才能关机。 适合做全屏软件的机器应用...

    键盘按键禁用(ctrl+alt+del等)及USB禁用工具(2022.05||支持win10)

    "键盘按键禁用(ctrl+alt+del等)及USB禁用工具(2022.05||支持win10)"是一款针对Windows 10操作系统设计的应用程序,它允许管理员或者用户阻止一些特定键盘快捷键的使用,以及禁用USB设备的接入。 首先,让我们...

    屏蔽键盘的win键,clrt+alt+del,alt+f4键

    在Windows操作系统中,键盘的某些特定组合键,如Win键、Ctrl+Alt+Del和Alt+F4,具有特殊的功能。例如,Win键可以打开“开始”菜单,Ctrl+Alt+Del用于启动任务管理器,而Alt+F4则常用于关闭当前窗口。在开发C# ...

    C#利用钩子屏蔽ctrl+alt+delete键盘按钮

    C#屏蔽键盘,利用HOOK钩子屏蔽键盘上的 ctrl+alt+delete组合键按钮,源码可直接编译,编译运行截图如图所示,程序在屏蔽指定按钮后可以解除屏蔽。 运行环境:Visual Studio2010

    C# Winform中监听/禁用系统快捷键(CTRL+ALT+DEL和WIN+L除外)

    在C# WinForm应用开发中,有时我们需要对用户的键盘输入进行特定的处理,例如监听或禁用某些系统级快捷键,比如CTRL+ALT+DEL和Win+L。这两个快捷键在Windows操作系统中具有特殊功能,前者是调用任务管理器,后者是...

    c#屏蔽系统热键

    namespace _0000000 ... #region 屏蔽和开启ctrl+alt+del(方法二:静态dll) …… #endregion …… #endregion #region 自定义事件 …… #endregion } } 想做系统屏蔽的亲们绝对得实用……

    C#写出的挂机锁,屏蔽任务管理器,屏蔽Alt+F4

    本文将深入探讨如何使用C#语言编写一个挂机锁,同时实现屏蔽任务管理器和禁用Alt+F4快捷键的功能。 首先,让我们了解挂机锁的基本原理。挂机锁通常是通过在应用程序中创建一个窗口,该窗口始终位于屏幕顶层并阻止...

    C#调用键盘钩子锁屏

    C#调用键盘钩子锁屏,禁用快捷键!...但是屏蔽ctrl+alt+del 任务管理器则较复杂,这个特例后面讨论。 使用全局钩子应该注意的地方:将代码放到一个独立的类库里面(只有dll才能被注射到其他进程中)。

    C#实现网吧锁屏源码--屏蔽系统热键

    以上代码展示了如何创建一个简单的锁屏窗口,并屏蔽了Alt+Ctrl+Del和Alt+Tab这两个热键。实际的实现可能需要更复杂的逻辑,例如处理多显示器、防止任务管理器启动等。 总结,通过C#编程,我们可以创建一个功能完善...

    C# Winform 实现屏蔽键盘的win和alt+F4的实现代码

    需要注意的是,虽然这种方法可以阻止大部分键盘事件,但它不能拦截Ctrl+Alt+Del组合键,因为这是Windows的安全机制,不允许被应用程序直接截取。若要完全控制用户交互,可能需要更深入的系统级编程。 总之,通过...

    C#禁用任务管理器热键

    本方法只得用于正当的系统,若用于搞破坏,请自觉承担法律责任,具体的使用方法: public Form1() { InitializeComponent(); } [DllImport(@"native.dll", EntryPoint = "FuckSysKey")] private extern static ...

Global site tag (gtag.js) - Google Analytics