我正在尝试将 explorer.exe KILLED 保持到事件发生。
我的意思是我有一个从我的 Windows 服务后台工作程序读取的 xml 文件。它等待一个值,直到 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 会自动打开并且服务无法再次杀死它。
错误:访问被拒绝。
如果它有一些权限问题而不是第一次杀死它怎么办?
代码有问题吗???