查找、终止进程

/查找进程
Function Long CreateToolhelp32Snapshot(Long Flags, Long ProcessId) Library "kernel32.dll"
Function Integer Process32First(ULong Snapshot, Ref s_Process Process) Library "kernel32.dll" //ALIAS FOR "Process32First;ansi" 
Function Integer Process32Next(ULong Snapshot, Ref s_Process Process) Library "kernel32.dll" //ALIAS FOR "Process32Next;ansi" 
//结束进程
Function ULong TerminateProcess(ULong hProcess, ULong uExitCode) Library "kernel32.dll"
Function ULong OpenProcess(ULong dwDesiredAccess, ULong bInheritHandle, ULong dwProcessId) Library "kernel32.dll"


type s_process from structure
unsignedlong structsize
unsignedlong usage
unsignedlong processid
unsignedlong defaultheapid
unsignedlong moduleid
unsignedlong threads
unsignedlong parentprocessid
unsignedlong classbase
unsignedlong flags
character filename[256]
end type


//--------------------------------------------------------------------
// 描述:枚举进程并返回指定进程号PID 
//--------------------------------------------------------------------
// 参数:
//  value string as_exename 可执行文件名称
//--------------------------------------------------------------------
// 返回:  unsignedlong
//--------------------------------------------------------------------
// 作者: ruic 日期: 2011.06.02
//====================================================================

s_Process lst_Process
String ls_filename[100] ,ls_curexename
ULong ln_ProcessID,ln_SameCount,ln_Snapshot,ln_Circle,ln_Count,ul_PID

ul_PID = 0
ln_Snapshot = CreateToolhelp32Snapshot(2,0)
//创建快照失败
IF (ln_Snapshot < 1) THEN RETURN 0
//创建快照失败 296是windows决定的
lst_Process.StructSize = 296

IF Process32First(ln_Snapshot,lst_Process) = 0 THEN RETURN 0

//枚举当前权限下的进程 

DO WHILE 1 = 1

IF Process32Next(ln_Snapshot,lst_Process) = 0 THEN EXIT
ln_Count = ln_Count + 1
ls_filename[ln_Count] = lst_Process.Filename

IF Lower(ls_filename[ln_Count]) = as_exename THEN
//取得进程号 
ul_PID = lst_Process.ProcessID
//MessageBox(string(ul_PID),ls_FileName[ln_Count]) 
END IF
LOOP

RETURN ul_PID




//====================================================================
// 事件: nvo_rc_function.of_killprocess()
//--------------------------------------------------------------------
// 描述:根据进程号结束一个进程
//--------------------------------------------------------------------
// 参数:
//  value unsignedlong ul_pid 进程号
//--------------------------------------------------------------------
// 返回:  (none)
//--------------------------------------------------------------------
// 作者: ruic 日期: 2011.06.02
//====================================================================

Int li_rc
ULong PROCESS_TERMINATE = 0001
ULong hwdprocess

//获取指定进程号的进程句柄 
hwdprocess = OpenProcess(PROCESS_TERMINATE,1,ul_PID)
//MessageBox("提示",string(hwdprocess)) 

//结束进程,成功返回非零 
li_rc = TerminateProcess(hwdprocess,0)
IF li_rc = 0 THEN
MessageBox("提示",'结束进程失败!')
END IF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值