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.