说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何屏蔽win2000下的ctrl+alt+del啊?

编辑:说三道四文库 发布时间:2017-12-18 07:34
HTML文档下载 WORD文档下载 PDF文档下载
现在编一个程序
目的是只让程序的界面在最前面用户不能越过此界面进入其他的任何程序或是文件夹
急用到要将ctrl+alt+del屏蔽掉啊
高手们相救啊  谢了!
我不会,但应该是用钩子。
不是屏蔽ctrl+alt+del的问题吧,

如果不做成service,你的程序能在用户没有登陆之前执行吗?

如果要屏蔽,得用hook吧
钩子程序好像是把系统的信息拦截,然后再进行处理或不处理后发运或屏蔽。
gz
Win2K/NT下屏蔽Ctrl+Alt+Del的响应

原作者Happydeer Email:deerhappy@sina.com

大家知道,Ctrl+Alt+Del是Win2k/NT操作系统默认的系统登录/注销组合键序列,系统级别很高。在应用程序中,想要屏蔽掉该键序列的响应或得到这个"按下"事件,难度是相当大的。本文介绍了一种简单易行的方法,实现在用户登录成功后,按下Ctrl+Alt+Del不再弹出"Windows安全"对话框。

一. 开发原理 

首先介绍一下Winlogon。Windows 2000/NT有三种系统状态:没有用户登录状态、用户成功登录状态以及工作站锁定状态。Winlogon是Windows 2000/NT操作系统提供交互式登录支持的组件。Winlogon有三个组成部分:可执行文件winlogon.exe,提供图形界面认证功能的动态库Gina Dll,以及一些网络服务提供动态库Network Provider Dll。参考模型如下:

winlogon.exe处理一些下层导出的接口函数,而认证策略是在Gina Dll中是独立设计的。在系统启动时,Gina Dll被winlogon.exe装载。Microsoft提供了一个默认的Gina Dll--Winnt\system32\msgina.dll,提供了标准的用户名、密码认证模式。Gina Dll是可替换的,用户可以设计自己的Gina Dll,以提供其他如智能卡、视网膜、指纹或其他一些认证机制。 


......

贴不下,给你发了个消息


应该是更改GINA.DLL,这个动态库就是处理用户的鼠标,键盘消息的函数,你可以先做一个名为GINA。DLL的动态库,然后将WINDOWS的GINA。DLL命名为GINAOLD。DLL。并将该动态库的导出函数在自己的动态库申明,然后做自己的函数处理,对于系统的调用,你的动态库将它转发到原来的GINAOLD中取,对于需要更改的消息自己处理!!!
Win2K/NT下屏蔽Ctrl+Alt+Del的响应
 
作者:陆其明 刊载于《程序员》2001.11期
 
关键词:GINA(Graphical Identification aNd Authentication) SAS(Secure Attention Sequence) 
代码下载(10.2K)

大家知道,Ctrl+Alt+Del是Win2k/NT操作系统默认的系统登录/注销组合键序列,系统级别很高。在应用程序中,想要屏蔽掉该键序列的响应或得到这个“按下”事件,难度是相当大的。本文介绍了一种简单易行的方法,实现在用户登录成功后,按下Ctrl+Alt+Del不再弹出“Windows安全”对话框。 
一.开发原理

首先介绍一下Winlogon。Windows 2000/NT有三种系统状态:没有用户登录状态、用户成功登录状态以及工作站锁定状态。Winlogon是Windows 2000/NT操作系统提供交互式登录支持的组件。Winlogon有三个组成部分:可执行文件winlogon.exe,提供图形界面认证功能的动态库Gina Dll,以及一些网络服务提供动态库Network Provider Dll。参考模型如下:

 

winlogon.exe处理一些下层导出的接口函数,而认证策略是在Gina Dll中是独立设计的。在系统启动时,Gina Dll被winlogon.exe装载。Microsoft提供了一个默认的Gina Dll--Winnt\system32\msgina.dll,提供了标准的用户名、密码认证模式。Gina Dll是可替换的,用户可以设计自己的Gina Dll,以提供其他如智能卡、视网膜、指纹或其他一些认证机制。

开发自定义的Gina Dll。必须实现并导出与winlogon.exe交互的18个标准函数接口,包括WlxNegotiate、WlxInitialize、WlxLoggedOnSAS等(其他函数接口请参考Msdn)。其中WlxNegotiate是winlogon.exe调用的第一个接口函数,进行必要的版本判断,随后调用的是WlxInitialize,主要完成winlogon.exe特定版本的函数分派表向Gina Dll的传递。笔者还要说明的是WlxLoggedOnSAS函数,这个函数主要的功能是,当winlogon在登录成功状态下,接收到SAS事件,于是调用这个函数进行SAS事件的识别以及进行各事件的相应处理。

