![]() |
Fenster sortieren?
Mit der EnumWindowsProc lese ich bestimmte fenster aus.
Mein Problem ist nur, dass ich diese Fenster gerne in der Reihenfolge wie sie erstellt wurden, auslesen möchte. Jedoch habe ich keine Ahnung wie man die Reihenfolge der Erstellungen heraus findet. Ich habe an PID gedacht, musste aber im Taskmanager festestellen, dass auch diese Angaben ungenau sind. Kann mir jemand helfen? |
Re: Fenster sortieren?
Ini-Datei verwenden. :mrgreen:
|
Re: Fenster sortieren?
Huh? Ini-Datei?
Ich muss doch erstmal wissen wie ich auslese in welcher reihenfolge die Fenster erstellt wurden. oô? |
Re: Fenster sortieren?
Die werden erstellt, oder ? Dann kann man die in dieser Reihenfolge auch in INI schreiben und wieder aus der Datei auslesen und fertig. Dürfte allerdings zu einfach sein. :mrgreen:
|
Re: Fenster sortieren?
Ja, aber nicht von mir. Ich rede ja von allgemeinen Fenstern, anderen Programmen. Keine die ich selbst erstelle.
|
Re: Fenster sortieren?
Also mit der folgenden Funktion kannst du mal die Startzeit ermitteln :)
Delphi-Quellcode:
EDIT:
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') ) ); Zitat:
EDIT2: Ein kleiner Fehler wurde behoben MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz