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(真正的禁用,不是修改注册表禁用,引用了别人写的DLL,不过在windows7下无效,目前好像还没有有效简单的办法禁用win7的该组合键)、禁用常用的系统组合键(用全局钩子),...
在IT领域,"CTRL+ALT+DEL"是一个特殊键组合,通常用于在Windows操作系统中启动任务管理器或安全登录。这个键组合具有重要的系统级功能,但有时在特定环境中,如公共场所的计算机或企业的终端机,可能需要屏蔽或替换...
下面我们将详细探讨如何禁用Ctrl+Alt+Del以及相关的技术知识。 禁用Ctrl+Alt+Del的一种常见方法是通过注册表编辑或者使用系统API。这里我们主要关注通过编程方式实现,特别是基于Windows API的方法。两个文件名...
在给定的标题和描述中,我们讨论的是如何在C#应用程序中实现禁用Ctrl+Alt+Delete功能,并且解决方案是通过VC++编写一个动态链接库(DLL)来实现。 首先,我们需要理解为什么C#本身不能直接处理这个问题。C#作为.NET...
【C# 键盘钩子例子 可屏蔽Ctrl+Alt+Delete】 在Windows操作系统中,开发者有时需要对用户的键盘输入进行特殊处理,例如在某些安全软件或者特定应用中,为了防止用户通过`Ctrl+Alt+Delete`组合键退出程序或唤起任务...
通过以上步骤,你可以使用C#编写一个控制类软件,在Windows 10和Windows 7上屏蔽Ctrl+Alt+Delete键。在BanCAD这个项目中,可能已经包含了实现这一功能的源代码和相关资源。解压BanCAD文件后,可以学习和理解其中的...
标题“禁用Ctrl+Alt+Del.e”暗示了一个与操作系统安全和登录过程相关的主题,特别是涉及到禁用标准的Ctrl+Alt+Del组合键,这个组合键通常用于启动任务管理器、锁定计算机或进行用户登录。在Windows系统中,这是一个...
标题 "屏蔽ctrl+alt+del的源代码(VB6)" 涉及到的是一个VB6(Visual Basic 6)编程项目,其主要目的是阻止用户通过标准的Ctrl+Alt+Del组合键来启动任务管理器或其他系统级操作。这个功能在某些特定的应用场景下可能...
在Windows XP系统中,Ctrl+Alt+Del、Alt+Tab以及Ctrl+Esc是三个非常重要的键盘组合键,它们各自有着特定的功能。Ctrl+Alt+Del通常用于启动任务管理器,Alt+Tab则用于在打开的应用程序之间切换,而Ctrl+Esc则相当于...
但是这个禁用有个缺点,就是禁用CtrlAltDel组合键后,会出现无法登录,无法关机,无法重启等情况。因此必须等到系统起来后再执行禁用这个组合键,在关机之前要先允许组合键后才能关机。 适合做全屏软件的机器应用...
"键盘按键禁用(ctrl+alt+del等)及USB禁用工具(2022.05||支持win10)"是一款针对Windows 10操作系统设计的应用程序,它允许管理员或者用户阻止一些特定键盘快捷键的使用,以及禁用USB设备的接入。 首先,让我们...
在Windows操作系统中,键盘的某些特定组合键,如Win键、Ctrl+Alt+Del和Alt+F4,具有特殊的功能。例如,Win键可以打开“开始”菜单,Ctrl+Alt+Del用于启动任务管理器,而Alt+F4则常用于关闭当前窗口。在开发C# ...
C#屏蔽键盘,利用HOOK钩子屏蔽键盘上的 ctrl+alt+delete组合键按钮,源码可直接编译,编译运行截图如图所示,程序在屏蔽指定按钮后可以解除屏蔽。 运行环境:Visual Studio2010
在C# WinForm应用开发中,有时我们需要对用户的键盘输入进行特定的处理,例如监听或禁用某些系统级快捷键,比如CTRL+ALT+DEL和Win+L。这两个快捷键在Windows操作系统中具有特殊功能,前者是调用任务管理器,后者是...
namespace _0000000 ... #region 屏蔽和开启ctrl+alt+del(方法二:静态dll) …… #endregion …… #endregion #region 自定义事件 …… #endregion } } 想做系统屏蔽的亲们绝对得实用……
本文将深入探讨如何使用C#语言编写一个挂机锁,同时实现屏蔽任务管理器和禁用Alt+F4快捷键的功能。 首先,让我们了解挂机锁的基本原理。挂机锁通常是通过在应用程序中创建一个窗口,该窗口始终位于屏幕顶层并阻止...
C#调用键盘钩子锁屏,禁用快捷键!...但是屏蔽ctrl+alt+del 任务管理器则较复杂,这个特例后面讨论。 使用全局钩子应该注意的地方:将代码放到一个独立的类库里面(只有dll才能被注射到其他进程中)。
以上代码展示了如何创建一个简单的锁屏窗口,并屏蔽了Alt+Ctrl+Del和Alt+Tab这两个热键。实际的实现可能需要更复杂的逻辑,例如处理多显示器、防止任务管理器启动等。 总结,通过C#编程,我们可以创建一个功能完善...
需要注意的是,虽然这种方法可以阻止大部分键盘事件,但它不能拦截Ctrl+Alt+Del组合键,因为这是Windows的安全机制,不允许被应用程序直接截取。若要完全控制用户交互,可能需要更深入的系统级编程。 总之,通过...
本方法只得用于正当的系统,若用于搞破坏,请自觉承担法律责任,具体的使用方法: public Form1() { InitializeComponent(); } [DllImport(@"native.dll", EntryPoint = "FuckSysKey")] private extern static ...