小弟我怎么判断某个程序进程比如cutftp.exe是否打开。在进程中名字是CUTFTP.EXE,然后小弟我把它关闭

我如何判断某个程序进程比如cutftp.exe是否打开。在进程中名字是CUTFTP.EXE,然后我把它关闭。
谢谢

------解决方案--------------------
直接执行 taskkill /IM cutfpt.exe 即可,该进程不存在也没有关系。

------解决方案--------------------
windows 2000 你需要安装一下tool kit或者到服务器版上去直接复制一个叫 kill.exe 的文件
------解决方案--------------------
taskkill /IM cutfpt.exe
2000中不存在taskkill命令,或者你可以百度一下API关闭进程,使用API函数来关闭
------解决方案--------------------
2000 的话,缺省应该是有安装 WMI 的,那就用 WMI 来实现:

loWMI = GETOBJECT('winmgmts:')
loProcs = loWMI.ExecQuery('SELECT * FROM WIN32_PROCESS WHERE name="cutfpt.exe"')
FOR EACH loProc IN loProcs
loProc.Terminate()
EXIT
ENDFOR
loProcs = NULL
loWMI = NULL

------解决方案--------------------
VB code
Exit_ProFileName='cutfpt.exe ' && cutfpt.exe 为要结束的系统进程名称 
IF GetAllProcessID('Process_CurTable')
SELECT Pth32ProcessID INTO ARRAY Exit_id FROM Process_CurTable WHERE ALLTRIM(UPPER(PszExeFile))=UPPER(Exit_ProFileName)
IF ExitProcessId(Exit_id)
MESSAGEBOX('结束进程成功!',64,'信息提示')
ELSE
MESSAGEBOX('结束进程失败!',16,'信息提示')
ENDIF
ENDIF

* -------------------------------------
* 枚举当前所有进程
* -------------------------------------
FUNCTION GetAllProcessID ( lpProcTable )
lpProcTable = IIF(PARAMETERS()=1 AND TYPE([lpProcTable])=[C], lpProcTable, [AllProclists] )
DECLARE INTEGER CreateToolhelp32Snapshot IN kernel32 INTEGER lFlags, INTEGER lProcessID
DECLARE INTEGER Process32First IN kernel32 INTEGER hSnapShot, STRING @PROCESSENTRY32_uProcess
DECLARE INTEGER Process32Next IN kernel32 INTEGER hSnapShot, STRING @PROCESSENTRY32_uProcess
DECLARE INTEGER CloseHandle IN kernel32 INTEGER hObject
DECLARE INTEGER GetLastError IN kernel32

CREA CURSOR (lpProcTable) (PdwSize N(3), PcntUsage N(12), ;
Pth32ProcessID N(12), Pth32DefaultHeapID N(12), ;
Pth32ModuleID N(12), PcntThreads N(12), ;
Pth32ParentProcessID N(12), PpcPriClassBase N(3), ;
PdwFlags N(3), PszExeFile C(254) )
lnHand = 0
lnHand = CreateToolhelp32Snapshot(3,0)
IF lnHand>0
dwSize = Num2Dword(296)
cntUsage = Num2Dword(0)
th32ProcessID = Num2Dword(0)
th32DefaultHeapID = Num2Dword(0)
th32ModuleID = Num2Dword(0)
cntThreads = Num2Dword(0)
th32ParentProcessID = Num2Dword(0)
pcPriClassBase = Num2Dword(0)
dwFlags = Num2Dword(0)
szExeFile = REPLI(CHR(0), 260)
lcTitle = dwSize + cntUsage + th32ProcessID + th32DefaultHeapID ;
+ th32ModuleID + cntThreads + th32ParentProcessID ;
+ pcPriClassBase + dwFlags + szExeFile
IF Process32First(lnHand,@lcTitle) > 0  && 第一个进程是 kernel32.dll,没必要列出
DO WHILE Process32Next(lnHand,@lcTitle)> 0
INSERT INTO (lpProcTable) (PdwSize, PcntUsage, Pth32ProcessID, Pth32DefaultHeapID, ;
Pth32ModuleID, PcntThreads, Pth32ParentProcessID, ;
PpcPriClassBase, PdwFlags, PszExeFile) ;
VALUES ( ;
Dword2Num(SUBSTR(lcTitle, 1,4)), ;
Dword2Num(SUBSTR(lcTitle, 5,4)), ;
Dword2Num(SUBSTR(lcTitle, 9,4)), ;
Dword2Num(SUBSTR(lcTitle,13,4)), ;
Dword2Num(SUBSTR(lcTitle,17,4)), ;
Dword2Num(SUBSTR(lcTitle,21,4)), ;
Dword2Num(SUBSTR(lcTitle,25,4)), ;
Dword2Num(SUBSTR(lcTitle,29,4)), ;
Dword2Num(SUBSTR(lcTitle,33,4)), ;
SUBSTR(SUBSTR(lcTitle, 37), 1, AT(CHR(0),SUBSTR(lcTitle, 37))-1) )
ENDDO
ENDIF