Board logo

标题: [系统相关] 批处理怎样实现关机脚本的图形显示? [打印本页]

作者: bluewing009    时间: 2011-11-18 21:59     标题: 批处理怎样实现关机脚本的图形显示?

目的:在关机时执行指定BAT(可交互),允许界面,允许用户操作(支持选择项目,操作系统文件注册表等)
问题:最初想使用关机脚本,但是没发现其支持交互,后来想到类似于后门的拦截关机函数,但是往下就没有思路了
现在想请大家帮帮忙,实现目的(写在开头了),方法不限……能只用批处理的最好~
作者: bluewing009    时间: 2011-11-21 15:22

沉了,顶一下…………
作者: BillGates    时间: 2011-11-21 22:51

看不懂啊。
作者: bluewing009    时间: 2011-11-22 16:33

回复 3# BillGates


    就是说,想图形化执行关机脚本
作者: bluewing009    时间: 2011-11-24 07:16

顶起……不知道是不支持呢还是有些设置……
作者: bluewing009    时间: 2011-12-4 14:33

顶起~顶起~~~..
作者: cjiabing    时间: 2011-12-4 15:03

不明白,不理解,不知道
作者: bluewing009    时间: 2011-12-4 22:08

回复 7# cjiabing


   就是说  关机时自动执行a.bat
类似于关机脚本,但是关机脚本不是后台执行的么...就没有界面了~
作者: wc726842270    时间: 2011-12-5 04:18

不知是不是我理解错了,不过LZ这个想法有点判逆,关机前WINDOWS不是已经将所有的进程都结束了么?
另外在GPEDIT。MSC中也没有发现相应的,但是有注销。
以上也仅是自已的理解,如有错误请指出。多谢
作者: bluewing009    时间: 2011-12-5 08:42

回复 9# wc726842270


    有个资料比较详细:Windows关机步骤涉及到Windows多个组件和多个过程,简单的说,Windows的关机步骤不是大多数人认为的那么简单。基本的过程是这样的:
1. 用户发起关机指令以后,发起关机指令的程序会通知Windows子系统CSRSS.EXE,CSRSS.EXE收到通知以后会和Winlogon.EXE做一个数据交换,接着由Winlogon.EXE通知CSRSS.EXE开始关闭系统的流程。
2. CSRSS.EXE收到Winlogon.EXE的通知以后,会依次查询拥有顶层窗口的用户进程,让这些用户进程退出。如果某一个用户进程在一个默认的超时时间5000毫秒(可以通过修改注册表键值HKEY_CURRENT_USER\Cont rol Panel\Desktop\ HungAppTimeout设定超时时间)内没有退出的话,Windows会显示一个结束任务对话框用于询问用户是否结束这个任务。默认情况下将显示这个对话框并一直保持而不会自动关闭。对于控制台程序来说,基本情况类似,只不过Windows使用HK EY_CURRENT_USER\Control Panel\Desktop\ WaitToKillAppTimeout值来设置超时时间。
3. 接着是轮到终止系统进程了。系统进程包括SMSS.EXE、Winlogon.EXE、Lsass.EXE等。Windows在终止系统进程的时候并不像终止用户进程那样如果无法在规定时间内终止则提示用户,而是跳过这个进程,去执行下一个系统 进程的终止操作。使用的超时时间和第2步使用的时间相同。
4. Winlogon.EXE调用一个原生API函数NtShutdownSystem()来命令系统执行后面的扫尾工作。在这个阶段里面,Windows执行子系统会完成最后的关机操作,例如:设备驱动在这个阶段里面完成一些驱动设定的特殊操作; 也是在这个阶段,配置管理系统将被修改过的注册表数据会写道磁盘里面。等除了电源管理以后的全部子系统完成退出以后,电源管理完成最后的操作:如重启、关机等。

这个是我说的拦截关机函数……其实这个操作很敏感,原来有个木马的启动就是依靠这个的
我的目的就是:在关机前自动执行a.bat(前台)。
作者: wc726842270    时间: 2011-12-5 14:30

拦截函数的这个正在学习中,不过要很久,呵呵




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2