自定义Gina Dll的使用。比如开发的Gina Dll文件名为MyGina.dll。将该文件放到以下路径:Winnt\system32。并修改注册表,如下:
Key Name: \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ Winlogon
Value Name: GinaDLL
Value Type: [REG_SZ]
Value: MyGina.dll
重新启动计算机MyGina.dll即投入使用。 

二.应用实例

应用要求:在用户登录成功状态下,按下Ctrl+Alt+Del时系统不再弹出“Widows安全”对话框。由于并不需要改变用户名、密码这种标准的认证模式,所以可以仍然使用msgina.dll中导出的函数接口,而对WlxLoggedOnSAS函数的实现进行必要的改变。


开发环境:Windows 2000,PII 400

开发工具:Microsoft Visual C++ 6.0

开发步骤:

1.新建项目,选择MFC AppWizard(dll),项目名输入为MyGina。按下“OK”后,选择Regular DLL with MFC statically linked,按下“Finish”。

2.使用View->ClassWizard为CmyGinaApp增加InitInstance和ExitInstance两个函数的覆盖。注意在Stdafx.h中加入#include <Winwlx.h>。

3.由于要导入msgina.dll的接口函数,所以在MyGina.h中定义接口函数变量类型,如下:

typedef (WINAPI * NEGOTIATE)       (DWORD,PDWORD); 

typedef (WINAPI * INITIALIZE)      (LPWSTR,HANDLE,PVOID,PVOID,PVOID *); 

typedef (WINAPI * ACTIVATE_USHELL) (PVOID,PWSTR,PWSTR,PVOID); 

typedef (WINAPI * PARAM_PVOID)     (PVOID); 

typedef (WINAPI * DISP_STATUS)     (PVOID,HDESK,DWORD,PWSTR,PWSTR); 

typedef (WINAPI * GET_STATUS)      (PVOID,DWORD *,PWSTR,DWORD); 

typedef (WINAPI * LOGON_SAS)       (PVOID,DWORD,PVOID); 

typedef (WINAPI * LOGOUT_SAS)      (PVOID,DWORD,PLUID,PSID,PDWORD, PHANDLE,WLX_MPR_NOTIFY_INFO,PVOID *); 

typedef (WINAPI * NETWORK_LOAD)    (PVOID,PWLX_MPR_NOTIFY_INFO); 

typedef (WINAPI * SCR_SAVER)       (PVOID,BOOL  *); 

typedef (WINAPI * SHUT_DOWN)       (PVOID,DWORD); 

typedef (WINAPI * START_APP)       (PVOID,PWSTR,PVOID,PWSTR); 

typedef (WINAPI * LOCKED_SAS)      (PVOID,DWORD);

并在类CmyGinaApp中定义成员变量,如下:

private: 

  HMODULE   hMsDll; 

public: 

  NEGOTIATE         MyWlxNegotiate; 

  INITIALIZE        MyWlxInitialize; 

  ACTIVATE_USHELL   MyWlxActivateUserShell; 

  PARAM_PVOID       MyWlxDisplayLockedNotice; 

  PARAM_PVOID       MyWlxDisplaySASNotice; 

  DISP_STATUS       MyWlxDisplayStatusMessage; 

  GET_STATUS        MyWlxGetStatusMessage; 

  PARAM_PVOID       MyWlxIsLockOk; 

  PARAM_PVOID       MyWlxIsLogoffOk; 

  LOGON_SAS         MyWlxLoggedOnSAS; 

  LOGOUT_SAS        MyWlxLoggedOutSAS; 

  PARAM_PVOID       MyWlxLogoff; 

  NETWORK_LOAD      MyWlxNetworkProviderLoad; 

  PARAM_PVOID       MyWlxRemoveStatusMessage; 

  SCR_SAVER         MyWlxScreenSaverNotify; 

  SHUT_DOWN         MyWlxShutdown; 

  START_APP         MyWlxStartApplication; 

  LOCKED_SAS        MyWlxWkstaLockedSAS; 

注意在MyGina.h中说明extern CMyGinaApp theApp;以便于程序其他地方对theApp的引用。

