friendtasy 发表于 2011-2-24 23:04:49

为什么run命令不能运行自己把程序完整路径赋值的某变量?

随便测试一下

If regRead("HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.1\ACAD-301:804","Location")="" Then
        MsgBox(0,"","没有安装CAD2005")
        Exit
EndIf
$SN=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.1\ACAD-301:804","Location")

$cad=$sn & "\acad.exe"
MsgBox(0,"",$cad)
Run($cad)

netegg 发表于 2011-2-24 23:08:56

不明白,但$SN和$sn不是一个值大概是可以肯定的

friendtasy 发表于 2011-2-24 23:14:05

不明白,但$SN和$sn不是一个值大概是可以肯定的
netegg 发表于 2011-2-24 23:08 http://www.autoitx.com/images/common/back.gif


    改了也一样的,msgbox显示了全路径了啊

netegg 发表于 2011-2-24 23:21:38

确定是全路径?那先直接run('全路径')试试看,前面的都不要

friendtasy 发表于 2011-2-24 23:35:15

奇怪,直接把路径拷贝到“运行”回车是可以运行的,怎么到了autoin用全路径也不能运行呢?(没有使用变量哦)

netegg 发表于 2011-2-24 23:41:42

用execute试试

lixiaolong 发表于 2011-2-25 00:05:50

回复 1# friendtasy

$SN 的路径是什么?给大家看看.

yhxhappy 发表于 2011-2-25 00:20:37

没装CAD不能验证。但我敢肯定是可以用变量路径运行的,可能你的路径有问题,比如有两个\\之类的
FileChangeDir 指定工作目录到该文件夹,再运行EXE文件,试试$Path = "C:\Windows\system32\notepad.exe"
Run($Path)

If regRead("HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.1\ACAD-301:804","Location")="" Then
      MsgBox(0,"","没有安装CAD2005")
      Exit
EndIf
$SN=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.1\ACAD-301:804","Location")

FileChangeDir($sn)
Run("acad.exe")

小A 发表于 2011-2-25 00:33:06

可能是注册表的路径位置带有\\
比如exe本身路径为 c:\1.exe 在注册表里可能是c:\\1.exe
另外,楼主把你的$sn变量显示的是什么给大家截图看看,让大家看看是不是路径的问题。

minterz 发表于 2011-2-25 11:08:18

肯定是路径搞错了..

friendtasy 发表于 2011-2-25 13:21:22

路径没错,RUN也是可以执行变量的,不过由于刚安装没重启过系统所以出现这种现象,重启系统就可以run变量了

friendtasy 发表于 2011-2-25 23:37:59

路径倒是没错,系统重启后就能运行了,可能直接在菜单运行中运行,有某些环境变量直接生效,但在au3中run不能调用这些刚被软件添加的一些环境变量吧~
页: [1]
查看完整版本: 为什么run命令不能运行自己把程序完整路径赋值的某变量?