找回密码
 加入
搜索
查看: 4523|回复: 30

脚本运行正常,可是编译后出现问题

[复制链接]
发表于 2009-4-22 21:00:24 | 显示全部楼层 |阅读模式
本帖最后由 zzfbz 于 2009-4-24 20:13 编辑

脚本运行正常,可是编译后出现问题:编译后的文件只有259k,一运行就在任务栏出现无数个AU图标,只好注销电脑.请教问题出在哪?
我想问题应该不是出在脚本本身,那么应该怎样编译呢?
发表于 2009-4-22 21:28:13 | 显示全部楼层
编译后的文件名是什么?是否脚本中调用的外部程序跟脚本文件名冲突了?
比如你的文件名是net.exe,脚本中又调用了命令行程序net,而且是用相对路径调用的。那么完蛋,调用复调用,调用何其多。。。
良好的习惯是尽可能用绝对路径,少用相对路径。
 楼主| 发表于 2009-4-22 21:37:29 | 显示全部楼层
脚本名和原程序名都是FlashPlayer,编译后名fp.exe
run('FlashPlayer.exe')
$hd="安装 - Baby Flash播放器"
WinWaitActive($hd,"欢迎使用 Baby Flash播放器")
send("!n")
WinWaitActive($hd,"选择目标位置")
ControlSetText($hd,"","TEdit1","D:\Program Files\FlashPlayer")
send("!n")
WinWaitActive($hd,"选择开始菜单文件夹")
send("!n")
WinWaitActive($hd,"选择附加任务")
send("!d")
send("!n")
WinWaitActive($hd,"安装程序现在准备开始")
send("!i")
WinWaitActive($hd,"完成 Baby Flash播放器 安装向导")
send("{space}")
send("!f")
 楼主| 发表于 2009-4-22 21:40:17 | 显示全部楼层
软件的安装过程根本就没有出现,只有图标不停在任务栏地增多。
 楼主| 发表于 2009-4-22 21:43:16 | 显示全部楼层
良好的习惯是尽可能用绝对路径,少用相对路径。
如果用绝对路径,那把编译后的软件拿到另外的电脑上安装是不是会有限制,比如要放到固定的位置才能自动安装?请指教!
 楼主| 发表于 2009-4-22 21:49:10 | 显示全部楼层
原exe安装程序有6M,而编译后的exe文件却只有259K,这绝对是有问题
 楼主| 发表于 2009-4-22 21:52:20 | 显示全部楼层
我前几天曾经用相同的方法编译成功过,可是今天换了3台电脑都不行,这3台电脑安装的autoit可能都是一样的,会不会是AT软件的问题?
发表于 2009-4-22 21:58:33 | 显示全部楼层
FlashPlayer.exe 是用FileInstall安装还是独立于脚本?放在哪个路径?
发表于 2009-4-22 22:00:10 | 显示全部楼层
本帖最后由 sensel 于 2009-4-22 22:07 编辑

如果FlashPlayer.exe是跟脚本文件放在一个文件夹,使用 @ScriptDir & "\FlashPlayer.exe" 试试
另外,看看任务管理器里是否存在多个fp.exe?
 楼主| 发表于 2009-4-22 22:29:16 | 显示全部楼层
FlashPlayer.exe是跟脚本文件放在一个文件夹, @ScriptDir & "\FlashPlayer.exe"这句加在哪儿?不好意思,初学,帮助文档中也没找到详细说明
发表于 2009-4-22 22:48:50 | 显示全部楼层
本帖最后由 sensel 于 2009-4-22 22:52 编辑
原exe安装程序有6M,而编译后的exe文件却只有259K,这绝对是有问题
zzfbz 发表于 2009-4-22 21:49


如果你没有使用FileInstall,原文件并没有被包含进编译后的脚本文件,那么编译后文件不大是正常的。
你试过直接运行FlashPlayer.exe吗?上面给出的代码是否完整?
@ScriptDir 在帮助文件的宏一章有说明,代表当前运行脚本所在路径。run('FlashPlayer.exe') 改成 run(@ScriptDir & '\FlashPlayer.exe')。WinWaitActive应该用WinWait。用ControlClick或ControlCommand代替send。

检查你的FlashPlayer.exe,因为你的脚本名也是FlashPlayer,我很怀疑你不小心用直接编译覆盖了它。
发表于 2009-4-22 23:10:40 | 显示全部楼层
本想找个帖子回复玩玩来,但SENSEL回复很好,就算了。。帮楼主感谢。。

PS:我太无聊了,11点了,没事干,唉。。
 楼主| 发表于 2009-4-22 23:20:04 | 显示全部楼层
12# llztt

给点参考意见啊,真心请教
发表于 2009-4-22 23:25:52 | 显示全部楼层
你参照sensel 的回复,应该很容易发现问题所在啊。。

你脚本名、编译名、欲运行程序名,都冲突,这本身就是坏习惯。。试着建立新目录,把脚本+欲运行程序放到里面,修改三者名字都不一样,测试再测试。。 要学会测试啊,譬如,可以单独运行程序,看能否正常运行。。或拷贝一个notepad.exe去替代欲运行程序,测试。。

学会怎么找到问题所在,是提高AU3水平的好办法哦。。
 楼主| 发表于 2009-4-22 23:27:05 | 显示全部楼层
1、直接运行FlashPlayer.exe了,无异常;
2、把脚本和FlashPlayer.exe放在一个文件夹,运行脚本,自动安装也正常;
3、上面发的代码是编译前的完整代码
4、run('FlashPlayer.exe') 改成 run(@ScriptDir & '\FlashPlayer.exe'),编译后的文件还是259K;
5、能具体讲讲FileInstall的用法吗?或者把上面代码帮我修改一下
谢谢各位了!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-28 18:58 , Processed in 0.076666 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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