Hi,
Ich lese mit folgenden Code die aktuellen Windows Prozesse und ihr Prozessor ID aus, und speichere diese in einer HTML Datei. Nun möchte ich bei jedem Prozess dessen Icon, falls vorhanden in eine Datei speichern.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| procedure TFRM_Main.TMR_MainTimerTimer(Sender: TObject); var pdwResult : PDWORD; pdwWork : PDWORD; dwCountIn : DWORD; dwCountOut : DWORD; i, vPID: integer;
begin dwCountOut := 0; dwCountIn := 1024; pdwResult := AllocMem(dwCountIn); try if not EnumProcesses(pdwResult,dwCountIn,dwCountOut) then begin ShowMessage(SysErrorMessage(GetLastError)); end else begin pdwWork := pdwResult; MMO_Processes.Clear;
for i := 1 to (dwCountOut shr 2) do begin if (GetProcessName(pdwWork^) <> '') then begin vPID:=pdwWork^; MMO_Processes.Lines.Add(GetProcessName(vPID)); MMO_Processes.Lines.Add(IntToStr(vPID); end; inc(pdwWork); end;
MMO_Processes.Lines.SaveToFile(FRM_Settings.EDT_ExecuteDir.Text+'\processes.htm');
end; finally FreeMem(pdwResult,dwCountIn); end;
end; |
Wie ich ein Icon in ein TImage lade, das weis ich.
Delphi-Quelltext
1: 2: 3: 4:
| [...] SHGetFileInfo(PChar(Datei), 0, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_LARGEICON or SHGFI_TYPENAME); IMG.Picture.Icon.Handle := FileInfo.hIcon; [...] |
Wie kann ich nun anstatt das Icon an TImage zu senden als datei speichern?
Am besten ohne es vorher an TImage zu senden.
Moderiert von
Motzi: Topic verschoben