潇
潇冉
Unregistered / Unconfirmed
GUEST, unregistred user!
第一个问题:一个很郁闷的事,进程的路径有3个很奇怪。
一个是smss.exe 提取的路径是SystemRoot/System32/smss.exe
一个是winlogon.exe 提取的路径是/??/C:/WINDOWS/SYSTEM32/winlogon.exe
一个是csrss 提取的路径是/??/C:/WINDOWS/SYSTEM32/csrss.exe
有什么办法可以判定一下吗?如果是这样的话,就改为系统目录+文件名
第二个问题就是:关于进程的图标问题,我用了一段代码结合我的进程代码
发现其有段不知道怎么弄 就是ImageList_AddIcon这个编译的时候总是出现
Undeclared identifier:"ImageList_AddIcon" 不知道为什么是缺少什么吗?
下面那段源代码 到底怎么样才可以正常编译呢?
遍历进程,得到每个进程的图标
//源代码
var Snap : THandle;
PPro : PProcessEntry32;
HAppICON : HICON;
I : integer;
begin
ImageList1.Clear;
ListView1.Items.Clear;
I := 1;
Snap := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS,0);
New(PPro);
PPro^.dwSize := SizeOf(TProcessEntry32);
if Process32First(Snap,PPro^) then begin
Repeat
New(aPP);
with ListView1.Items.Add do begin
HAppICON := ExtractIcon(Hinstance,PPro^.szExeFile,0);
if HAppICON = 0 then HAppICON := FICON;
Caption := PPro^.szExeFile;
SubItems.Add(Format('%x',[PPro^.th32ProcessID]));
SubItems.Add(Inttostr(PPro^.cntThreads));
SubItems.Add(Format('%x',[PPro^.th32ParentProcessID]));
SubItems.Add(Format('%x',[PPro^.pcPriClassBase]));
ImageIndex := ImageList_AddIcon(ImageList1.Handle,HAppICON);
Inc(i);
aPP^.ProcessID := PPro^.th32ProcessID;
aPP^.ListID := i;
aPP^.PathName := Caption;
Data := app;
end;
until NOT Process32Next(Snap,PPro^)
end;
Dispose(PPro);
CloseHandle(Snap);
end;
一个是smss.exe 提取的路径是SystemRoot/System32/smss.exe
一个是winlogon.exe 提取的路径是/??/C:/WINDOWS/SYSTEM32/winlogon.exe
一个是csrss 提取的路径是/??/C:/WINDOWS/SYSTEM32/csrss.exe
有什么办法可以判定一下吗?如果是这样的话,就改为系统目录+文件名
第二个问题就是:关于进程的图标问题,我用了一段代码结合我的进程代码
发现其有段不知道怎么弄 就是ImageList_AddIcon这个编译的时候总是出现
Undeclared identifier:"ImageList_AddIcon" 不知道为什么是缺少什么吗?
下面那段源代码 到底怎么样才可以正常编译呢?
遍历进程,得到每个进程的图标
//源代码
var Snap : THandle;
PPro : PProcessEntry32;
HAppICON : HICON;
I : integer;
begin
ImageList1.Clear;
ListView1.Items.Clear;
I := 1;
Snap := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS,0);
New(PPro);
PPro^.dwSize := SizeOf(TProcessEntry32);
if Process32First(Snap,PPro^) then begin
Repeat
New(aPP);
with ListView1.Items.Add do begin
HAppICON := ExtractIcon(Hinstance,PPro^.szExeFile,0);
if HAppICON = 0 then HAppICON := FICON;
Caption := PPro^.szExeFile;
SubItems.Add(Format('%x',[PPro^.th32ProcessID]));
SubItems.Add(Inttostr(PPro^.cntThreads));
SubItems.Add(Format('%x',[PPro^.th32ParentProcessID]));
SubItems.Add(Format('%x',[PPro^.pcPriClassBase]));
ImageIndex := ImageList_AddIcon(ImageList1.Handle,HAppICON);
Inc(i);
aPP^.ProcessID := PPro^.th32ProcessID;
aPP^.ListID := i;
aPP^.PathName := Caption;
Data := app;
end;
until NOT Process32Next(Snap,PPro^)
end;
Dispose(PPro);
CloseHandle(Snap);
end;