我是vb.net 2010的新程序员。 我创建了一个需要以管理员身份运行的应用程序(不通过UAC)。这是一个恶意软件保护软件,将与管理员权限一起安装。
我正在创建一个Windows服务,让它在系统启动时自动运行。 我创建的服务是本地系统服务。
执行应用程序后,本地系统服务未显示主应用程序窗口。 为了摆脱这个问题,我尝试用这个服务执行另一个应用程序。另一个应用程序将执行主应用程序。但是我收到了错误。
现在我的问题是如何通过本地系统服务以管理员身份执行应用程序?
以下是我在服务(第一个exe)和app starter exe(第二个exe)上使用的代码
服务代码:
Protected Overrides Sub OnStart(ByVal args() As String)
Dim procStartInfo As New ProcessStartInfo
Dim procExecuting As New Process
If File.Exists(OwnDirPath & "appstarter.exe") Then 'realtime
With procStartInfo
.UseShellExecute = True
.FileName = OwnDirPath & "appstarter.exe"
.WindowStyle = ProcessWindowStyle.Normal
.Verb = "runas"
End With
procExecuting = Process.Start(procStartInfo)
End If
End Sub
App Starter code:
Sub main()
Dim procStartInfo As New ProcessStartInfo
Dim procExecuting As New Process
If File.Exists(My.Application.Info.DirectoryPath & "mfirewall.exe") Then With procStartInfo
.UseShellExecute = True
.FileName = "mfirewall.exe"
.WindowStyle = ProcessWindowStyle.Normal
.Verb = "runas"
End With
procExecuting = Process.Start(procStartInfo)
End If
End Sub
修改 现在我从服务exe执行主应用程序exe时没有收到错误。但主应用程序窗口隐藏并运行SYSTEM帐户。
如何在不传递用户帐户密码的情况下,使用本地系统服务的用户帐户权限运行主应用程序?
请建议我最好的。
由于 的问候,
答案 0 :(得分:0)
本地系统服务可以创建计划任务。我已导入xml文件并创建了计划任务及其完成。