4.在MyGina.cpp中,实现InitInstance如下:

  // 得到默认的gina dll 

  if (hMsDll == NULL) 

  { 

            hMsDll = ::LoadLibrary("msgina.dll"); 

  } 

  // 导入各个接口函数 

  if (hMsDll != NULL) 

  { 

  MyWlxNegotiate = (NEGOTIATE)       GetProcAddress(hMsDll,"WlxNegotiate"); 

  MyWlxInitialize = (INITIALIZE)      GetProcAddress(hMsDll,"WlxInitialize"); 

  MyWlxActivateUserShell=(ACTIVATE_USHELL) GetProcAddress(hMsDll,"WlxActivateUserShell"); 

  MyWlxDisplayLockedNotice=(PARAM_PVOID) GetProcAddress(hMsDll,"WlxDisplayLockedNotice"); 

  MyWlxDisplaySASNotice  = (PARAM_PVOID)     GetProcAddress(hMsDll,"WlxDisplaySASNotice"); 

  MyWlxDisplayStatusMessage=(DISP_STATUS)   GetProcAddress(hMsDll,"WlxDisplayStatusMessage"); 

  MyWlxGetStatusMessage    = (GET_STATUS)      GetProcAddress(hMsDll,"WlxGetStatusMessage"); 

  MyWlxIsLockOk           = (PARAM_PVOID)     GetProcAddress(hMsDll,"WlxIsLockOk"); 

  MyWlxIsLogoffOk           = (PARAM_PVOID)     GetProcAddress(hMsDll,"WlxIsLogoffOk"); 

  MyWlxLoggedOnSAS        = (LOGON_SAS)       GetProcAddress(hMsDll,"WlxLoggedOnSAS"); 

  MyWlxLoggedOutSAS       = (LOGOUT_SAS)      GetProcAddress(hMsDll,"WlxLoggedOutSAS"); 

  MyWlxLogoff               = (PARAM_PVOID)     GetProcAddress(hMsDll,"WlxLogoff"); 

  MyWlxNetworkProviderLoad=(NETWORK_LOAD)GetProcAddress(hMsDll,"WlxNetworkProviderLoad");

  MyWlxRemoveStatusMessage=(PARAM_PVOID) GetProcAddress(hMsDll,"WlxRemoveStatusMessage"); 

  MyWlxScreenSaverNotify = (SCR_SAVER)    GetProcAddress(hMsDll,"WlxScreenSaverNotify"); 

  MyWlxShutdown             = (SHUT_DOWN)       GetProcAddress(hMsDll,"WlxShutdown"); 

  MyWlxStartApplication     = (START_APP)       GetProcAddress(hMsDll,"WlxStartApplication"); 

  MyWlxWkstaLockedSAS   = (LOCKED_SAS)     GetProcAddress(hMsDll,"WlxWkstaLockedSAS"); 

  } 

实现ExitInstance如下:

// 卸载dll

if (hMsDll != NULL)

