delphi7无法读取新启动的进程

用delphi7读取系统进程,在本程序启动前的进程可以读取,在本程序启动后的进程则无法读取(比如本程序名为a.exe,在a.exe运行后在启动b.exe,则无法读取到b.... 用delphi7读取系统进程,在本程序启动前的进程可以读取,在本程序启动后的进程则无法读取(比如本程序名为a.exe,在a.exe运行后在启动b.exe,则无法读取到b.exe

读取的方法用的是CreateToolhelp32Snapshot

snap:THandle;
lppe:tprocessentry32;

snap:=CreateToolhelp32Snapshot(15,0);
lppe.dwSize:=SizeOf(lppe);
while Process32Next(snap,lppe) do
begin
lv:=ListView1.Items.Add;
lv.Caption:=lppe.szExeFile;
pid:=lppe.th32ProcessID;
end;
展开
 我来答
匿名用户
2016-05-16
展开全部
  电脑运行一段时间出现你说的问题,重启一下电脑就会好了,重启电脑是为了释放缓存,这不是一般的清理垃圾文件,这是正常的事情,加内存条可以延长时间,如果是CPU等硬件温度高引起的就休息会(可以反复这样做,有时CPU低、内存少、或操作时间长些会这样)。

  Win78最基本能运行是4G内存,XP是2G内存,好用些加倍,如果您用的不是这个数,建议加内存(这是实践得出的数,不是理论的数)。

  如果是操作什么卡引起的,你的电脑卡屏或死机的时候,你在电脑干什么呢,能说说吗?我会跟据你说的较为准确的回答你。
追问
不懂就不要瞎扯,最烦这种人
dodolon
2016-05-16 · TA获得超过7713个赞
知道大有可为答主
回答量:4477
采纳率:84%
帮助的人:2138万
展开全部
参考下面做
function GetFileNameFromHandle(Handle: hwnd):string;
var
PID: DWord;
aSnapShotHandle: THandle;
ContinueLoop: Boolean;
aProcessEntry32: TProcessEntry32;
begin
GetWindowThreadProcessID(Handle, @PID);
aSnapShotHandle := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
aProcessEntry32.dwSize := SizeOf(aProcessEntry32);
ContinueLoop := Process32First(aSnapShotHandle, aProcessEntry32);
while Integer(ContinueLoop) <> 0 do
begin
if aProcessEntry32.th32ProcessID = PID then
begin
result:=aProcessEntry32.szExeFile;
break;
end;
ContinueLoop := Process32Next(aSnapShotHandle, aProcessEntry32);
end;
CloseHandle(aSnapShotHandle);
end;
追问
不是API的问题,好像是控件的问题,listview无法显示最后一个数据
追答

没有问题啊

最后两个是运行程序后才启动的进程。

procedure TForm1.Button1Click(Sender: TObject);

var

  snap:THandle;

  lppe:tprocessentry32;

  lv: TlistItem;

  PID: DWord;

begin

   ListView1.Items.Clear;

   snap:=CreateToolhelp32Snapshot(15,0);

  lppe.dwSize:=SizeOf(lppe);

  while Process32Next(snap,lppe) do

        begin

                 lv:=ListView1.Items.Add;

                 lv.Caption:=lppe.szExeFile;

                 pid:=lppe.th32ProcessID;

        end;

end;

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式