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

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

编辑:说三道四文库 发布时间:2017-10-19 08:58
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
企业移动应用与BYOD:移动互联大势所趋 “首届智能硬件峰会”上午会议亮点汇总 代价究竟高不高,苹果为什么要在Android专利诉讼上花费2亿美元? 产品与设计专题论坛(下):App之美 产品与设计专题论坛(上):扁平还是拟物?产品说了算! 首届移动娱乐游戏峰会:中外手游的交锋与对抗(下) 研发人员超过500,基金会金牌会员,华为豪赌OpenStack New way of thinking:索尼SmartWatch 2应用开发马拉松大赛圆满结束 离了你地球照样转,谷歌地图并非苹果的必需品 面试必备的9大成功秘诀 Chuck Goldman:乔布斯从来不会说苹果不是企业应用的公司 全球最大的图片社交分享网站Pinterest发布首个API UX设计程序的五个谬论 研发周报:2013年美国开发者薪资调查报告 【开源推荐】PredictionIO:构建预测功能的机器学习服务器 只需4步 百度SiteApp助力京华网移动版落地 Windows Azure开放公测5个月的收获 RDS添加PostgreSQL支持 几家欢喜几家忧 首届智能硬件峰会:解读硬件创业机遇与挑战(下) 平台与技术专题论坛(二):游戏开发实践分享及IE11新体验 看Twitter上市后的入职面试题 六届中国大数据技术大会PPT精粹(三) AMD推多款异构计算开发工具 着力打造APU软件生态系统 Ceylon 1.0发布:又一个“Java语言替代品”? HTML5开发工具:英特尔XDK New 苹果公司为何“情系”PrimeSense 微App专场:不同平台下微App开发运营那些事 25载工程经验,HBase七年——BDTC2013讲师Michael Stack 或许对你创业有所启示:10个英国快速增长的科技创业公司 小米游戏中心10月报告:分析各种手游活动之优劣 欢网王智勇:传统电视厂商须补互联网基因 透露与百度合作细节 oracle 8.1.7安装界面的中文无法显示,请各位帮忙! 谁有上传图片及上传信息连在一块的程序,重谢,急! 请问PPT格式的文件用什么阅读~? 谢谢 Excel的密码忘了怎么办???? 哪里有samba下载,要可以在RedHat7.2上安装的 about站点连接问题 一动鼠标,程序死掉,这是怎么回事 (转贴)有关中国J-XX的准确信息全文翻译 #100分#,关于将汉字转为语音? 如何获取NAT转换表 急急急急急急急急急急急急急急急急急 websnap如何控制数据表或查询的打开或关闭 索求中英译文,毕业论文急用! 哪里有samba下载,要可以在RedHat7.2上安装的 请教 ? 关于ado连接的问题。。。急啊~~~ Datalist里的Lebel怎样动态改变Text的值? Windows98底下的UNIX仿真软件 紧急求助(调用winrar的dll或ocx的问题?)!!!!!!!] 再回首 象jbuilder那样的集成开发环境中,对可视话控件的托拽式(所见即所得)的操作是如何做的 关于WSAD开发工具(up有分) 我是flash超级菜鸟 一个api的问题,急急急,在线等待。完成后即给分。关于api继承宏的问题。 求你们了,给非处一条活路吧…… 郁闷! 语句性能分析的问题,请教高手! 有没有人装过微软的petstore?我安装的时候遇到安全性错误 *****伊茗的问题:如何让程序运行时先显示的是Form2而不是Form1 如何保存控件里的内容? 怎样生成随机数 谁有<<数据库系统开发实例导航—vb6>>电子版 有没有替代DATAGRID控件的表格控件? 动态改变iframe的src值和大小,如何做? 显示器图像抖晃,请各位大侠帮忙! 请用实例说明this怎么用。。。。谢谢。。。 vb开发的程序怎样用 Setup Factory 6.0 打包(给出具体的步骤)20分 fragroute之浅显研究(1) 紧急求助!(文本文档在网页中的对齐) 求救:请问网上发传真可以省掉恐怖的传真费吗? 急急急急急急急急急急急急急!!!!!! 关于VC中使用ADO进行事务处理BeginTrans()的问题,很奇怪。(内有代码,非常疑惑!求助) 电影快下呀 请问如何将文件删除到回收站? 傻傻猫是男的女的?长得怎样啊? fragroute之浅显研究(2) 如何做成下面图示的样子呢? 请问如何让UDP的SOCKET监听? win2000 Teminal 注册表里面的内容怎么更改之后重新启动又恢复原样了???? 请问我该怎么办? 英语统考练习题All flights __ because of the snowstorm,we could do nothing but __ the train.A.had been cancelled/to take B.have been cancelled/take C.were cancelled/to take D.having been cancelled/take 英语翻译不要任何用翻译机搞出来的!这个是ROOT教程,求英语厉害的大神翻译一下里面的操作步骤!跪谢! 灰色人生的灰色是什么意思 有关机械能的选择题质量不同的两物体从同一高度同时自由下落(不计空气阻力),以地面为参考平面,则落地前( )A.同一时刻,质量大者动能一定大 B.同一时刻,质量大者重力势能一定大C.同 电气图中WLM是什么意思? 我国为什么要坚持劳动者自主择业市场调理就业政府促进就业的方针 请将intel celeron willamette processor翻译成中文 怎么计算的. 劳动者自主择业,市场调节就业,政府促进就业的方针,体现了什么哲学道理 翻成中文怎么翻 填写修饰语(珍珠鸟、斑羚、华南虎的噢~!)珍珠鸟:( )的小红嘴 ( )的绒毛 斑羚: ( )的毛色 ( )的角 ( )的长腿 ( )的跳跃技艺 华南虎:( )的面孔 ( )的眼睛 ( )的尾 为什么开国大典有许多和数字有关的故事,比如54门礼炮? 草木皆兵和风声鹤唳两个成语的来历 、 英语翻译When a set of results has a range that is greater than the random uncertainty in the readings,then the error can be estimated to be ± half the spread of the averaged values.This value will take the place of the random uncertainty of the 电烙铁防静电.普通的电烙铁想在金属外壳上接个导线,连接瓷砖,请问这样能防止静电吗? 怎么证明三角形外接圆圆心到三个顶点距离和最短 列出具体计算步骤 乌字右边是立刀旁 这个字怎么念?求大神帮助 英文商标名叫folding,中文名叫什么好?音译 消防电图纸里面的-T-跟-B-分别都是什么啊消防电的图纸里面有图标 -T- 和 -B- 这两个分别都是什么啊 静电导体 是什么 为什么选D不选B呢, 求解释、大一高数.新生 本人爱玩蛮王,出装为狂战鞋,电刀,红叉,无尽,饮血.一般可以,求大神指点! 我去年买了了表, 初四题 填空 边长为a的三角形外接圆半径( ),圆心到边的距离为( ). 大一的高等数学都学哪些内容?比如我大一学一年高数,是不是不进反退啊.是学一年高数后回过头考高中数学会怎样。 关于物理电势的问题 高二奥赛如下图.边长为a的正方形由四根均匀带电但彼此绝缘的带电棒构成.若他们在正方形中心O点产生的电势为U1,在P点(P点与O点关于CD对称)产生的电势为U2.若撤去AB, 2,输入5个不同的单词,将其存放在二维字符数组中,每行存放一个单词.利用选择法按字典顺序对英文单词进行排序,最后输出结果. 红嘴小鸟 (现有一个物体置于匀强电场中),匀强电场方向水平向左,带正电的物体沿绝缘的水平版向右做匀变速运动,经A点时,动能为100J,到B点时动能减少了80J,电势能增加了48J.当物体再次回到A点时动 C语言以下这题选什么?为什么?设函数fun的定义形式为void fun(char ch,float x) { … }则以下对函数fun 的调用语句中,正确的是( ).A)fun("abc",3.0); B)t=fun(‘D’,16.5); C)fun(‘65’,2.8); D)fun(32,32); 有谁知道“我歪腻你”是什么意思 重点解释“歪腻”的意思.急. 德语 Was kostet das Paket schicken nach C德语 Was kostet das Paket schicken nach China?这么说对吗? 各位英语达人,小弟遇到一个句子,百思而不得其解,望各位帮忙翻译并分析句子结构The trickled ethylene gas process of tomato ripening consists of exposing the tomatoes to a low concentration of ethylene gas under controlled 母珍珠鸟啄公珍珠鸟的毛 知恩图报饮水思源是什么生肖 请计算机C语言高手帮我解答以下三个题目,1.若变量i和j已经定义为int类型,则以下程序段中内循环体的总的执行次数是( A ).for (i=5;i;i--)for(j=0;j 珍珠鸟掉毛了5根毛怎么办? 如何让太阳从西边升起? 生为名臣,死为上鬼,垂光百世,照耀简策,斯为美也 的翻译是什么 求10则历史小故事加强爱国主义教育:预习八下历史书,搜集有关这一时期的历史小故事10则(如:鸦片战争时期,抗日战争时期) 求X的演算过程越详细越好,麻烦用草稿纸写出来让我看看 英语翻译 这道题隐函数求导怎么写?画红线的这一步怎么出来的? 假设牙膏是一个长为15厘米长的圆柱体,它的开口直径为0.6厘米.一个人一天用两次牙膏,一次挤出1厘米长,这支牙膏能用多少天? 求:文言文翻译 松之生也,于岩之侧.流俗不顾……谅可用而不用,固斯焉而取斯 珍珠鸟像涂了蜡的小嘴,啄我的笔尖这句话用什么修辞方法 家蚕为什么是节肢动物?说明理由就行了,以生物学的角度. 你喜欢干什么的翻译求大神帮助 冷眼看缤纷世界,热心度灰色人生是什么意思?冷眼看缤纷世界,热心度灰色人生,横眉对趋炎附势,从容应云卷云舒全局是什么意思 请问rain是什么意思啊,在书上看到的! 《上个星期在干什么》英语和翻译大神们帮帮忙 “这样,它完全放心了,索性用那涂了蜡似的小红嘴,‘嗒嗒’啄着我颤动的笔尖”的这样指的是什么我从这句话中体会到什么 有太阳从西边升起的地方吗?有没有太阳从西边升起的地方?为什么? 向量a的模=1,向量b的模=1.<a,b>=120'.计算向量2a-b在向量a+b方向上的投影.([a]表示向量a的模;a*b表示向量a和向量b的积…) “这样,它完全放心了,索性用那涂了蜡似的小红嘴,‘嗒嗒’啄着我颤动的笔尖”.我从这句话体会到什么? 类似于天行有常,不为尧存不为桀亡的句子 英语翻译 它索用那涂了蜡似的小红嘴,”嗒嗒”啄着我颤动的笔尖.(这是比喻句)用“v"或”x”回答. 韩媒:中国雾霾为“人类历史上最严重污美妇人送儿子手机前“约法18章” 网智利副总统候选人 抱娃上街拉选票(图首份中日韩常用汉字表编制完成 808朝一海军舰艇沉没 金正恩祭拜烈士墓(杭州46岁单身妈妈为儿子过得更好想重俄加强防范“黑寡妇”袭击日本能把俄罗斯“撬走”吗缅甸穆斯林赴邻国避难遇海难 或死伤惨本周四立冬秋天将继续 杭州日后或常雾西湖申遗成功两年多 调研发现景区交通日本未从日俄会谈获实质成果 牵制中国英国男子患怪病 身体变形困家中韩俄峰会拟发涉朝声明俄强化防范“黑寡妇”袭击韩国防长承诺整顿网军国资委:地方国企效益下滑 一些地方仍美妇人送儿子手机前“约法18章” 网六大问题威胁食品安全 可追溯体系不完罗德曼“推销”朝鲜篮球队为朝鲜筹钱英15岁少年欲滑雪闯南极“霓虹灯下的哨兵”如何成长为战场“铁围绕关键点推进司法体制改革发票金额小数点错位牵出腐败窝案湖北二十八条措施为民警定规立矩制度治党成为管住权力有效机制卡在钱“飞”谁之过河南法院家事法庭合议庭全覆盖地方频道违规总站负主体责任打造专业化检察干警队伍新车屡被假合格证抢先注册天津651名驾驶人被终身禁驾NBA 猛龙加时胜热火 总比分1 1香港法律界人士发表声明反“港独”外交部官员阐述不接受不参与南海仲裁案坚定理想信念永葆忠诚本色永远把党和人重大事故隐患督办制度拟建立中国将不接受不承认南海仲裁案裁决开放“美猪肉进口”在岛内引发风波青年交流为两岸发展注入新动力用有限生命去做无限的事产能过剩项目不安排用地
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