找回密码
 加入
搜索
查看: 4957|回复: 19

请帮忙修改一个进程获取的代码

[复制链接]
发表于 2009-10-26 08:53:20 | 显示全部楼层 |阅读模式
#NoTrayIcon
#include <File.au3>
Global $File = 'c:\' & @ComputerName & '.txt'
_Proc2File($File)
Func _Proc2File($File)
        _FileCreate($File)
        Local $aProcList = ProcessList()
        For $i = 1 To $aProcList[0][0]
                If $aProcList[$i][0] <> @ScriptName Then
                        FileWriteLine($File, $aProcList[$i][0])
                EndIf
        Next
EndFunc   ;==>_Proc2File



这段代码是获取本机的进程并存放到指定的目录下并且以机器名命名存放文档的代码,有一个缺点,就是每次存放都会刷新一次记录文档而不是更新,有没有办法让他像批处理的“>>”命令一样,添加新的进程信息到文档呢?

如果可以的话我希望更深的改造,我希望可以判断文档中是否已经存在该进程,如果存在则不添加,也就是说不重复添加进程
比方说进程中已经有一个QQ.exe进程了,那么则忽略新获取到的qq.exe添加其他的进程

也可以在代码中添加某一条命令,或者是加一个配置文件,在配置文件中添加不被保存到文档的进程名

我是菜鸟一个,有人能帮帮我吗?不胜感激。
发表于 2009-10-26 11:28:36 | 显示全部楼层
FileWriteLine($File, $aProcList[$i][0])

这句改用

$file = FileOpen("test.txt", 1)
FileWrite($file, "Line2")
FileClose($file)
 楼主| 发表于 2009-10-26 11:32:35 | 显示全部楼层
濂界殑锛岄潪甯告劅璋?紝鎴戝疄楠屼竴涓嬪晩
 楼主| 发表于 2009-10-26 11:36:22 | 显示全部楼层
本帖最后由 qq8955333 于 2009-10-26 11:38 编辑

我问一下,改了以后运行并没有获取进程啊,只是在程序目录下生成了一个"test.txt",指定保存进程信息的目录下生成了"机器名.txt"是不是我什么地方弄错了啊?
发表于 2009-10-26 11:37:57 | 显示全部楼层
我怎么见着楼上的是乱码?
发表于 2009-10-26 11:43:25 | 显示全部楼层
#NoTrayIcon
#include <File.au3>
Global $File = 'c:\' & @ComputerName & '.txt'
_Proc2File($File)
Func _Proc2File($File)
        _FileCreate($File)
        Local $aProcList = ProcessList()
        For $i = 1 To $aProcList[0][0]
                If $aProcList[$i][0] <> @ScriptName Then
$file = FileOpen($File, 1)
FileWrite($file, $aProcList[$i][0])
FileClose($file)
                EndIf
        Next
EndFunc   ;==>_Proc2File
发表于 2009-10-26 11:43:40 | 显示全部楼层
帖个完整的代码给你
 楼主| 发表于 2009-10-26 11:44:17 | 显示全部楼层
恩,是的,乱码的地方忽略一下,我浏览器的问题
 楼主| 发表于 2009-10-26 11:44:49 | 显示全部楼层
帖个完整的代码给你
破帽遮颜 发表于 2009-10-26 11:43



恩,太感谢了,我等着,呵呵
 楼主| 发表于 2009-10-26 11:56:46 | 显示全部楼层
#NoTrayIcon
#include
Global $File = 'c:\' & @ComputerName & '.txt'
_Proc2File($File)
Func _Proc2File($File)
        _FileCreate($File)
        Local $aProcList = ProcessList()
        For $i = ...
破帽遮颜 发表于 2009-10-26 11:43




还是不行啊,用了这个代码以后在指定保存进程信息的文本里面只有[System Process]这一个

然后程序目录下运行了一个没有扩展名的“1”用记事本打开以后里面是进程,没有格式的进程信息,而且重复,能不能帮忙再改进一些呢,非常感谢


下面是进程信息
Systemsmss.execsrss.exewinlogon.exeservices.exelsass.exesvchost.exesvchost.exeRavMonD.exesvchost.exeexplorer.exeVM_STI.EXERsTray.exectfmon.exedaemon.exesvchost.exeRadmin.exeQQ.exeTXPlatform.exeUTGame.exeTXOPShow.execonime.exefirefox.exeWow.exeSystemsmss.execsrss.exewinlogon.exeservices.exelsass.exesvchost.exesvchost.exeRavMonD.exesvchost.exeexplorer.exeVM_STI.EXERsTray.exectfmon.exedaemon.exesvchost.exeRadmin.exeQQ.exeTXPlatform.exeUTGame.exeTXOPShow.execonime.exefirefox.exeWow.exewinbox.exe
发表于 2009-10-26 13:30:39 | 显示全部楼层
本帖最后由 netegg 于 2009-10-26 13:33 编辑

这么做干什么
local $Proc = ProcessList(), $file = FileOpen("c:\1.txt", 1)
for $i =  1 to $Proc[0][0]
    Filewriteline($file, $Proc[$i][0] & "     " & $Proc[$i][1] & @CRLF)
next
 楼主| 发表于 2009-10-26 13:38:06 | 显示全部楼层
这么做干什么
local $Proc = ProcessList(), $file = FileOpen("c:\1.txt", 1)
for $i =  1 to $Proc[0][0]
    Filewriteline($file, $Proc[$i][0] & "     " & $Proc[$i][1] & @CRLF)
next
netegg 发表于 2009-10-26 13:30


代码不是我写的,我不会写,我这也是求别人帮写的,你懂吗?帮忙改进改进好吗
发表于 2009-10-26 13:56:02 | 显示全部楼层
本帖最后由 wisly 于 2009-10-26 14:01 编辑

搞不来啊,怎么才能让贴上去的code保持语法高亮和缩进格式啊?
#NoTrayIcon
#include <File.au3>
#include <Array.au3>
Global $File = 'c:\' & @ComputerName & '.txt'
_Proc2File($File)
Func _Proc2File($filename)
        Local $aProcList = ProcessList()
        Dim $aNameList[$aProcList[0][0] + 1]
        $aNameList[0] = $aProcList[0][0]
        For $i = 1 to $aNameList[0]
                $aNameList[$i] = $aProcList[$i][0]
        Next
        Dim $aOProcList
        If Not _FileReadToArray($filename, $aOProcList) Then
                $aOProcList = $aNameList
        Else
                _ArrayConcatenate($aOProcList, $aNameList)
        EndIf
        $aOProcList = _ArrayUnique($aOProcList)
        _ArrayDelete($aOProcList,@ScriptName)
        _FileWriteFromArray($filename, $aOProcList, 1)
EndFunc   ;==>_Proc2File
 楼主| 发表于 2009-10-26 14:00:16 | 显示全部楼层
楼上,你的代码我复制完了编译的时候显示错误,错误如下,帮忙看下

???? local $aproclist = processlist()
^ error
error: 不能解析行
 楼主| 发表于 2009-10-26 14:02:24 | 显示全部楼层
要不你用文本或者是源码然后发到我信箱里我试试好不好?
我信箱是8955333@qq.com
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-26 14:24 , Processed in 0.085153 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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