|
发表于 2009-4-16 11:32:55
|
显示全部楼层
送你一个东西
里面有我平时做自动安装脚本的关键命令
因为是自用的
比较乱
整理得不是十分美观
你斟酌下看合不合适你用
一般而言足以应付绝大部分软件的自动安装脚本了
-----------------------------------------------------------------------
获取脚本程序所在目录@ScriptDir
一直很奇怪3hen的那个硬件信息查看器简单版加皮肤的那个软件是怎么做到的..
只有一个EXE文件,运行时候的图片都不知道是放在哪里..
不会也是用FileInstall吧?
呵呵``你去看下`temp 目录`多数`我猜是释放到那` 呵呵,的确像楼上说的`` FileInstall
@AppDataDir
C:\Documents and Settings\XXX\Application Data\skin
skin.dll
skin.skf
Splash.jpg
包含并装入指定文件到编译后的脚本程序中。
FileInstall ( "源文件", "目标路径" [, 标志] )
$hd="*****"
WinWaitActive($fr,"aaaa")
RunWait("msiexec /i ???.msi /qb!- /norestart", @ScriptDir , @SW_HIDE)
单句即可
Run('')
WinActive("","")
WinWaitActive("","")
send("{enter}")
send("!y")
send("!n")
send("!i")
send("{down}")
send("{SPACE}{TAB}{SPACE}{TAB}")
send("{SPACE}{TAB}")
Send("{a down}") ;按住按键 A
Send("{a up}") ;松开按键 A
Send("{F1}")
ControlSetText("", "", "Edit", "中文") ;可输出中文
ControlSend("", "", "Edit", "D:\0") ;不输出中文
ControlSetText发送消息后,记事本不认为已经改变内容
ControlClick("","","Button")
controlclick('窗口标题','窗口文本','TToolBar1',"left",1,117,16)
可以点选Listbox的列表 真好用
ControlCommand ( "", "", "Button", "Check", "" )
ControlCommand ( "", "", "Button", "UnCheck", "" )
ControlCommand("","", "","SelectString", "简体中文N") ;选中第N+1
ControlCommand("Ramdisk 1.1 简体绿色版","安装内存盘","ComboBox2","SelectString","128M")
WinClose("")
ProcessExists ("SbieSvc.exe")
ProcessClose ("SbieSvc.exe")
判断是否有某个窗口或进程用:Winexists()或ProcessExists()
WinSetState ( "窗口标题", "窗口文本", 标志 )
@SW_HIDE = 隐藏窗口
@SW_SHOW = 显示窗口
@SW_MINIMIZE = 最小化窗口
@SW_MAXIMIZE = 最大化窗口
@SW_RESTORE = 撤销窗口的最小化或最大化状态
@SW_DISABLE = 禁用窗口
@SW_ENABLE = 使窗口可用
Send命令
(1) 组合:^ 表示Ctrl,! 表示 Alt,+ 表示Shift,#表示 Win
比如Send(“!f”)
路径框是激活状态,可Send(“D:\0”)
(2) 多个Send命令可合写,一次完成。
(3) Send命令不能输出中文的,Unicode都是不能输出
有很多特殊按键,请参看帮助文件
ControlSend ( "title", "text", "classnameNN", "string" [, flag] )
ControlSetText ( "title", "text", "classnameNN", "new text" )
如:
Controlsend("last","","Edit1","http://autoit.3322.org"& @CRLF)
ControlSetText ( "last", "", "Edit1", "http://autoit.3322.org" )
controlsend 有时是把新的字符串追加到编辑框,后面可带@CRLF,即在输入后,发送一个回车符。
controlsettext是把新的字符串替换了原来值,且后面不能带@CRLF,带了,也无效。
MouseClick(“鼠标左右键”,在屏幕的X位置,在屏幕的Y位置,点击次数)
使用这一方法必须取得准确的鼠标坐标,而且坐标要适应不同情况,最好用变量取得
有的窗体没快捷键,不能切换焦点,又找不到控件信息,只能用模拟鼠标点击
关于ctrl+shift+其他键
如:ctrl+shift+f 时,把shift放前:send("+!f")
如果send("!+f")会调出输入法。ctrl+shift是各种输入法的切换方式。
IniWrite ( "aa.ini", "MiniLyrics", "RegName", "www.crsky.com" )
;此句的作用是,在ini文件中建立一个设置项,在[MiniLyrics]区下的键值:RegName=www.crsky.com
$inifile=$var&"/Minilyric.ini"
IniWrite ( $inifile, "MiniLyrics", "RegName", "www.crsky.com" )
IniWrite ( $inifile, "MiniLyrics", "RegCode", "56454DB301GGGF1F" )
;因为这个软件注册是要写入ini文件的,不想很多软件是写入注册表的。
;而autoit提供了ini文件的操作,通过刚才的变量$var,得到要写入的INI文件。
;这里的MiniLyrics是ini的区域,即(在文件中用[MiniLyrics])表示的单独一排。
;在安装好后,这个区域是没有的,不过用iniWrite函数后会自动生成的。
WinWaitActive("MiniLyrics 2.7.233 安装 : 安装目录")
Dim $var,$inifile
$var = ControlGetText("MiniLyrics 2.7.233 安装 : 安装目录", "", "Edit1")
ControlClick ( "MiniLyrics 2.7.233 安装 : 安装目录", "安装(&I)", "Button2" )
;这里让你设置安装目录,我设为默认。
只是安装的目录保存到变量$var,作为后面注册用。
ControlGetText
获取指定控件上的文本.
ControlGetText ( "窗口标题", "窗口文本", 控件ID)
窗口标题 目标窗口标题.
窗口文本 目标窗口文本.
Run("notepad.exe")
$var = ControlGetText("[CLASS:Notepad]", "", "Edit1")
$var = ControlGetText ( "窗口", "", "控件")
这个用来取出注册码或者机器码
ControlSend("窗口", "", "控件", $var)
这个用来填入注册码或者机器码
FileInstall('pcrkey.txt', @SystemDir & '\pcrkey.txt')
;公共部分
$str = FileRead(@SystemDir & '\**.txt')
ControlSetText('***', '', 'Edit*', $str)
FileDelete(@SystemDir & '\**.txt')
$str = ControlGetText('***', '', 'Edit')
FileMove(@SystemDir & '\**.txt', $str, 1) |
|