我有一个程序我想监视是否有人打开它。事实证明程序在后台运行,如“wowexec.exe”。因此,进程在“explorer.exe”下缩进。我尝试了两件事来确定这个程序是否开放。
我的第一个是
Dim p() As Process = Process.GetProcessesByName("Process")
Dim retValue As Boolean = p.Length > 0
MsgBox(retValue & vbCrLf & "Process")
这适用于在计算机上查找进程,它将识别“explorer.exe”以及其他任何正在运行的程序,但无法识别backgorund中运行的某些内容,如“wowexec.exe”。
我对此的第二次尝试(可能没有正确写入)是
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Dim lngFindIt As Long
lngFindIt = FindWindow(vbNullString, "WindowName")
If lngFindIt = 0 Then
MsgBox("Does not Exist")
Else
MsgBox("Exists!")
End If
End Sub
出于某种原因,这总是会返回“Exists!”无论我为Window名称添加什么。我可以输入一堆字母或留空,然后返回“Exists!”。
任何帮助都非常感谢。