问题描述
|
我知道这很奇怪,但是这里是:我管理着10个左右的卫星办公室,并且正在将软件安装滚动到无配置/无设置映像中,以保留在现场以便重新安装崩溃等,我的所有文件都已完成,除了Office 2010安装。
我想做的是这样的:
已使用config.xml将Office Install EXE设置为使用该用户及所有用户的密钥进行静默安装。它是所有用户使用的一张光盘,并使用主xml文件输入密钥名称等。安装程序会问一个问题“选择用户名”,当安装该应用程序的人员按下下一步按钮时,程序将为该按钮插入值用户输入该字符串,并将其写入Office的安装文件夹中的config.xml中,然后开始安装。
在Office安装完成后,它将为Outlook配置文件创建prf文件,并运行outlook.exe / importprf \\ yadda \\ yadda命令。
然后,应用程序将说完成并关闭。
问题详细:
这个(我认为)应该非常简单,我不确定如何监视Office应用程序的安装,以便在完成后触发流程的下一步。我考虑过在那里结束该应用程序,并使用注册表项进行首次运行以运行该命令以导入配置文件,但是我宁愿看看我是否可以按照上面列出的方式进行操作。
现在我不是地球上最聪明的人,所以如果有另一种方法可以自动化零售办公套件的安装并使用一些配置文件自动安装用户配置文件,我就是我的全部,我只想在现场花费最少的步骤即可可能。在我的解决方案中,安装程序将选择名称,然后在配置文件导入后必须输入密码并完成操作。作为旁注,PRF文件中是否有密码设置(使用pop3帐户)和保存密码设置?很好,但是我确定没有。
现在,为了节省时间,这些都是没有DC的独立小型企业,每个公司没有足够的许可证来进行开放式价值许可,而且我已经知道,可以使用Office Customization Tool通过以下方法创建prf文件来解决所有这些问题:网络安装和登录脚本。另外,我已经具有要执行裸机还原的系统映像,这些安装是针对不需要完全重新安装系统的情况。
解决方法
答案不是在安装项目中,而是在老式的Windows窗体中。我意识到:
我真的不需要安装项目来执行此操作。
可以将自定义process.start()与waitforexit()结合使用以实现所需的结果。
然后从那里继续。
好吧,无论如何,这是我解决这个怪异问题的方法,我只是发布了答案,这样,如果其他人不得不做这样的事情,他们就会得到。
例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
namespace waitforexittesting
{
static class Program
{
static void Main()
{
LaunchCommandLineApp();
}
static void LaunchCommandLineApp()
{
// Use ProcessStartInfo class
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = \"C:\\\\googletalk.exe\";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
try
{
// Start the process with the info specified.
// Call WaitForExit and then the using statement will close.
using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
catch
{
// Log error.
MessageBox.Show(\"The file could not be found.\",\"My Application\",MessageBoxButtons.OKCancel,MessageBoxIcon.Asterisk);
}
}
}
}