我已经使用自定义WPF UI构建了一个WIX项目,该UI必须以提升的权限运行。安装/更新后,我想启动我的应用程序,但我不希望应用程序以提升权限启动。
目前我正在做以下
In"受保护的覆盖子运行()"我做了以下
Dim m_LowProcess As Process = Process.GetCurrentProcess
然后,一旦安装程序完成,我运行以下代码
Dim procStartInfo As New ProcessStartInfo
With procStartInfo
.FileName = fInfo.FullName
.WindowStyle = ProcessWindowStyle.Normal
End With
m_LowProcess.StartInfo = procStartInfo
m_LowProcess.Start()
我检查过程ID和句柄属性,它们是相同的。但是我的程序在安装后仍然以不同的权限运行。
我做错了什么或者这是不会有用的?
我知道of this forum question which solves the problem other ways.
答案 0 :(得分:0)
我不确定您的代码在做什么,但我相信正确的方法就像ProcessStartinfo文档中的这个例子一样:
通过指定可执行文件的路径并确保UseShellExecute为true来启动已安装的应用程序,以便进程启动的行为类似于资源管理器运行(没有特权继承)。如果您不知道可执行文件的安装位置,那么对MsiGetComponentPath的p / invoke传递其组件ID和产品的产品代码将告诉您: https://msdn.microsoft.com/en-us/library/aa370112(v=vs.85).aspx