如何获取当前系统运行了哪些程序,类似与任务管理器(100分)

  • 主题发起人 主题发起人 大风
  • 开始时间 开始时间
得到当前Win95下,已执行的所有应用程序的文件名
(注意uses TLHelp32)
procedure TForm1.Button1Click(Sender: TObject);
var lppe: TProcessEntry32;
found : boolean;
Hand : THandle;
begin
Hand := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
found := Process32First(Hand,lppe);
while found do
begin
ListBox1.Items.Add(StrPas(lppe.szExeFile));
found := Process32Next(Hand,lppe);
end;
end;

 
 
请参见已答问题:<a href="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=91650">应用程序的文件名</a>
(唐晓峰的回答与“应用程序的文件名”的答案一模一样?! :(
 
如果我是提问者, 我一定把分数给唐晓峰而不会给littlegrass :D
(我提问时最讨厌的答案就是"请参见已答问题XXXX", 网的速度太慢, 哪有工夫
去找什么"已答问题"?)
 
可以下载离线阅读(12.1更新),可用SeaSky大虾,曹大虾送的阅读器,
或者用我送的全文检索器.
 
之所以这样回答,一是考虑提问者可能还不习惯看已答问题,这样帮助他们很快
找到答案,同时还可以看看其他大虾对问题的见解,有助他们善用本论坛;
二则考虑网络速度太慢,有了以上两位大虾的离线浏览,不用上网就能找到答案。

(我最讨厌的就是不懂礼貌的人,有看法可以Email to me,网络已经很慢了,
可不要再占用宝贵的资源哟!到此为止)
 
大家到这儿都有一个共同的目的---学习!
学来的内容当然可以交给别人了
没必要为了点分数而争论,相信
这也是斑竹的最终目的!
 
littlegrass消消火,别伤了和气!:-)
 
我试过,NT下好象有问题!
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,TLHelp32;

type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var lppe: TProcessEntry32;
found : boolean;
Hand : THandle;
begin
Hand := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
found := Process32First(Hand,lppe);
if found then
begin
ListBox1.Items.Add(StrPas(lppe.szExeFile));
found := Process32Next(Hand,lppe);
end
else ListBox1.Items.Add('not found');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

end.

结果是not found
 
ha !
Pegasus给我另外的例子,95,NT都有,大风,我给你几!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部