0

我正在使用 Windows Installer 分发桌面应用程序。在提交中,有一个自定义操作会启动刚刚安装的应用程序。它似乎运行良好,但启动的应用程序看不到映射的网络驱动器...如果我退出应用程序并从开始菜单启动它,应用程序可以毫无问题地看到网络驱动器。此应用需要从网络读取...

这是我在提交操作中使用的代码:

ProcessStartInfo^ proc = gcnew ProcessStartInfo();
proc->UseShellExecute = true;
proc->FileName=mytargetdir + "program.exe";
try
{

    Process::Start(proc);

}
catch(Exception^ e)
{
    // Do nothing and return directly ...
}

我假设我需要向进程提供当前用户凭据,但我无法预先知道它们。我可以使用 Environment 获取当前用户和域,但是密码呢...?

如何启动可以访问网络的应用程序?

4

1 回答 1

1

在提交执行中安排它可能作为 SYSTEM 启动,它与启动安装的用户没有相同的权限。更好的设计是在已完成的对话框上设置一个复选框,询问用户是否要启动应用程序,并在选中并单击关闭时执行此操作。这样,它以用户身份从 UI 序列启动。

你没有提到你使用的是哪个工具,但我猜这是微软在 VS2012 中杀死的那个可怕的工具,成千上万的人在 UserVoice 上抱怨要把它带回来。他们都不了解像您现在面临的导致微软杀死它的问题。

您可以在这里找到他们(Visual Studio 安装程序 > 如何在安装程序结束时启动应用程序)回答您的问题,但尽管投票数很高,但这是错误的。

于 2013-10-10T11:12:11.683 回答