qq83769881 发表于 2009-7-21 17:26:11

又有问题来问了,run() 执行不了

$ip=@IPAddress1
$ikbpath = IniRead("E:\系统更新\run\00\ikeeper\NSdominated.ini","server_ad","ikbpath","")
$key = IniRead("E:\系统更新\run\00\ikeeper\NSdominated.ini","server_ad","key","")
$ikbip = IniRead("E:\系统更新\run\00\ikeeper\NSdominated.ini","server_ad","ikbip","")
$ikbnum = IniRead("E:\系统更新\run\00\ikeeper\NSdominated.ini","CLIENT_ID",$ip,"")
ProcessClose("ap.exe")
BlockInput(1)
run($ikbpath)

=======
run 不到文件。 用 msgbox 查$ikbpath 指向是对的,文件也真实存在。

生成的程序我不是放在同一目录一的,放在同一目录下没有问题。

ceoguang 发表于 2009-7-21 17:37:17

msgbox一下$ikbpath看看其值就知道了

qq83769881 发表于 2009-7-21 17:41:41

值是正确的 E:\系统更新\run\00\ikeeper\setup.exe
很晕 ……

我把


换了下顺序
run($ikbpath)
BlockInput(1)

运行 键盘是锁定了,说明 run这步也是执行过的吧?
另外我要是把生成的程序放在E:\系统更新\run\00\ikeeper 这个目录下没问题,哎,,闷。

水木子 发表于 2009-7-21 17:42:40

为什么只能用Run()命令来执行.exe 和 .com 文件? 对于.msi/.txt 还有其它格式的文件该怎样做呢?
只有少数文件扩展是"可运行"的——通常这些文件是.exe, .bat, .com, .pif.其它类型的文件如.txt 和 .msi实际上是借助其它程序来执行的. 比如当您双击"myfile.msi"文件的时候,实际上在后台执行的命令是"msiexec.exe myfile.msi". 所以要在AutoIt中运行一个.msi文件就需要这样做:

    RunWait("msiexec myfile.msi")



或者用更简单的方法,就是使用"start"命令,它会自动为您处理这个文件:

    RunWait(@COMSPEC & " /c Start myfile.msi")



或者, 使用 ShellExecuteWait 函数是最好的选择 :

    ShellExecuteWait("myfile.msi")

afan 发表于 2009-7-21 17:47:27

run($ikbpath,@ScriptDir)

qq83769881 发表于 2009-7-21 18:04:32

ShellExecuteWait 用这个搞定
我晕死 run 怎么突然不行了,,,以前都是用的run 。。。
难道是幻觉,还是明天日全食的原因,我晕,

qq83769881 发表于 2009-7-21 18:09:26

谢谢各位,收工,HAPPY去。。。

lynfr8 发表于 2009-7-21 21:13:56

run($ikbpath,@ScriptDir)
afan 发表于 2009-7-21 17:47 http://www.autoitx.com/images/common/back.gif

指定工作目录可以避免编译后一些意外情况
页: [1]
查看完整版本: 又有问题来问了,run() 执行不了