找回密码
 加入
搜索
查看: 16827|回复: 43

对窗口进程进行监控的代码

[复制链接]
发表于 2008-5-3 14:20:05 | 显示全部楼层 |阅读模式
<span style="color: #008000">设置脚本在遇到严重错误时是否自动终止1=致命错误, 0=静默错文字误,设置 @error<br />;(此命令说明发生错误时不中止程序运行)<br /></span>Opt(&quot;RunErrorsFatal&quot;, 0)<br /><span style="color: #008000">;更改窗口函数在执行搜索操作时的标题匹配模式。</span><br /><span style="color: #008000">;1=只匹配标题的前面部分(默认), 2=标题的任意子串皆可匹配,3=完全匹配标题, </span><br /><span style="color: #008000">;(此命令说明查找关键字时,只要有一个匹配时,就生效)</span><br />Opt(&quot;WinTitleMatchMode&quot;, 2)<br /><span style="color: #008000">;隐藏 AutoIt 托盘图标。注意:托盘图标仍会在程序刚运行时出现大约 750 毫秒。</span><br /><span style="color: #008000">;0 = 显示托盘图标(默认),1 = 隐藏托盘图标</span><br /><span style="color: #008000">;(此命令说明程序运行时托盘上的图标不会显示)</span><br />Opt(&quot;TrayIconHide&quot;, 1)<br /><span style="color: #008000">;设置一个可调用某用户函数的热键。<br /></span><span style="color: #008000">;(此命令为按下f12程序退出)</span><br />HotkeySet(&quot;!^&#123;F12&#125;&quot;, &quot;exit_0&quot;);<br /><span style="color: #008000">;定义配置文件sysfile.ini中的窗口标题$inikey=&quot;windows&quot;</span><br />While 1<br /><span style="color: #008000">;等待80毫秒</span><br />Sleep(80)<br /><span style="color: #008000">;IniReadSection从某标准配置文件(*.ini)中读取某个节中的所有关键词或值。</span><br /><span style="color: #008000">;@scriptdir当前运行中的脚本所在的目录</span><br /><span style="color: #008000">;此命令表示从当前程序所在目录读取sysfile.ini文件中的windows的值</span><br />$var = IniReadSection(@ScriptDir&amp;&quot;&#92;sysfile.ini&quot;, $inikey)<br /><span style="color: #008000">;如果找不到窗口windows的值.就输出no ini file,程序将退出</span><br />If @error Then <br />MsgBox(4096, &quot;&quot;, &quot;no INI file.&quot;)<br />Exit<br /><span style="color: #008000">;如果找到窗口windows的值,就关闭该窗口</span><br />Else<br />For $i = 1 To $var[0][]<br />&nbsp; If $inikey=&quot;windows&quot; Then<br /><span style="color: #008000">;如果目标窗口确实存在,就关闭这个窗口</span><br />&nbsp; If WinExists($var[$i][0]) then WinClose($var[$i][0])<br /><span style="color: #008000">;配置文件中的proc项</span><br />&nbsp; ElseIf $inikey=&quot;proc&quot; Then<br /><span style="color: #008000">;读取proc中的进程名,如果存在,就关闭</span><br />&nbsp; If ProcessExists($var[$i][0]) Then ProcessClose($var[$i][0])<br /><span style="color: #008000">;读取proc中的进程名</span><br />&nbsp; ElseIf $inikey=&quot;lock&quot; Then <br /><span style="color: #008000">;如果没有找到这个进程名,就运行该进程</span><br />&nbsp; If Not ProcessExists($var[$i][0]) Then <br /><span style="color: #008000">;运行该进程@SW_HIDE = 隐藏窗口</span><br />&nbsp; Run($var[$i][1],&quot;&quot;,@SW_HIDE)<br /><span style="color: #008000">;如果windows下不能运行这程序,使用运行 DOS(控制台)命令:comspec</span><br />&nbsp; If @error Then Run(@ComSpec &amp; &quot; /c &quot; &amp; $var[$i][1], &quot;&quot;, @SW_HIDE)<br />&nbsp; EndIf <br />&nbsp; EndIf <br />Next<br />EndIf<br /><span style="color: #008000">;如果顺利执行$inikey=&quot;windows&quot;,就执行$inikey=&quot;proc&quot;</span><br />If $inikey=&quot;windows&quot; Then <br />$inikey=&quot;proc&quot;<br /><span style="color: #008000">;重新开始循环</span><br />ContinueLoop<br />ElseIf $inikey=&quot;proc&quot; Then<br />$inikey=&quot;lock&quot;<br /><span style="color: #008000">;重新开始循环</span><br />ContinueLoop <br />ElseIf $inikey=&quot;lock&quot; Then <br />$inikey=&quot;windows&quot;<br /> EndIf<br /><span style="color: #008000">;和上面的winle 1配合,如果中间的过程为真,那么就一直重复执行循环<br /></span>WEnd<br /><span style="color: #008000">;按下f12就退出程序Func exit_0()</span><br />exit<br />EndFunc<br /><br /><br /><br />sysfile.ini &nbsp; :<br /><br />[windows]<br />Dow=这填上说明<br />[proc]<br />BitComet.exe=BT下载工具<br />[lock]<br />qq.exe=C:&#92;qq2006&#92;QQ.exe<br /><br /><br /><br />windows: 是需要查杀的窗口名称,可以输入窗口名称的一部份<br /><br />proc: 是需要查杀的进程名称,这个必须要完整名称<br /><br /><br />lock &nbsp; 是用来防止进程中断用的,当发现左边进程不存在时就会运行右边的exe文件,, &nbsp; 左边是进程名称 右边是进程详细资料<br />
发表于 2008-12-15 12:44:54 | 显示全部楼层
不错的东西~~~!!!!
发表于 2009-5-3 15:00:16 | 显示全部楼层
发表于 2009-5-3 15:00:19 | 显示全部楼层
发表于 2009-5-3 15:00:27 | 显示全部楼层
发表于 2009-5-3 15:00:39 | 显示全部楼层
发表于 2009-5-27 15:05:26 | 显示全部楼层
很全面啊……
发表于 2009-6-2 21:55:05 | 显示全部楼层
很好,谢谢了.
发表于 2009-11-27 17:43:02 | 显示全部楼层
好强大 学习学习。会批处理的进程监控。学习下AU3怎么写
发表于 2009-11-28 16:31:11 | 显示全部楼层
不错不错
楼主有心了
发表于 2009-11-30 13:50:53 | 显示全部楼层
发表于 2009-12-30 10:11:04 | 显示全部楼层
非常详细。。对新手很有帮助谢谢
发表于 2010-1-10 10:40:07 | 显示全部楼层
不错不错
楼主有心了
发表于 2010-1-21 02:14:32 | 显示全部楼层
进来学习了。
发表于 2010-3-13 22:59:24 | 显示全部楼层
新人,学习中
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-3-29 14:10 , Processed in 0.084800 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表