根据进程名称关闭进程function KillTask(ExeFileName: string): Integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
哪位能给我讲一下,这段代码?
qq:44665376
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
哪位能给我讲一下,这段代码?
qq:44665376
解决方案 »
- 有个循环有问题查不出,请教大家
- 怎样通过代码创建 database desktop 数据库表,并动态创建字段名?
- 两个数据库之间得同步如何使它更完美
- 想做个自动更改本地ip并进行投票的小程序,不知道有没有大哥能给点知道,不胜感激
- 加密、解密数据库MDB数据库??
- 利用 TMediaPlayer 多线程播放.同时播放多个文件.
- 如何取窗口的句柄,请前辈们指教,谢谢
- 一个DELPHI和SQL SERVER 的问题--------超级简单!
- 动态生成一个IMAGE控键,怎样把IMAGE中的图片保存在数据库中,
- 各位大侠,怎样获得可用分???
- delphi的API函数问题
- Pascal for循环习题算法求解!!!!10分相赠!!
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
//CreateToolhelp32Snapshot创建进程的映射
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
//Process32First读取第一个进程信息,并把它保存到FProcessEntry32
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); //如果找到进程,则继续
while Integer(ContinueLoop) < > 0 do
begin
//根据要结束的进程名与当前FProcessEntry32结构里的名称比较,如果匹配
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
//TerminateProcess根据FProcessEntry32.th32ProcessID结束进程
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
0));
//Process32Next找下一个进程,如果找不到则返回0,退出循环
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
//释放资源
CloseHandle(FSnapshotHandle);
end;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
这些代码有些不明白?也找不到资料?
FProcessEntry32: TProcessEntry32;
这两句是什么意思呀,谁能帮解释一下?
FProcessEntry32: TProcessEntry32;
这两句是什么意思呀,谁能帮解释一下?
FProcessEntry32: TProcessEntry32;
这两句是什么意思呀,谁能帮解释
> 这些代码有些不明白?也找不到资料?WIN32 API中有一些是作为结构的数据,传入前需要填写一些数据域,如上面的dwSize,就指该结构的大小(字节数)。> function KillTask(ExeFileName: string): Integer;
> FProcessEntry32: TProcessEntry32;
> 这两句是什么意思呀,谁能帮解释一下?第一句是Delphi中定义函数的语法。
第二句是定义变量的语法。
看一下Delphi的教程,都有。