{

        ::FreeLibrary(hMsDll);

        hMsDll = NULL;

}
收藏
:
good
2013中国云计算榜单之三:174家云应用服务商,繁花似锦! 盘点各大云服务提供商:麦当劳=AWS,汉堡王=? BlackBerry Jam亚洲开发者大会9月将在香港开幕 把服务器搬进来:Splashtop在中国搭建Bridging Cloud Web框架全对比第五期 新增Windows环境 前Tumblr首席开发者回忆录:一个人也能开发出好产品 测试者和开发者,为何我们不能友好地相处? 讲师秀之11:何刚谈京东的云机遇 讲师秀之10:武汉大学张焕国教授,可信计算是云计算之成败关键 【上海直播】Windows Azure+世纪互联:中国云计算“烈火烹油” 最新版Chrome浏览器推出全新语音搜索功能 惠普第二财季净利润同比下滑32% PC和服务器销售不佳 讲师秀之11:网易汪源的成长故事 PPT集萃(三):六位国内技术大牛分享巨型平台的打造与应用 聚焦全球移动市场:创新以色列 科技巨头的倾慕之地 Android版Chrome 27浏览器正式上架 机器人——数据中心的新“网管” George Chu:在雅虎打造真正的工程师文化 2013,303+家中国云计算企业的“生态系统”之梦! 高访问量Web应用跨云端迁移的原因:权限和易用性 Web应用开发者福音 Chrome 28新增丰富通知中心功能 帷千兰旭:推广渠道鱼龙混杂,开发者请小心 关于IE 10 你应该知道的6件事 Spring Framework 4.0M1发布,支持JDK 8、Java EE 7 “渣打科营编程马拉松赛”正式启动 官网同时上线 Android应该支持OpenCL的十大理由 传谷歌考虑和Facebook竞购众包地图Waze 谷歌工程师再次公布Windows漏洞 并称微软很难合作 Glassdoor评前景最令员工乐观的十大科技公司 华为上榜 下一代Android深度前瞻 第18级API功能揭秘 Web开发者不容错过的20段CSS代码 像Word一样的功能 CSDN的好兄弟们,求助!!!选择点击DATAGRID中的行改变Image图片的问题。 请问如何通过asp将excel表格的内容导入到oracle数据库中。100分送上,谢谢。 大家来看看这两个病毒呢w32.Randex和Backdoor.Roxy!!! 下拉菜单出错???(在线等候!--) 怎样在启动98时不让计划任务不启动? 谁偷了张飞的羽扇?(zt) C#树操作 想在客户端页面控制扫描仪,并将图象上传到服务器,up有分。 到出Excel表 打开foxpro文件时需要找索引文件,如何取消这种情况? ????????????????????csdn你凭什么改我的E-mail?????????????????? 来看看 请教回溯问题(N皇后) 紧急求救,在数据库中取已存的图片问题 请问怎么安装mysql的驱动程序和mysql++? 重分求解技术难题的解决方案 给定窗体的句柄,如何知道该窗体是否有状态栏? 请教VirtualAlloc和new的区别何在?有什么优点? 如何抓取视频流的图象!!!! WEB页怎样实现子父窗口? [总版主的立法和执法]:4、被网友投诉的处理不当的删帖、删回复三次或封杀一次,但制度中没有依据的 重分求解技术难题的解决方案 如何从代码中控制报表分页 高分请求一个怪问题, 关于C#中调用API 小弟写的一个动态生成JTree的例子, 大家帮忙看看. JDK环境变量的设置,实在难懂!!!搞定立刻给分!!在线等待 请问:用C#中的“System.Web.HttpUtility.UrlEncode(string)”编码后的字符串,在JScript用什么函数能对其进行解码?(在线) 一个权限的问题!!!急!!! 这个CG提示如何解决? 邮件群发软件哪个最好? 热键然后更改 换工作了,散分!!! 大家来看看[CSDN总版主的立法和执法],就会知道为什么水园的执法者如此猖狂了 请用这则给下面这个替换字符 局域网2000系统如何设置计算机描述(50分)? 强答题:请听好题"请问如何在可编辑的列表框中显示你想输入的字符串,而且可以输入多行?",开始! 下面两个操作,哪种效率高一些?或者还有什么更好的方法,谢谢! 简单问题,马上结账 ^在Delphi中是什么操作符? 各们兄台,小弟有急事相求,在线等~~~~~~~~~~~~~~~~~ 关于新闻发布时内容显示的问题 请教Tab Control的使用 microsoft jdbc for sqlserver2000 result 如何将指针移到首位!!在线等急!!! 谁有CVS下载?我去官方网站的下载,根本没有安装文件。 JSP中新建文件夹的问题 关于地图的问题,谁能解决啊? 怎样获取点击或按下winform上 [×]按钮时的事件 在服务器端执行一个 在客户端弹出对话框的程序? 如何不让局域网上的其他机用二级代理上网. oracle 表空间问题 火车每小时行x千米,2时行多少千米,行100千米要多少时 现有3个45°的角,2个90°的角,从中任取3个角,构成等腰三角形的概率是多少?有哪些情况也写一下吧 ate怎么读 1题怎么写 第一题怎么写 知道一个正多边形的度数如何求边数 求下图的面积:单位:CM 汽车2 时行100 千米,行1千米用多少时间? 一辆汽车2时行100千米,行千米1用多少时间? 一辆汽车2时行100千米,行1千米用多少时间 一辆大货车2时行100千米,行1千米用多少时间 美无人机干掉巴塔头目 巴怒斥其炸死和美妇人送儿子手机前“约法18章” 网古巴政府叫停私营影院 称“不是倒退”[实拍]中国新型“中华神盾舰”吊装导埃及前总统穆尔西出庭受审:从囚徒到总法两名记者在马里遇害 遗体遍布弹孔(美媒爆料日本系美监控对象 目的不仅限各国学校扎堆北京招生(图)俄罗斯严防“黑寡妇”袭击 确保冬奥会祭拜烈士墓 金正恩:“心疼得睡不着觉金正恩参谒牺牲烈士墓地 称心疼得睡不看点|冯唐:姑娘是用来做什么的?股海泛舟:A股救市之路依然漫长屡被打假,互联网创业者究竟错在哪了?首发:nubia Z9 Max高清图微软的参与感:不仅仅是Windows热点|陈奕迅:我以幽默带来快乐七把利器助你打造充满竞争力的商业模式汤圆元宵大PK,保证款款你都爱合不来就散?创业公司的拆伙原因可不是聚划算5万台魅蓝手机一分钟被抢光湖畔南山资本投资副总裁牟雪:会算账的都市之傲世魔君壹柱擎天泡妞纨绔网游之蛟阴司神厨怪医无敌拆迁工植物人星河圣典都市天行者平民宗师阿拉善盟旅游海西州旅游白哈巴村旅游宜兰旅游乌江画廊旅游平凉旅游滨州旅游五指山市旅游鲁朗旅游惠安旅游松潘旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