请求

lwy1982314 2003-05-13 10:49:19
请问怎样同时屏蔽ctrl,alt和del这三个键?
...全文
3 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
3661512 2003-05-13
如何让Ctrl+Alt+Del 组合键无效
按下Ctrl+Alt+Del后,不会调出Windows的结束任务对话框
你可以调用SystemParametersInfo API 函数实现这个功能,细节如下:

Const SPI_SCREENSAVERRUNNING=97

Private Declare Function SystemParametersInfo Lib "User32" Alias
"SystemParametersInfoA"(ByVal uAction as Long,ByVal uParam as Long,lpvParam as
any,ByVal fuWinIni as Long) As Long

dim pOld As Boolean

Call SystemParametersInfo(SPI_SCREENSAVERRUNNING,True,pOld,0)

如想将Ctrl+ALt+Del 的功能还原,只需将True换为False

注意:此方案只适用于Windows 9X,NT不适用

按下Ctrl+Alt+Del后,会调出Windows的结束任务对话框,但本程序不出现在其中
要想做到这一点,你必须将你的程序注册为一个Service,这将通过把你的应用程序的Process
ID传递给RegisterService API

声明部分:

将一下这些代码复制到模块的声明部分

Public Declare Function GetCurrentProcessId _

Lib "kernel32" () As Long

Public Declare Function GetCurrentProcess _

Lib "kernel32" () As Long

Public Declare Function RegisterServiceProcess _

Lib "kernel32" (ByVal dwProcessID As Long, _

ByVal dwType As Long) As Long

Public Const RSP_SIMPLE_SERVICE = 1

Public Const RSP_UNREGISTER_SERVICE = 0

过程:

调用MakeMeService使你的程序不出现在结束任务对话框中

Public Sub MakeMeService()

Dim pid As Long

Dim reserv As Long

pid = GetCurrentProcessId()

regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)

End Sub

使你的程序重新出现在结束任务对话框中,调用UnMakeMeService

Public UnMakeMeService()

Dim pid As Long

Dim reserv As Long

pid = GetCurrentProcessId()

regserv = RegisterServiceProcess(pid, _

RSP_UNREGISTER_SERVICE)

最后,不要忘了在关闭你的程序时调用UnMakeService来注销其Service来释放系统资源!
回复
ken2002p4 2003-05-13
用搜索把,一定能找到
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7491

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-05-13 10:49
社区公告
暂无公告