2011-08-24 117 views
1

我在一家电脑软件安装中心的工作 - 我们的用户运行Windows。一些软件很难为新员工安装。我想用Python或Java自动设置软件。我应该如何在设置对话框中填写信息并自动完成设置过程?软件安装自动化

+1

自动化安装完全是一个普通的系统管理任务。我曾经使用过的每个安装程序都允许您通过命令行指定设置并执行安装,而无需显示GUI。你所需要做的就是编写一个批处理文件。有没有什么理由不适合你? – kindall

+2

Java不会是我为此类任务选择的语言。编辑时,我试图从问题中删除Java标签,但遭到拒绝。 –

+0

我建议使用现有解决方案之一来部署和安装软件。有一个OSS和商业解决方案可以做到这一点。不要重新发明轮子。 –

回答

1

我用pywinauto自动化图形用户界面,这也应该安装形式工作。

+0

在这里作业。是的,我的意思是在窗户中,并感谢你。 – bassxzero

1

----编辑为溶液明显谈论的Windows/MSI ----

MSI支持的配置参数在命令行上通过。了解更多。除非他们正在做一些真正奇特的事情,或者他们以一种有意忽略参数的方式打包了程序,否则您可能会发现最好的解决方案就是在链接安装期间将参数放在命令行中。

----原帖如下----

首先,你需要知道什么样的系统,你上安装软件。

然后,你需要选择的包管理系统,是该系统的默认情况下,在Windows上,MSI,很多Linux系统使用RPM(一些使用DEB)等

然后,你需要看看远程安装。几乎每个现代软件包管理器都支持一种或另一种远程安装技术。根据软件包管理器的不同,这可能涉及推送解决方案(将包含配置信息的软件包放入目录或使用界面发送),而其他软件则使用拉取解决方案进行管理。

如果使用的是拉的解决方案,安装日常工作由特定的资源来拉,然后你就可以将系统转换为一个拉的解决方案(这通常会使管理更容易一些)。

之后,你可能会想看看更具包容性的解决方案,比如如何在安装过程中安装增补基础软件。对于您打算支持的每个操作系统,这也是不同的。

0

如果你想在Windows对话框完井自动化,AutoIt是要走的路。优秀的文档和支持,一个强大的,但可读的脚本语言,支持自定义GUI创建和脚本编译支持等

下面是AutoIt的一个WinZip的安装示例:

; Run the winzip installer 
Run("winzip90.exe") 
; Initial Setup Screen 
WinWaitActive("WinZip® 9.0 SR-1 Setup", "&Setup") 
Send("!s") 
; Install location 
WinWaitActive("WinZip Setup", "into the following folder") 
Send("{ENTER}") 
; Features overview 
WinWaitActive("WinZip Setup", "WinZip features include") 
Send("!n") 
; License agreement 
WinWaitActive("License Agreement") 
Send("!y") 
; Quick start 
WinWaitActive("WinZip Setup", "Quick Start Guide") 
Send("!n") 
; Choose interface 
WinWaitActive("WinZip Setup", "switch between the two interfaces") 
Send("!c") 
Send("!n") 
; Installation type (custom/express) 
WinWaitActive("WinZip Setup", "&Express setup (recommended)") 
Send("!e") 
Send("!n") 
; Select file associations 
WinWaitActive("WinZip Setup", "WinZip needs to associate itself with your archives") 
Send("!n") 
; Completed installation screen 
WinWaitActive("WinZip Setup", "Thank you for installing this evaluation version") 
Send("{ENTER}") 
; Wait for winzip to load then close it 
WinWaitActive("WinZip (Evaluation Version)") 
WinClose("WinZip (Evaluation Version)")