微软绝密问题,不只那位高手可以解决!(100分)

  • 主题发起人 主题发起人 lonelybug
  • 开始时间 开始时间
L

lonelybug

Unregistered / Unconfirmed
GUEST, unregistred user!
我想问问,关机的时候系统发出的消息和从新启动是发出的消息分别是什麽,或者用那个函数可以得到这两个消息!谢谢了
 
发消息让它管机或重起到是简单
 
我像知道的是,他们又什麽不同!也就是说从各个方面。
还有听说用hook(钩子)可以截获然后区分!不知那位可以给个源代码~!
 
rundll.exe user.exe,exitwindows 关机
rundll.exe user.exe,exitwindowsexec 重新启动
 
amsea:谢谢,可是我要如何区分呢,这是一个外部运行的文件呀!?谢谢帮我指点一下!
 
你是不是想限制关机或者重启啊!这很简单!
关机和重启的系统信息为WM_QUERYENDSESSION。
 
在程序中你也可以调用API函数exitwindows和exitwindowsex,区别的话看看帮助就知道了
 
不是,我是想让我的程序可以区分出用户是在关闭计算机,还是在重新启动计算机,我听说可以用hook方法,可是我不会写hook,不只有没有别的方法,我准备出500分来得到答案
还有我已经在csdn上贴了1个星期,可是没有人给我答案,说是没有区别,请问这里的高手!谢谢了!
 
检测他是调用的那一个过程不就可以了。
自己想办法实现吧,动动脑筋。

求你了,千万别在问我!嘿嘿
 
CSDN里技术含量不如这里!:)
应该可以捕获消息!
还有,你可不可以举例说明一下,你知道他关机或重起后,想要达到什么样的目的!
这很重要!
 
好像在WIN98里重启和关机的信息都是WM_QUERYENDSESSION
但在WIN2000里关机的信息为WM_POWERBROADCAST
在NT系统中,通过定义iFlags可以区分系统的各种操作
如:
// EWX_REBOOT为重启
// EWX_SHUTDOWN为挂起WINDOWS系统 ;
// EWX_POWEROFF为关机
// EWX_FORCE为关闭进程

你只要根据不同信息选择即可!
 
楼上各位说得很全面
 
系统会向每一个应用程序发送:WM_QUERYENDSESSION和WM_ENDSESSION消息!
 
同意人在边缘
 
同意人在边缘
 
我也想知道,关注
 
还是不对呀,你们可能没有太明白,我想用软件来区分关机和重新启动,比如用户现在选择关机,那麽我的软件就会有一种结果,而如果用户选择重新启动,那麽又有另外一种结果!个位大虾明白了吗!?我这个问题问了1个月了(在csdn上)我想这里的水平应该比那里的高吧!
 
可不可以换角度考虑,直接截获用户在开始菜单中的选择。排列的顺序是不变的。
 
我也想过这个问题,可是我不知道如何截获呢!用什麽方法
 
最简单的方法,用Delphi
做一个程序,让它自动执行(放在注册表或AllUser的“启动”组),这样,就可以检测到开机。
启动后不要退出该程序,关闭Windows时,会触发它的OnClose事件。
呵呵,就这些。

虽然考虑的很不周到,也勉强算是实现了。
 
后退
顶部