找回密码
 加入
搜索
查看: 2204|回复: 5

求高手,怎样编写一个运行同一个目录下的程序

[复制链接]
发表于 2009-10-12 15:33:58 | 显示全部楼层 |阅读模式
求高手,怎样编写一个运行同一个目录下的程序?
   比如说,我的qq安装路径在:\Program Files\qq2008\qq.exe"
我想编一个脚本,把它也放在这个目录里,直接运行这个程序就可以运行QQ
    当然我只是举个例子,这个路径是随时在变的。可以说这个程序是一个绿色程序,我把它放在U盘里用的。我是新手请大家帮忙。谢谢
发表于 2009-10-14 12:10:21 | 显示全部楼层
直接填写执行程序名字就可以了.
如: run("qq.exe")
发表于 2009-10-23 20:45:01 | 显示全部楼层
本帖最后由 jycel 于 2009-10-23 20:47 编辑

如果说在当前脚本,直接调用即可

Run("qq.exe")

如果说在其它脚本调用,请注意这样一个问题我曾经遇到过的!

Run("*:\*\qq.exe","工作目录")

工作目录最好写上,否则将造成有可能造成程序启动失败
例子:http://www.autoitx.com/forum.php?mod=viewthread&tid=10402
也可没试下一些游戏启动文件,如剑侠情缘的GameFree.exe或开心之类的,不设置工作目录都有可能!
发表于 2009-11-5 08:51:41 | 显示全部楼层
恩上面说的不错就那样可以的哦
发表于 2009-11-9 12:38:42 | 显示全部楼层
本帖最后由 minterz 于 2009-11-9 12:41 编辑

运行qq,会自动找到qq.exe的路径。
$path  = Processpath(ProcessExists("qq.exe"))
msgbox(0,"",$path)

Func Processpath($iPID)
;通过API获取指定PID的进程路径
;官方牛人制作
    
    Local $aProc = DllCall('kernel32.dll', 'hwnd', 'OpenProcess', 'int', BitOR(0x0400, 0x0010), 'int', 0, 'int', $iPID)
    If $aProc[0] = 0 Then Return SetError(1, 0, '')
    Local $vStruct = DllStructCreate('int[1024]')
    DllCall('psapi.dll', 'int', 'EnumProcessModules', 'hwnd', $aProc[0], 'ptr', DllStructGetPtr($vStruct), 'int', DllStructGetSize($vStruct), 'int_ptr', 0)
    Local $aReturn = DllCall('psapi.dll', 'int', 'GetModuleFileNameEx', 'hwnd', $aProc[0], 'int', DllStructGetData($vStruct, 1), 'str', '', 'int', 2048)
    If StringLen($aReturn[3]) = 0 Then Return SetError(2, 0, '')
    Return $aReturn[3]
EndFunc
发表于 2009-11-12 11:39:31 | 显示全部楼层
Run(@ScriptDir&"\qq.exe")
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-22 17:29 , Processed in 0.074842 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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