mwyf4513 发表于 2011-8-5 10:49:14

怎么用autoit查找电脑中是否有某个程序并获取路径

怎么用autoit查找电脑中是否有某个程序并获取路径

lainline 发表于 2011-8-5 12:02:44

如果是正常程序你安装一下并用注册表比较工具或监视工具比较一下就知道了

qqgghh1 发表于 2011-8-5 12:47:14

是全盘搜索还是指定文件夹搜索呢,论坛搜素中输入关键字“搜素”,一大堆。

mwyf4513 发表于 2011-8-5 14:28:47

回复 3# qqgghh1


    例如qq这个程序绝大部分人有装,怎么知道在他人电脑中qq的绝对路径

cxlater 发表于 2011-8-5 16:28:37

一般的程序安装之后会在注册表留下安装的目录

netegg 发表于 2011-8-5 18:09:55

全盘搜索?没有其他信息的话

huaisha1224 发表于 2011-8-5 19:18:33

不知道能不能用tasklist 先列出所有的进程然后在搜索相应的进程名

acbs 发表于 2011-8-5 21:04:16

笨办法就是全盘搜索,问题是这样太慢了吧

mwyf4513 发表于 2011-8-5 22:14:06

回复 8# acbs


    或者知道已经运行的程序,如果没运行就全盘可以先只搜文件夹,在层层深入..

asdasdasd 发表于 2011-8-5 23:03:17

如楼上所解,一般程序安装都在注册表中留有路径的,象赛博插件运行QQ,如果进程中有运行,也可以用函数通过进程名获取完整路径的!

qqgghh1 发表于 2011-8-8 09:27:17

话说不知道楼主要实现这个有什么意义呢?
1.通过进程名获取路径:(QQ必须被打开,且不能改名字。)#Include <WinAPIEx.au3>

$Pid = ProcessExists("QQ.EXE")

MsgBox(0,0,_WinAPI_GetModuleFileNameEx($pid))2.全盘搜索方法:QQ不能改名字 我的电脑6个盘符,320G,使用了60G,搜索花费时间:52秒)#include <File.au3>
$var = DriveGetDrive( "all" );所有盘符名称
If NOT @error Then
        For $i = 1 to $var
                _Filefind($var[$i]);针对每个盘符进行搜索
        Next
EndIf


Func _Filefind($_Path)
      $folder = _FileListToArray($_Path, "*", 2);找文件夹
      If Not IsArray($folder) Then Return 0
      For $i = 1 To $folder
                        $newPath = $_Path & "\" & $folder[$i]
                        $file = _FileListToArray($newPath, "QQ.EXE", 1);找QQ.EXE
                        If @error = 0 Then
                                MsgBox(0,0,$newPath) ;满足条件的文件的路径
                                ;ShellExecute($newPath&"\QQ.EXE",0);打开此文件
                        Else
                                _Filefind($newPath);当前目录下找不到再继续其它路径找
                        EndIf
                Next
EndFunc
       

jinyue115 发表于 2011-8-8 10:31:55

注册表里有找到uninstall的地方就有了

wsfda 发表于 2011-8-8 11:22:52

好像没有捷径可走,

xyhqqaa 发表于 2011-8-9 00:16:34

有些东西.注册表可以参考不?

xyhqqaa 发表于 2011-8-9 00:16:49

有些东西.注册表可以参考不?
页: [1] 2
查看完整版本: 怎么用autoit查找电脑中是否有某个程序并获取路径