AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Applicationhandle eines Fensters ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Applicationhandle eines Fensters ermitteln

Ein Thema von VizeTE · begonnen am 25. Jul 2006 · letzter Beitrag vom 26. Jul 2006
Antwort Antwort
Seite 2 von 2     12   
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
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#12

Re: Applicationhandle eines Fensters ermitteln

  Alt 26. Jul 2006, 02:25
Neues Projekt erstellen, einen Timer darauf machen, diesen Code rein:

Delphi-Quellcode:
var
  AForegroundPID : dword;
  AMyWindow : boolean;
begin
  getWindowThreadProcessId(GetForegroundWindow, AForegroundPID);
  AMyWindow := AForegroundPID = getCurrentProcessId;
  caption:= inttostr( integer( amywindow));
end;
und funktioniert doch wunderbar = ?
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
VizeTE

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

Re: Applicationhandle eines Fensters ermitteln

  Alt 26. Jul 2006, 10:02
Stimmt, funktioniert unter Delphi7 einwandfrei. Unter Delphi5 bekomme ich aber die Fehlermeldung: "Inkompatible Typen: Cardinal und Pointer"
(Hätte wohl gleich dazuschreiben sollen das es sich um D5 handelt, sorry)
  Mit Zitat antworten Zitat
VizeTE

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

Re: Applicationhandle eines Fensters ermitteln

  Alt 26. Jul 2006, 11:05
juhuuu...ich glaube ich habs

Delphi-Quellcode:
var
  AForegroundPID : dword;
  AMyWindow : boolean;
begin
  AForegroundPID := 0;
  getWindowThreadProcessId(GetForegroundWindow, @AForegroundPID);
  AMyWindow := AForegroundPID = getCurrentProcessId;
  caption := BoolToStr(AMyWindow);
end;
Mit dem @-Operator funktionierts auch unter Delphi5.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz