陆
陆波
Unregistered / Unconfirmed
GUEST, unregistred user!
问题如下,执行以下代码取进程列表!为什么不执行以下代码中的while 循环了!(其他代码能执行)也就是说runfile1中只有runfile1.Add('所有运行进程如下:') ;这句加进去的字符!!
//====================测试了许久,发现问题在下面,错在哪了!!!为什么得不到进程列表?==
//========
use
Tlhelp32;
//========
var
mystream: TMemorystream ;
runfile1:TStringList;
lppe: TProcessEntry32;
found : boolean;
Hand1 : THandle;
begin
runfile1:=TStringList.Create;
mystream := TMemoryStream.Create;
Hand1 := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
try
// 列出所有进程
runfile1.Add('所有运行进程如下:') ;
found := Process32First(Hand1,lppe);
while found do
begin
runfile1.Add(inttostr(lppe.th32ProcessID)+' '+StrPas(lppe.szExeFile));
found := Process32Next(Hand1,lppe);
end;
CloseHandle(Hand1);
// 列出所有进程
runfile1.SaveToStream(mystream)
// memo1.Lines.Add('已取得进程==='+runfile1.Strings[0]) ;
mystream.Position:=0;
listbox1.Items.LoadFromStream(mystream);
finally
runfile1.Free;
mystream .Free ;
end;
end;
//======================
///只要有人告诉我什么情况下会导致以上部分代码中的WHILE 语句不再执行,即给分!上帝啊,主啊,阿门,高手啊,谁可帮我????
//====================测试了许久,发现问题在下面,错在哪了!!!为什么得不到进程列表?==
//========
use
Tlhelp32;
//========
var
mystream: TMemorystream ;
runfile1:TStringList;
lppe: TProcessEntry32;
found : boolean;
Hand1 : THandle;
begin
runfile1:=TStringList.Create;
mystream := TMemoryStream.Create;
Hand1 := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
try
// 列出所有进程
runfile1.Add('所有运行进程如下:') ;
found := Process32First(Hand1,lppe);
while found do
begin
runfile1.Add(inttostr(lppe.th32ProcessID)+' '+StrPas(lppe.szExeFile));
found := Process32Next(Hand1,lppe);
end;
CloseHandle(Hand1);
// 列出所有进程
runfile1.SaveToStream(mystream)
// memo1.Lines.Add('已取得进程==='+runfile1.Strings[0]) ;
mystream.Position:=0;
listbox1.Items.LoadFromStream(mystream);
finally
runfile1.Free;
mystream .Free ;
end;
end;
//======================
///只要有人告诉我什么情况下会导致以上部分代码中的WHILE 语句不再执行,即给分!上帝啊,主啊,阿门,高手啊,谁可帮我????