请求

lwy1982314 2003-05-13 10:49:19
请问怎样同时屏蔽ctrl,alt和del这三个键?
...全文
28 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
用搜索把,一定能找到

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