找回密码
 加入
搜索
查看: 3827|回复: 16

程序调用代码不能运行

[复制链接]
发表于 2008-6-5 08:04:21 | 显示全部楼层 |阅读模式
下面的代码不能运行,老是call里面包含错误的参数,请大家帮我改改,谢谢.

Dim $a,$b,$c,$d,$dell
if FileExists(@ScriptDir & '\guirunonce.ini') Then
$a=IniReadSection(@ScriptDir & '\guirunonce.ini',"pro1","a")
$b=IniReadSection(@ScriptDir & '\guirunonce.ini',"pro1","b")
$c=IniReadSection(@ScriptDir & '\guirunonce.ini',"pro1","c")
$d=IniReadSection(@ScriptDir & '\guirunonce.ini',"pro1","d")
$dell=IniReadSection(@ScriptDir & '\guirunonce.ini',"pro1","dell")
endif
Select
case $a<>""
RunWait($a)
case $b<>""
runwait($b)
case $c<>""
runwait($c)
case $d<>""
runwait($d)
case $dell="0"
Run(@ComSpec&' /c ping 127.0.0.1 -n 1&del /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE)
case Else
exit
EndSelect


[pro1]
a=
b=
c=
d=
dell=0


;dell=0 是删除自身的参数.你不想自身删除的话就写个其他的数值

  另外, 配置文件保存成guirunonce.ini 放在脚本的运行目录, 
脚本名字随便, 编译成exe放在启动下面就行了,记住配置文件名和使用规则.

[ 本帖最后由 lxz 于 2008-6-6 15:24 编辑 ]
 楼主| 发表于 2008-6-5 15:59:45 | 显示全部楼层
谢谢Vinhua.IniReadSection  改为:IniRenameSection运行程序不会报错了,但是却调用不了需要调用的工具.不知怎么回事.
发表于 2008-6-5 16:15:20 | 显示全部楼层
if FileExists(@ScriptDir & '\guirunonce.ini') Then
$a=IniRead(@ScriptDir & '\guirunonce.ini',"pro1","a","")
$b=IniRead(@ScriptDir & '\guirunonce.ini',"pro1","b","")
$c=IniRead(@ScriptDir & '\guirunonce.ini',"pro1","c","")
$d=IniRead(@ScriptDir & '\guirunonce.ini',"pro1","d","")
$dell=IniRead(@ScriptDir & '\guirunonce.ini',"pro1","dell","")
endif

LZ连函数用法都用错了...
自己看帮助文件错在哪里

[ 本帖最后由 真会走路的废柴 于 2008-6-5 16:17 编辑 ]
 楼主| 发表于 2008-6-5 17:56:20 | 显示全部楼层
谢谢真会走路的废柴.搞定了.
 楼主| 发表于 2008-6-5 18:06:50 | 显示全部楼层
呵呵,经真会走路的废柴指点可以运行了,同时调用多个软件时,只有一个能够运行,其它的都没反应,删除自身的也没反应.
发表于 2008-6-5 20:30:54 | 显示全部楼层
原帖由 lxz 于 2008-6-5 18:06 发表
呵呵,经真会走路的废柴指点可以运行了,同时调用多个软件时,只有一个能够运行,其它的都没反应,删除自身的也没反应.

你用的是runwait,理论上必须a程序运行完了才能往下执行,所以会出现你所说的只运行一个的情况,如果你手动关闭了已经运行的程序,应该会继续执行下一个程序b。如果你是需要同时运行这些程序,那么,请直接用run
 楼主| 发表于 2008-6-5 20:33:46 | 显示全部楼层
手动关闭也不能继续执行下一个程序b
 楼主| 发表于 2008-6-5 20:40:43 | 显示全部楼层
我就是需要手动关闭后继续执行下一个程序b的程序
发表于 2008-6-5 20:51:17 | 显示全部楼层
不要用case选择,直接用if来判断
 楼主| 发表于 2008-6-5 21:04:53 | 显示全部楼层
不用case选择,直接用if来判断,结果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2008-6-5 23:52:25 | 显示全部楼层
很明显,是你的语法不对,if后面必须跟一个then,你符合了不?
 楼主| 发表于 2008-6-6 09:35:20 | 显示全部楼层
原帖由 dingamao 于 2008-6-5 23:52 发表
很明显,是你的语法不对,if后面必须跟一个then,你符合了不?


我改成了这样了
Dim $a,$b,$c,$d,$dell
if FileExists(@ScriptDir & '\guirunonce.ini') Then
$a=IniReadSection(@ScriptDir & '\guirunonce.ini',"pro1","a")
$b=IniReadSection(@ScriptDir & '\guirunonce.ini',"pro1","b")
$c=IniReadSection(@ScriptDir & '\guirunonce.ini',"pro1","c")
$d=IniReadSection(@ScriptDir & '\guirunonce.ini',"pro1","d")
$dell=IniReadSection(@ScriptDir & '\guirunonce.ini',"pro1","dell")
endif
Select
if $a<>"" Then
RunWait($a)
if $b<>"" Then
runwait($b)
if $c<>"" Then
runwait($c)
if $d<>"" Then
runwait($d)
if $dell="0" Then
Run(@ComSpec&' /c ping 127.0.0.1 -n 1&del /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE)
if Else Then
exit
EndSelect

但是却出现

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2008-6-6 13:47:14 | 显示全部楼层
XD,你都不用case了,那还保留着Select与EndSelect干什么?
发表于 2008-6-6 13:50:20 | 显示全部楼层
而且你的if语句也是有问题的,按你的写法,每个if还必须跟一个endif结束,所以你应该写成这样:
if $a<>"" Then RunWait($a)
if $b<>"" Then runwait($b)
if $c<>"" Then runwait($c)
if $d<>"" Then runwait($d)
if $dell="0" Then Run(@ComSpec&' /c ping 127.0.0.1 -n 1&del /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE)
 楼主| 发表于 2008-6-6 15:26:10 | 显示全部楼层
原帖由 dingamao 于 2008-6-6 13:50 发表
而且你的if语句也是有问题的,按你的写法,每个if还必须跟一个endif结束,所以你应该写成这样:
[au3]if $a"" Then RunWait($a)
if $b"" Then runwait($b)
if $c"" Then runwait($c)
if $d"" Then runwait($d)
...


管理员出马就是不一样,谢谢.搞定了.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-3 00:29 , Processed in 0.082326 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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