
有没有一种方法可以检查现有进程是否已经以管理员身份/从VB .Net WinForm应用程序提升运行?我有一个通过API连接到主应用程序的实用程序。这在Windows7上运行得很好,但在Windows10上,我的实用程序无法通过API连接到主程序。我试了很多东西,但都不管用。最后,我发现如果我以管理员身份运行主程序,我的API实用程序就会像这样工作/连接。我查看了Process类(https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process?view=netframework-4.7.2)的文档,但没有发现任何明显的提升的执行属性。任何建议或代码片段将不胜感激。
在Windows10任务管理器中,您可以查看进程是否以提升的身份运行。我只需要一些东西来捕获代码中的这一点。
发布于 2019-11-28 00:05:48
经过一些测试,我发现在添加了以下设置的app.manifest文件并在代码中添加了属性IsElevated后,我可以看到exe是否在任务管理器中以提升的身份运行。希望这篇文章能帮助任何寻找类似问题的人。
从app.manifest文件:
Public ReadOnly Property IsElevated As Boolean
Get
Return New WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator)
End Get
End Property在代码中使用时:
If IsElevated = True Then
Me.Text = "TEST Utility - Administrator (Elevated)"
End If
If IsElevated = False Then
Me.Text = "TEST Utility - Normal (Non-Elevated)"
End Ifhttps://stackoverflow.com/questions/54331120
复制相似问题