cmd如何判断程序是否运行?

cmd如何判断程序是否运行?,第1张

cmd是 command的缩写.即 命令提示符(CMD),是在OS / 2 , Windows CE与Windows NT平台为基础的 *** 作系统(包括Windows 2000和XP中, Vista中,和Server 2003 )下的“MS-DOS 方式”。中文版Windows XP 中的命令提示符进一步提高了与DOS 下 *** 作命令的兼容性,用户可以在命令提示符直接毁伏厅输入中文调用文件。

asklist >a.txt<回车>type a.txt | find /i "%进程名%" &&goto b<回车>第一句是将当前进厅晌程保存到文件,第二句是检测进程是否运行,是否跳转到B处运行。

tasklist /nh>d:\1.txt   find /i "QQ.exe" d:\1.txt if ERRORLEVEL 1 ("C:\software\Tencent\qq\QQQ.exe" ) else (exit)      意纤隐思是检测"QQ.EXE"有没有在进程里,大家都知道QQ打开后进程名是"QQ.EXE"如果有在进程里则执行"EXIT"退出,如果没有在进程里,说明QQ没有打开,则运行QQ程序"C:\software\Tencent\qq\QQQ.exe"       第二种写法     tasklist /nh|find /i "QQ.exe" if ERRORLEVEL 1 ("C:\software\Tencent\qq\QQQ.exe") else (exit)

这个需要超级模块

.版本 2

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击

.子程序 __启动窗口_创建完毕

时钟1.时钟周期 = 100

.子程序 _时钟1_周期事态缺件

.判断开始 (进程郑局是否存在 (“zmmzdd.exe”))

编辑框1.内容 = “程序已运行”

.默帆丛辩认

编辑框1.内容 = “程序未运行”

.判断结束

.子程序 _编辑框1_内容被改变

zmmzdd.exe是要检测进程的程序。

有几种方法

1.根据窗口名称判断

Option

ExplicitPrivate

Declare

Function

FindWindow

Lib

"user32"

Alias

"FindWindowA"

(ByVal

lpClassName

As

String,

ByVal

lpWindowName

As

String)

As

LongPrivate

Sub

Command1_Click()

Dim

lngWindow

As

Long

lngWindow

=

FindWindow(vbNullString,

"文档1

-

Microsoft

Word")

If

lngWindow

<>

0

Then

MsgBox

"Word已运行"

End

IfEnd

Sub2.最好散卖的办法是根据类名判断,但是要预先知道窗口类名

比如Word类名:OpusApp

Excel类名:XLMAIN

PPT2010类名:PP12FrameClass

PPT2007类名:PP11FrameClass

PPT2003类名:PP10FrameClass'声明必要的念掘团

API

Private

Declare

Function

FindWindow

Lib

"user32"

Alias

_

"FindWindowA"

(ByVal

lpClassName

As

String,

_

ByVal

lpWindowName

As

Long)

As

LongPrivate

Declare

Function

SendMessage

Lib

"user32"

Alias

"SendMessageA"

(ByVal

hWnd

As

Long,

ByVal

wMsg

As

Long,

ByVal

wParam

As

Long,

ByVal

lParam

As

Long)

As

Long'检测Word是否运行

Private

Sub

DetectWord()

Dim

hWnd

As

Long

'如果

Word在运行,则该

API

调用将返回其句柄。

hWnd

=

FindWindow("OpusApp",

0)

If

hWnd

=

0

Then

'0

表示没有

Word在运行。

MsgBox

Word没有运行!"

Else

MsgBox

Word已经运行!"

End

If

End

Sub3.检测进程名Const

TH32CS_SNAPHEAPLIST

=

&H1

Const

TH32CS_SNAPPROCESS

=

&H2仔橘

Const

TH32CS_SNAPTHREAD

=

&H4

Const

TH32CS_SNAPMODULE

=

&H8

Const

TH32CS_SNAPALL

=

(TH32CS_SNAPHEAPLIST

Or

TH32CS_SNAPPROCESS

Or

TH32CS_SNAPTHREAD

Or

TH32CS_SNAPMODULE)

Const

TH32CS_INHERIT

=

&H80000000

Const

MAX_PATH

As

Integer

=

260

Private

Type

PROCESSENTRY32

dwSize

As

Long

cntUsage

As

Long

th32ProcessID

As

Long

th32DefaultHeapID

As

Long

th32ModuleID

As

Long

cntThreads

As

Long

th32ParentProcessID

As

Long

pcPriClassBase

As

Long

dwFlags

As

Long

szExeFile

As

String

*

MAX_PATH

End

Type

Private

Declare

Function

CreateToolhelp32Snapshot

Lib

"kernel32"

(ByVal

lFlags

As

Long,

ByVal

lProcessID

As

Long)

As

Long

Private

Declare

Function

Process32First

Lib

"kernel32"

(ByVal

hSnapShot

As

Long,

uProcess

As

PROCESSENTRY32)

As

Long

Private

Declare

Function

Process32Next

Lib

"kernel32"

(ByVal

hSnapShot

As

Long,

uProcess

As

PROCESSENTRY32)

As

Long

Private

Declare

Sub

ExitProcess

Lib

"kernel32"

(ByVal

uExitCode

As

Long)

Private

Declare

Function

GetExitCodeProcess

Lib

"kernel32"

(ByVal

hProcess

As

Long,

lpExitCode

As

Long)

As

Long

Function

exitproc(ByVal

exefile

As

String)

As

Boolean

exitproc

=

False

Dim

hSnapShot

As

Long,

uProcess

As

PROCESSENTRY32

hSnapShot

=

CreateToolhelp32Snapshot(TH32CS_SNAPALL,

0&)

uProcess.dwSize

=

Len(uProcess)

r

=

Process32First(hSnapShot,

uProcess)

Do

While

r

If

Left$(uProcess.szExeFile,

IIf(InStr(1,

uProcess.szExeFile,

Chr$(0))

>

0,

InStr(1,

uProcess.szExeFile,

Chr$(0))

-

1,

0))

=

exefile

Then

exitproc

=

True

Exit

Do

End

If

r

=

Process32Next(hSnapShot,

uProcess)

Loop

End

Function

Private

Sub

Command1_Click()

If

exitproc("winword.exe")

=

True

Then

MsgBox

"Word已经运行!"

Else

MsgBox

"Word没有运行!"

End

If

End

Sub


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8283774.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存