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

[AU3基础] 用AU3写的脚本怎么加上静默参数?

[复制链接]
发表于 2009-8-14 00:59:25 | 显示全部楼层 |阅读模式
本帖最后由 pusofalse 于 2010-2-18 18:53 编辑

用AU3写了个调用其他目录的程序的脚本,编译后,用那些静默参数扫描工具扫描,没有静默参数的啊,

要在原代码里面怎么弄才会有静默参数啊?

比如,很多exe程序都有 /S  这个静默安装的参数的,

那么在AU3脚本中如何实现?如何也给编译后的exe 程序加上静默参数?

谢谢!
发表于 2009-8-14 10:37:22 | 显示全部楼层
本帖最后由 afan 于 2009-8-14 10:39 编辑

简单写了个例子,编译后带参数试试~
If $CmdLine[0] > 0 Then
        MsgBox(0, 0, '现在是带参数运行')
        If $CmdLine[1] = '/s' Then
                MsgBox(0, 0, '现在是带参数 /s 运行')
                Exit
        EndIf
        ;Exit
EndIf
MsgBox(0, 0, '现在是不带参数运行')

评分

参与人数 1贡献 +3 收起 理由
lynfr8 + 3

查看全部评分

 楼主| 发表于 2009-8-14 12:29:52 | 显示全部楼层
哦,非常感谢您的帮忙,谢谢,现在就试试、、、、、、、、
 楼主| 发表于 2009-8-14 14:46:24 | 显示全部楼层
意思就是不用在源代码里面加什么?编译后就有默认的静默运行参数“/S” 了,是么?
谢谢
发表于 2010-2-18 18:10:51 | 显示全部楼层
我也不知道楼主&1楼的意思 可能是答非所问?
发表于 2010-2-18 18:57:57 | 显示全部楼层
帮助里面的内容希望有用

运行脚本
当您打开AutoIt.exe,程序会出现打开一个 脚本文件 的对话框.  一个脚本文件是纯文本文档,包含的 AutoIt 关键词和函数告诉 AutoIt 您想做什么.  脚本文件创建于一些纯文本文档编辑器,比如 notepad.exe 或者许多更好的 编辑器.

尽管 AutoIt v3 的脚本只是些纯文本文件,但是为了区别脚本文件于文本文件的区别. 我们定义了 .au3 的文件关联.   如果您完整安装了 AutoIt, 那么只需直接双击这些脚本文件即可运行它们.  您可以打开,编辑,或者编译一个脚本文件. 在哪里?右键单击.au3 文件.



这里有一个脚本例子. 说明 ; 是用来注释用的 (就像DOS批处理下的 REM命令):

; 这是我的第一个脚本
MsgBox(0, "我的第一个脚本!", "Hello World!")



更复杂的脚本一般会用到 函数, 通常我们把函数放在脚本的最后部分(这是一个好习惯,虽然在很多高级语言中不是这样.如C++).  下面是一个带有函数的脚本示例 :

; 这是我的第二个脚本 (使用函数)
MsgBox(0, "我的第二个脚本!", "主脚本:Hello!")
TestFunc()

Func TestFunc()
    MsgBox(0, "我的第二个脚本!", "主脚本:Hello!")
EndFunc



命令行参数
当我们传递命令行参数到AutoIt脚本中的时候,AutoIt会初始化一个特殊的数组 $CmdLine.   注意, 脚本文件名不算进参数; 请使用 @ScriptName 代替脚本名称.  一个参数中如果含有空格,必须使用 "双引号"把内容围住.  已编译的 脚本同样也能接受命令行参数. 请看下面代码:

$CmdLine[0] ;参数的数量
$CmdLine[1] ;第一个参数 (脚本名称后面)
$CmdLine[2] ;第二个参数等等
...
$CmdLine[$CmdLine[0]] ;可以用来表示得到最后一个参数...



如果您的脚本是像下面这样被运行的话:

    AutoIt3.exe myscript.au3 参数1 "这是 一个其它参数"

$CmdLine[0] 等价于... 2

$CmdLine[1] 等价于... 参数1

$CmdLine[2] 等价于... 这是一个其它参数

@ScriptName 等价于... myscript.au3



除开 $CmdLine 之外还有一个变量叫做 $CmdLineRaw ,它保存着完整的未被拆分的命令行语句, 对于上面这个例子:

$CmdLineRaw 等价于... myscript.au3 参数1 "这是一个其它参数"



如果脚本已经被编译,那么得到的值将会是下面这个样子:

    myscript.exe 参数1 "这是 一个其它参数"

$CmdLineRaw 等价于... 参数1 "这是一个其它参数"

注意 $CmdLineRaw 会立即返回参数.



注意 : 只有 63 个参数会被 $CmdLine[...] 正常返回, 但是 $CmdLineRaw 总是会返回完整的所有参数.



AutoIt 特殊命令行开关
格式1: AutoIt3.exe [/ErrorStdOut] [/AutoIt3ExecuteScript] 文件 [参数 ...]
                执行一个脚本文件


/ErrorStdOut    允许使用 StdOut 返回失败错误. 可以被 Scite 编辑器捕捉. 这个开关不能用于已经编译的脚本.


执行一个标准的 AutoIt 脚本文件 'myscript.au3', 使用命令:
'AutoIt3.exe myscript.au3'



格式2: Compiled.exe [/ErrorStdOut] [参数 ...]
                执行一个 Aut2Exe 编译的 AutoIt3 脚本文件.

格式3: Compiled.exe [/ErrorStdOut] [/AutoIt3ExecuteScript file] [参数 ...]
                执行其他脚本,使用已经编译的AutoIt3脚本文件. 您不需要使用 fileinstall 释放一个 AutoIT3.exe 的拷贝.


格式4: AutoIt3.exe [/ErrorStdOut] /AutoIt3ExecuteLine "脚本代码"
                执行一行代码.

要执行单行代码, 使用命令:
Run(@AutoItExe & ' /AutoIt3ExecuteLine  "MsgBox(0, ''Hello World!'', ''Hi!'')"')

使用 /AutoIt3ExecuteLine 参数执行的命令不会显示托盘图标.

注意: 正确的使用 单/双引号是非常重要的, 切记!.  


Form3 and Form4 can be disabled for compiled script when using #NoAutoIt3Execute.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 22:40 , Processed in 0.080677 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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