Thema: Delphi Fenster sortieren?

Einzelnen Beitrag anzeigen

mr_emre_d
(Gast)

n/a Beiträge
 
#6

Re: Fenster sortieren?

  Alt 2. Feb 2009, 04:44
Also mit der folgenden Funktion kannst du mal die Startzeit ermitteln

Delphi-Quellcode:
uses tlHelp32;

...

function GetProcessTime( ProcessName: String ): TDateTime;
var
  hProc, b: Cardinal;
  CT, T: TFileTime;
  ST: TSystemTime;
  tzi: TTimeZoneInformation;
  function GetProcID(const lpName: String): Cardinal;
  var
    hSnapShot: LongWord;
    Task: TProcessEntry32;
  begin
    Result := 0;
    hSnapShot := CreateToolHelp32SnapShot( TH32CS_SNAPPROCESS, TH32CS_SNAPALL );
    FillChar( Task, SizeOf(Task), #00 );
    Task.dwSize := SizeOf(Task);
    Process32First( hSnapShot, Task );
    repeat
      if LowerCase(Task.szExeFile) = LowerCase(lpName) then
      begin
        Result := Task.th32ProcessID;
        CloseHandle( hSnapShot );
        Exit;
      end;
    until not Process32Next( hSnapShot, Task );
    CloseHandle( hSnapShot );
  end;
begin
  try
    b := GetProcID( pChar(Processname) );
    hProc := OpenProcess( PROCESS_QUERY_INFORMATION, False, b );
    if hProc = 0 then
      Exit;
    GetProcessTimes( hProc, CT, T, T, T );
    FileTimeToSystemTime( CT, ST );
    GetTimeZoneInformation( tzi );
    SystemTimeToTzSpecificLocalTime( @tzi, st, st );
    Result := StrToTime(Format( '%d:%d:%d', [ ST.wHour, ST.wMinute, ST.wSecond] ) );
  finally
    CloseHandle( hProc );
  end;
end;

...

//Aufrufmöglichkeit
ShowMessage( TimeToStr( GetProcessTime('explorer.exe') ) );
EDIT:
Zitat von Jonas:
Mein Problem ist nur, dass ich diese Fenster gerne in der Reihenfolge wie sie erstellt wurden, auslesen möchte.
Nun ja ... So dürfte das nicht gehen aber wenn du sie samt der CreationTime speicherst könntest du sie nachher sortieren !

EDIT2:
Ein kleiner Fehler wurde behoben

MfG
  Mit Zitat antworten Zitat