vb 检测某个进程是不是运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb 检测某个进程是不是运行相关的知识,希望对你有一定的参考价值。

假设指定程序的程序名为A.exe 若该进程运行则继续运行接下来的代码 若该进程未运行则弹出一个窗口,不继续运行接下来的代码 。

参考技术A '检查进程是否运行,根据进程名
Private
Function
CheckExeIsRun(exeName
As
String)
As
Boolean
On
Error
GoTo
Err
Dim
WMI
Dim
Obj
Dim
Objs
CheckExeIsRun
=
False
Set
WMI
=
GetObject("WinMgmts:")
Set
Objs
=
WMI.InstancesOf("Win32_Process")
For
Each
Obj
In
Objs
If
(InStr(UCase(exeName),
UCase(Obj.Description))
<>
0)
Then
CheckExeIsRun
=
True
If
Not
Objs
Is
Nothing
Then
Set
Objs
=
Nothing
If
Not
WMI
Is
Nothing
Then
Set
WMI
=
Nothing
Exit
Function
End
If
Next
If
Not
Objs
Is
Nothing
Then
Set
Objs
=
Nothing
If
Not
WMI
Is
Nothing
Then
Set
WMI
=
Nothing
Exit
Function
Err:
If
Not
Objs
Is
Nothing
Then
Set
Objs
=
Nothing
If
Not
WMI
Is
Nothing
Then
Set
WMI
=
Nothing
End
Function
'测试代码
Private
Sub
Command1_Click()
If
CheckExeIsRun("A.exe")
Then
MsgBox
"运行了啊"
Else
MsgBox
"没有运行"
End
If
End
Sub

检测 Windows 登录屏幕是不是对 VB.NET 中的用户可见

【中文标题】检测 Windows 登录屏幕是不是对 VB.NET 中的用户可见【英文标题】:Detecting if Windows Login Screen is visible to user in VB.NET检测 Windows 登录屏幕是否对 VB.NET 中的用户可见 【发布时间】:2011-08-12 20:12:19 【问题描述】:

你好 *** VB.NET 成员,

运行以下代码(锁定计算机)后,我必须应用什么代码才能查看用户是否已成功登录计算机以及我所谓的“锁定屏幕”是否消失了?

Private Declare Function LockWorkStation Lib "user32.dll" () As Long

Private Function LockComputer()
    LockWorkStation()
End Function

我将调用“LockComputer”,然后我该怎么做才能查看此功能调用的锁定屏幕(例如 2 分钟后)是否消失或仍然存在向用户询问密码!

谢谢, 阿克希特·苏塔

【问题讨论】:

【参考方案1】:

看看这个:http://msdn.microsoft.com/en-us/library/aa376875%28v=vs.85%29.aspx

上面写着:没有可以调用的函数来确定工作站是否被锁定。

但是:

要在用户登录时接收通知,请使用 WTSRegisterSessionNotification 函数接收 WM_WTSSESSION_CHANGE 消息。您可以使用会话通知来跟踪桌面状态,以便了解是否可以与用户交互。

【讨论】:

【参考方案2】:

你在MSDN documentation of LockWorkstation API读到过这个:

没有可以调用的函数 判断工作站是否 锁定。何时收到通知 用户登录,使用 WTSRegisterSessionNotification 接收函数 WM_WTSSESSION_CHANGE 消息。

【讨论】:

以上是关于vb 检测某个进程是不是运行的主要内容,如果未能解决你的问题,请参考以下文章

检测客户端机器上是不是安装了 WebView2 (VB.NET)

检测进程是不是仍在运行

如何检测节点生成的进程是不是仍在运行?

vb,如何检测一个链接是不是有效

如何检测一个进程是不是已经执行完毕

使用vb.net保存数据时如何检测是不是有相同的单词