如何控制不让windows系统正常关机?

crycoming 2001-03-22 12:41:00
我看到很多的程序,当它在运行时,通过开始菜单的关闭系统不能关机.
请问各位大虾,这个功能如何实现?
...全文
277 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
crycoming 2001-09-11
  • 打赏
  • 举报
回复
不相信没人会
crycoming 2001-09-10
  • 打赏
  • 举报
回复
up
为什么不能再加分?
crycoming 2001-09-03
  • 打赏
  • 举报
回复
我是要这个功能,其它的事情不考虑
chenangle 2001-08-30
  • 打赏
  • 举报
回复
那断电和关机箱电源,你怎么办??
skydg 2001-08-30
  • 打赏
  • 举报
回复
gz
crycoming 2001-08-30
  • 打赏
  • 举报
回复
可是用户还要做别的事情,好像是北京的一个财务软件就这样处理的,这样客户端的财务在生成
报表等的时候就有安全感
crycoming 2001-08-23
  • 打赏
  • 举报
回复
好像不行呀,关机是系统级的
Cance不行
这是我上CSDN的第一个问题,至今未能解决,谁来指点一下
sssa2000 2001-08-23
  • 打赏
  • 举报
回复
干脆 把 任务栏隐藏了, 把键盘的 alt+f4拦截,就关闭不了了
lanren_me 2001-08-23
  • 打赏
  • 举报
回复
gz
haor 2001-08-11
  • 打赏
  • 举报
回复
如果只是不想用户通过关机退出程序应该不用回调函数吧?
我记得只需要捕获queryunload事件并设置cancel就可以了。
crycoming 2001-07-02
  • 打赏
  • 举报
回复
up
crycoming 2001-04-11
  • 打赏
  • 举报
回复
up
crycoming 2001-03-30
  • 打赏
  • 举报
回复
大家帮帮忙吧!!!!
怎么才能返回信息控制系统呢?
QQRN 2001-03-29
  • 打赏
  • 举报
回复
guanzhu
crycoming 2001-03-28
  • 打赏
  • 举报
回复
难道真的没有人能帮我吗?????
我的分数已经全压上了!!
Jackyin 2001-03-27
  • 打赏
  • 举报
回复
关注
crycoming 2001-03-27
  • 打赏
  • 举报
回复
fzb(方圆) 同志,能否帮我完成上面的控制?
yokel 2001-03-27
  • 打赏
  • 举报
回复
关注
duke0371 2001-03-23
  • 打赏
  • 举报
回复
继续关注!
crycoming 2001-03-23
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Dim ret As Long
'记录原本的Window Procedure的位址
preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
'设定form的window Procedure到wndproc
ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf wndproc)

End Sub

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long

Public Const GWL_WNDPROC = (-4)
Public Const WM_ENDSESSION = &H16
Public Const WM_QUERYENDSESSION = &H11

Public preWinProc As Long
Private Sub Form_queryUnload(Cancel As Integer)
Dim ret As Long
'取消Message的截取,而使之又只送往原来的Window Procedure
ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)
'这里只是要看看用关机的方式结束程式时,会不会执行到这里
'********到这我不会写了,请帮帮忙*********
End Sub
我获得关闭信息后,如何返回信息让系统和我的程序都不会关闭?
加载更多回复(3)

7,763

社区成员

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

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