我正在使用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获取当前用户和域但是密码怎么样??
如何通过访问网络启动应用程序?
答案 0 :(得分:1)
在提交执行中被调度它可能是作为SYSTEM启动的,它没有 与启动安装的用户具有相同的权限。更好的设计是在完成的对话框上有一个复选框,询问用户是否要启动应用程序,并在选中并且用户单击关闭时执行此操作。这样,它就像用户一样从UI序列启动。
你没有提到你正在使用哪种工具,但我猜这是微软在VS2012中杀死的那种可怕的工具,成千上万的人抱怨UserVoice将它带回来。他们都没有理解像你现在面临的问题那样导致微软杀死它的问题。
你可以在这里找到他们(Visual Studio Installer > How To Launch App at End of Installer)来回答你的问题但是尽管投票数很多,但这是错误的。