(已解决)求判断进程名长度及所在路径的代码
本帖最后由 q115643492 于 2011-4-16 15:40 编辑有个需求需实现:
有很多进程,其文件所在路径为c:\a目录,其中有几个6位数的进程名,如binju2.exe, ftu86h.exe等,这些进程名都是固定的,但唯一有一个6位数的进程名是随机的,我想判断这个随机的进程是否存在,如果存在就执行其他操作。
思路:检测当前进程,计算进程名长度,如果发现进程名长度为10 (6+4 ,4为.exe)的进程,则判断该进程文件所在目录是否为c:\a,最后需排除c:\a目录下其他的几个固定6位数的进程名。
求这样一段代码,感谢! 搜索关于 进程 正则的相关内容 论坛里都有 搜索一下,应该有吧 搜不到啊
能给我弄段代码吗 #include <WinAPIEx.au3>
Local $Dir = 'C:\a\'
Local $sEList = 'binju2.exe|ftu86h.exe'
Local $aList = ProcessList()
For $i = 1 To $aList
If StringLen($aList[$i]) = 10 Then
$tmp = StringReplace(_WinAPI_GetProcessFileName($aList[$i]), $Dir, '')
If @extended > 0 Then
If Not StringRegExp($tmp, '(?i)' & $sEList) Then MsgBox(0, '发现异形', $tmp)
EndIf
EndIf
Next 回复 5# afan
代码提示错误啊 回复 6# q115643492
什么错误提示? 回复 7# afan
应该是_WinAPI_GetProcessFileName吧.
我的WinAPIEx.au3里找不到这个函数. 官网下新版的WinAPIEx.au3呗 回复 7# afan
我找到了,WinAPIEx_3.2里面就有那个函数.
http://www.autoitscript.com/forum/topic/98712-winapiex-udf/page__hl__winapiex 本帖最后由 q115643492 于 2011-4-15 13:54 编辑
回复 7# afan
C:\Documents and Settings\azd\桌面\1.au3(8,78) : ERROR: _WinAPI_GetProcessFileName(): undefined function.
$tmp = StringReplace(_WinAPI_GetProcessFileName($aList[$i])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\azd\桌面\1.au3 - 1 error(s), 0 warning(s)
是这个错误 本帖最后由 q115643492 于 2011-4-16 15:41 编辑
已经解决。谢谢各位! afan绝对好人,呵呵
页:
[1]