Einzelnen Beitrag anzeigen

VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#11

Re: Applicationhandle eines Fensters ermitteln

  Alt 25. Jul 2006, 17:27
Zitat von Vjay:
Also wenn du prüfen willst ob das Fenster, dass vorher den Focus hatte zu deiner Anwendung gehört, machst du das am einfahcsten (meiner Meinung nach) über die Prozess ID.

Du holst dir mit getWindowThreadProcessId die Prozess Id und vergleichst diese mit der aktuellen ProzessId, sieht dann etwa so aus:

Delphi-Quellcode:
function getWindowPID( const h: integer): dword;
begin
 getWindowThreadProcessId( h, result);
end;

function gehoertFensterZuMir( const handle: integer): Boolean
begin
 result:= getWindowPID( handle) = getCurrentProcessid;
end;
Keine Ahnung ob ich das richtig mache...
Wenn ich versuche das alles so zu übernehmen:

Delphi-Quellcode:
  ...
var
  AForegroundPID : dword;
  AMyWindow : boolean;
begin
  getWindowThreadProcessId(GetForegroundWindow, AForegroundPID);
  AMyWindow := AForegroundPID = getCurrentProcessId;
  ...
Dann bekomme ich die Fehlermeldung "Inkompatible Typen: cardinal und pointer". (erste Zeile)

Na dann dachte ich mach ich halt ein Pointer draus:
Delphi-Quellcode:
  ...
var
  AForegroundPID : ^dword;
  AMyWindow : boolean;
begin
  getWindowThreadProcessId(GetForegroundWindow, AForegroundPID);
  AMyWindow := AForegroundPID^ = getCurrentProcessId;
  ...
Ich denke das hat ein oder zweimal funktioniert. Jetzt bekomme ich aber in der ersten Zeile eine Zugriffsverletztung. Ich glaube ich stell mich gerade ganz schön dumm an aber ich komm' nicht d'rauf.
  Mit Zitat antworten Zitat