这种事也有,天啊,神仙来救我吧(在线等...)(100分)

  • 主题发起人 主题发起人 startzero
  • 开始时间 开始时间
S

startzero

Unregistered / Unconfirmed
GUEST, unregistred user!
//====================检索遍历进程找出要挂接的explorer.exe进程ID===============
function FindProcessName(proname:string):THandle;
var
lppe: tprocessentry32;
sshandle: thandle;
found: boolean;
begin
result:=0;
sshandle := createtoolhelp32snapshot(TH32CS_SNAPALL, 0);
found := process32first(sshandle, lppe);
while found do
begin
if ansiCompareText(ExtractFileName(lppe.szExefile),proname) = 0 then
begin
result:=lppe.th32ProcessID;
break;
end;
found := process32next(sshandle, lppe); {检索下一个进程}
end;
CloseHandle(sshandle);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
h,hprocess:hwnd;
begin
h:=FindProcessName('elementclient.exe');
hProcess:=openprocess(PROCESS_TERMINATE,FALSE,h);

edit1.Text:=inttostr(hprocess);   
//注意就这里了,没有这句,程序不执行。无法结束进程。
//一句无关紧要的东西,也能引响到代码,天啊,是不是我的D7要重装了,是不是坏了。

if TerminateProcess(hprocess,3838) then
showmessage('成功');
end;
 
有没高手在,谁遇到过。我装了RX与皮肤控件。是不是这个问题。
急急急。。。
 
都没人知道吗,谁帮我试下也好啊,55,把代码贴到你们机子上试下啊。告诉我是不是我装了控件的原因。还是说这代码哪里有问题。
 
沒關閉句柄
 
关闭句柄h,hprocess,看看还出错没?
 
天啊,神仙来救我吧,今天不是“3.8妇女节”吧?3838 从何而来啊?!
为啥不用 GetExitCodeThread 获得 ExitCode 涅?
 
试试下面代码
function FindProcessName(proname: string): THandle;
var
lppe: tprocessentry32;
sshandle: thandle;
found: boolean;
begin
result := 0;
sshandle := createtoolhelp32snapshot(TH32CS_SNAPALL, 0);
[red]lppe.dwSize := Sizeof(lppe);[/red]
found := process32first(sshandle, lppe);
while found do
begin
if ((UpperCase(ExtractFileName(lppe.szExeFile)) =
UpperCase(proname))
or (UpperCase(lppe.szExeFile) =
UpperCase(proname))) then
begin
result := lppe.th32ProcessID;
break;
end;
found := process32next(sshandle, lppe); {检索下一个进程}
end;
CloseHandle(sshandle);
end;
 
唉!
把 h,hprocess:hwnd; 定义为全局变两即可!

var
h,hprocess:THandle;

procedure TForm1.Button1Click(Sender: TObject);
begin
h:=FindProcessName('elementclient.exe');
 
多人接受答案了。
 
后退
顶部