欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

写一个bat批处理文件启动windows进程和延时关闭的代码

程序员文章站 2022-05-14 23:54:03
前些天领导让我们在网站上投票提高他的排名,可是每人投一票才100多票。过了几天领导问我会不会做个刷票程序,提高排名,我说可以试试,研究了一天,终于做出来了,兴奋的我一晚上没...
前些天领导让我们在网站上投票提高他的排名,可是每人投一票才100多票。过了几天领导问我会不会做个刷票程序,提高排名,我说可以试试,研究了一天,终于做出来了,兴奋的我一晚上没睡着。现在拿出来分享一下。
说白了我做的其实就是个批处理文件,批处理扩展名为.bat,其实那个投票页面只是用session去控制是否投票,众所周知,session变量在ie关闭后就会自动消失,重新打开页面时又会创建一个新的连接,这就可以重复投了,这个页面是用的ajax,我找到ajax所在的js,把它的真正的投票页面找出来,把id通过页面传入,实现投票。目前要做的就是自动打开ie连接投票页,然后自动断开,自动再连,从而实现重复投票。
这个投票网站有两个致命点,一是投票不进行ip控制而用session服务端控制 ,导致可以用一个ip重复投票,二是实际投票处理页面的参数是通过get方式进行传输,这就会导致作弊的可能。
通过利用以上两个漏洞,我做也了一个bat批处理,如下:
复制代码 代码如下:

@echo off
echo 正在关闭冗余进程,请稍等......
taskkill /f /im iexplore.exe
echo -------------程序初始化完毕,请指示!----------
echo. & pause
:openie
echo 正在投票,请稍等......
start "" "c:\program files\internet explorer\iexplore.exe"
echo ie打开完成!
ping 127.0.0.1 -n 2
taskkill /f /im iexplore.exe
echo 延时2秒关闭投票完成!
goto openie

echo. & pause


关键点解释:
taskkill /f /im iexplore.exe 强制关闭ie进程,当然也可以关闭其它进程,关于进程名,可以通过任务管理器查到。
start "" "c:\program files\internet explorer\iexplore.exe" 这个是打开一个windows程序,注意路径,注意 start 后边的 "" 一定不要丢掉。
ping 127.0.0.1 -n 2 用这个是来延时的 ,大家都知道bat批处理的延时执行太麻烦,这样来的简洁一些,需要注意的是 一定要ping 本地 127.0.0.1 ,否则可能导致记时长度不同,-n 2 的意思是重复两次,太约为2秒,当然时长可调,只要调数字即可。
重点:bat批处理的无限循环。:openie 的意思是设置一个点,这个可以随意,任何字母组合都行,不要与关键词重复。 goto openie 的意思是返回 前边设置的那个点 openie ,设置的返回点前后一定要对应。

现在你可以把以上代码复制到 一个文本文档中,一定要把扩展名改为.bat ,.bat 是批处理的标准扩展名。当然98的一个很经典的程序是autoexec.bat 相信很多过来人都听说过,感兴趣的可以百度一下。当然你也可以举一返三,来开启或结束其它程序的进程。
有什么不会的可以q本人,qq号在页面底部右边,共同提高共同进步,呵呵
以下这个程序是从网上找的,可以参拷,具体知道是干什么的,有些地方还没看明白,如果你的领悟能力高的话自己研究吧!
提示:以下这个程序是监控一个进程是否存在,如果不存在则启动,如果进程丢失也启动,即让程序永远运行!
复制代码 代码如下:

@echo off
set _task=notepad.exe
set _svr=c:\windows\notepad.exe
set _des=start.bat
:checkstart
for /f "tokens=5" %%n in ('qprocess.exe ^| find "%_task%" ') do (
if %%n==%_task% (goto checkag) else goto startsvr
)
:startsvr
echo %time%
echo ********程序开始启动********
echo 程序重新启动于 %time% ,请检查系统日志 >> restart_service.txt
echo start %_svr% > %_des%
echo exit >> %_des%
start %_des%
set/p=.<nul
for /l %%i in (1 1 10) do set /p a=.<nul&ping.exe /n 2 127.0.0.1>nul
echo .
echo wscript.sleep wscript.arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000
del %_des% /q
echo ********程序启动完成********
goto checkstart

:checkag
echo %time% 程序运行正常,10秒后继续检查..
echo wscript.sleep wscript.arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000
goto checkstart