![]() |
AW: FindWindow von Pfad
Liste der Anhänge anzeigen (Anzahl: 1)
Geht es nur darum, zu einem einzelnen, festgelegten Programm den aktuellen Fenstertitel zu ermitteln, insofern dieses Programm gestartet worden ist ? Dann geht das auch wesentlich direkter, also ohne aufwändiges Filtern diverser Listen:
Code:
Kompletter Code im Anhang.
procedure TForm1.Button1Click(Sender: TObject);
var PID: DWORD; ExePath: string; EnumInfo: TEnumInfo; begin // vor dem ButtonClick ein Explorerfenster öffnen // oder hier ein anderes Programm eintragen und starten ExePath := 'C:\WINXP\Explorer.exe'; PID := PathToPid(ExePath); if PID = 0 then begin ShowMessage(Exepath + #13#10'Process not found!'); exit; end; EnumInfo := FindMainWindow(PID); with EnumInfo do ShowMessage(format('Exe: %s'#13#10 + 'ProcessID: %d'#13#10 + 'Window Handle: %d'#13#10 + 'Window Class Name: %s'#13#10 + 'Window Title: "%s"', [ExePath, ProcessID, WindowHandle, ClassName, WindowTitle])); end; Komplizierter wird es allerdings etwas, wenn gleichzeitig mehrere Instanzen desselben Programms geladen sein sollten, da diese dann natürlich alle unterschiedliche PIDs und unterschiedliche Fensterhandles haben, wobei jede Instanz auch ihren eigenen Titel im sichtbaren Fenster aufweist. |
AW: FindWindow von Pfad
Zitat:
Bei mir kommen dann diese Fehlermeldungen.
Delphi-Quellcode:
[Fehler] Unit1.pas(91): Undefinierter Bezeichner: 'TEnumInfo'
[Fehler] Unit1.pas(97): Undefinierter Bezeichner: 'PathToPid' [Fehler] Unit1.pas(103): Undefinierter Bezeichner: 'FindMainWindow' [Fehler] Unit1.pas(109): Undefinierter Bezeichner: 'ProcessID' [Fehler] Unit1.pas(109): Undefinierter Bezeichner: 'WindowTitle' [Fehler] Unit1.pas(112): '.' erwartet, aber ';' gefunden [Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
AW: FindWindow von Pfad
Ja, das wird bestimmt funktionieren,
nur wirst du dir erstmal die fehlenden Funktionen und Definitionen suchen müssen. Angefangen mit ![]() Hatte auf die Schnelle ein FindMainWindow gefunden, welches zwar einen DWORD, anstatt TEnumInfo zurückgibt, aber wenn man genau hinguckt, wird intern nur ein Teil des TEnumInfo ans Result weitergegeben ... odrt kann man es so umbauen, daß das gesamte TEnumInfo ins Result wanders. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 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-2025 by Thomas Breitkreuz