
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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)