主题:[讨论]高手请进:WINDOWS下面关机,重启程序
perisun
[专家分:30] 发布于 2008-09-06 13:21:00
请教高手:
我希望用汇编写一个程序,使之能在OS下实现shutdown和reset,或在DOS下面实现也可.编辑器是ML615.
大家讨论.
回复列表 (共3个回复)
沙发
cnhanxiao [专家分:450] 发布于 2008-09-19 02:52:00
需要的话请留言,完全汇编下用Win32实现。
板凳
cnhanxiao [专家分:450] 发布于 2008-09-19 11:31:00
_Shutdown proc
local @hToken, @hCurrentProcess, @tkp:TOKEN_PRIVILEGES
invoke GetCurrentProcess
mov @hCurrentProcess,eax
invoke OpenProcessToken, @hCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,addr @hToken
invoke LookupPrivilegeValue,NULL,addr szSE_SHUTDOWN_NAME,addr @tkp.Privileges[0].Luid
mov @tkp.PrivilegeCount,1
mov @tkp.Privileges[0].Attributes,SE_PRIVILEGE_ENABLED
invoke AdjustTokenPrivileges, @hToken,FALSE,addr @tkp,NULL,NULL,NULL
invoke ExitWindowsEx,EWX_SHUTDOWN or EWX_POWEROFF,NULL
ret
_Shutdown endp
我写的关机程序,修改“invoke ExitWindowsEx,EWX_SHUTDOWN or EWX_POWEROFF,NULL”一句里的参数,就可以关机后重启了,抱歉不想查了:)
3 楼
cnhanxiao [专家分:450] 发布于 2008-09-19 12:05:00
这是Windows下关机子程序,别以为关机很容易:)
“EWX_SHUTDOWN or EWX_POWEROFF” 你查查资料,修改一下就能关机后重启了。不能什么都替你做了,呵呵。
其实很痛苦着把自己辛辛苦苦弄出的东东无私奉献了
我来回复