打印

winme里如何获取当前windows进程?

winme里如何获取当前windows进程?

我的目的是想让Delhi程序知道当前时刻某个应用程序是否启动,在2000或XP下,我可以使用一个进程查询函数获取这个信息,但是在Winme下,这个函数不好使,因为它不认识我输入的参数——也就是可执行程序名称。
在2000或Xp下,我用三个热键的执行结果可以给出一个当前windows进程列表,这个列表都是给出可执行程序名称——可以作为上面说的那个函数的参数;但是在winme下,用三个热键的执行结果如同98一样,只能出来一个当前windows任务列表,并不显示可执行程序的exe名称,而是一些个程序描述。不知道我能不能获取这个当前任务信息,如何获得,或者能够象在2000下一样,通过识别进程来判断。

不知各位大侠有没有好的解决方案?这个问题已经困扰我好多天了,急盼!
谢谢!

TOP

我把这段程序也贴上来吧,希望大侠能帮忙

uses
TLHelp32, WinInet, Registry, StrUtils;



function FindProcess(ExeName: string): Boolean; //检测应用程序是否被windows运行
var
Found: Boolean;
Hand: THandle;
pe32: TProcessEntry32;
begin
Hand := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
Found := Process32First(Hand, pe32);
while Found do
begin
if Pos(StrPas(pe32.szExeFile), ExeName) > 0 then
begin
Result := True;
Exit;
end
else
Found := Process32Next(Hand, pe32);
end;
Result := False;
end;

很明显,上述程序的核心在于采用了 Process32First和Process32Next两个windows函数,我怀疑这两个函数只是针对2000或XP的,在winme下是否改变了这个名称,如果是这样的,那又是什么名称?但是,由于对于windows编程不太熟悉,不敢确认。

TOP