找回密码
 加入
搜索
查看: 8407|回复: 31

怎么写软件安装包!

  [复制链接]
发表于 2009-4-16 11:02:19 | 显示全部楼层 |阅读模式
我想自己学着来写一个软件案装包!不知怎么开始!
发表于 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)
发表于 2009-4-21 12:15:57 | 显示全部楼层
学习了谢谢!
发表于 2009-4-23 14:21:20 | 显示全部楼层
好好学习天天向上!
发表于 2009-5-12 12:16:12 | 显示全部楼层
好多高人,都是高人啊
发表于 2009-5-13 15:37:39 | 显示全部楼层
学习了,谢谢!
发表于 2009-5-29 19:12:24 | 显示全部楼层
好好学习天天向上!
发表于 2009-6-3 20:22:35 | 显示全部楼层
不错,挺好,感觉分享~~~这些都是常用并也够用了~~~
发表于 2009-6-3 20:22:37 | 显示全部楼层
不错,挺好,感觉分享~~~这些都是常用并也够用了~~~
发表于 2009-6-3 21:52:13 | 显示全部楼层
这些代码不错,记下了
发表于 2009-6-6 16:31:33 | 显示全部楼层
正需要这样的东西,谢谢提供。
发表于 2009-6-6 17:47:26 | 显示全部楼层
同样 是 新手 来 看 看
发表于 2009-6-8 09:45:55 | 显示全部楼层
好好学习天天向上!!!!!!!!!!!!!!!!!
发表于 2009-6-12 09:12:59 | 显示全部楼层
谢谢分享,呵呵呵
发表于 2009-6-12 12:45:28 | 显示全部楼层
UP。。UP。。。!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-18 19:36 , Processed in 0.074201 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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