gpt4 book ai didi

.net - 从 Windows 服务中杀死一个进程

转载 作者:可可西里 更新时间:2023-11-01 09:29:56 24 4
gpt4 key购买 nike

我试图让 explorer.exe 保持终止状态,直到发生事件。

我的意思是我有一个 xml 文件,它是从我的 Windows 服务后台工作程序中读取的。它等待一个值,直到 explorer.exe 不应该执行,这是出于安全目的。

到目前为止我已经尝试过了:

While (True)
Dim doc As New XmlDocument
doc.Load("C:\Users\Alpha-Guy\AppData\Local\Packages\new-design_sa0tb4645bqbp\LocalState\metadata.xml")
Dim list = doc.GetElementsByTagName("authenticated")
var_auth = list(0).InnerText

If var_auth = "0" Then
Dim pro As Process
pro = Process.GetProcessesByName("explorer")(0)
If pro IsNot Nothing Then
pro.Kill()
End If
End If

If var_auth = "1" Then
Dim pro As Process
pro = Process.GetProcessesByName("explorer")(0)
If pro Is Nothing Then
Process.Start("c:\windows\explorer.exe")
End If

'Try
' pro = Process.GetProcessesByName("explorer")(0)
'Catch ex As Exception
' Process.Start("c:\windows\explorer.exe")
'End Try

End If

End While

这段代码写在backgroundWorker的doWork()事件中。

我的 windows 服务将检查 xml 数据库中的值,如果它是 0 那么它将检查 explorer.exe 是否已启动,如果是则终止它。

如果我在 xml 文件中找到的值是 1,那么它将检查 explorer.exe 是否已启动,如果没有则启动它。

问题:当我启动服务时,它会杀死 explorer.exe 一次,但 explorer.exe 自动打开并且服务无法再次杀死它。

错误:访问被拒绝。

如果它是一些权限问题而不是第一次它会如何杀死??

代码有问题吗???

最佳答案

让您的程序/服务以管理员(或系统帐户,或更高级别的 smtg)身份运行。
我认为您可以在“安装”服务时做到这一点。那么你就不会得到那个错误。
如果不想在从 Visual Studio 运行服务时出现该错误,也可以以管理员身份运行 Visual Studio。

我想这对你有帮助。祝你好运!

关于.net - 从 Windows 服务中杀死一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15603923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com