Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   WindowHandle des Fensters in dem der Kurser blinkt ermtteln? (https://www.delphipraxis.net/117097-windowhandle-des-fensters-dem-der-kurser-blinkt-ermtteln.html)

SimStar001 11. Jul 2008 13:30


WindowHandle des Fensters in dem der Kurser blinkt ermtteln?
 
Hallo, gibt es irgendeine Möglichkeit das Fensterhandle zu ermitteln in dem gerade der Mauskurser blinkt, bzw aktiv ist!?

Luckie 11. Jul 2008 13:33

Re: WindowHandle des Fensters in dem der Kurser blinkt ermtt
 
Guck dir mal MSDN-Library durchsuchenGetForegroundWindow an.

SimStar001 11. Jul 2008 13:42

Re: WindowHandle des Fensters in dem der Kurser blinkt ermtt
 
Delphi-Quellcode:
Handle2 := GetForegroundWindow();
habs jetzt so gemacht, aber das scheint immer noch net das richtige fensterhandle zu sein

ich übergebe dann auch noch text...
Delphi-Quellcode:
sendMessage(Handle2, WM_SETTEXT, 0, Integer(Pchar('TEST')));
aber es wird nicht angenommen, daher gehe ich von aus dass es das falsche handle ist...

Luckie 11. Jul 2008 14:05

Re: WindowHandle des Fensters in dem der Kurser blinkt ermtt
 
Kann sein, dass es nur das Handle des aktiven Toplevel Fensters ist. aber benutzt doch bitte mal die Suche, das haben wir, glaube ich, schon mal gehabt.

toms 11. Jul 2008 14:07

Re: WindowHandle des Fensters in dem der Kurser blinkt ermtt
 
Somit kann das Control mit dem Focus systemweit ermittelt werden:

Delphi-Quellcode:
function GetSysFocus: Integer;
var
  hFgWin, FgThreadID, hFocusWin: Integer;
begin
  hFgWin := GetForegroundWindow;
  FgThreadID := GetWindowThreadProcessID(hFgWin, nil);
  if AttachThreadInput(GetCurrentThreadID, FgThreadID, True) then
  begin
    hFocusWin := GetFocus;
    Result := GetFocus;
    AttachThreadInput(GetCurrentThreadID, FgThreadID, False);
  end
  else
    Result := GetFocus;
end;

SirThornberry 11. Jul 2008 15:10

Re: WindowHandle des Fensters in dem der Kurser blinkt ermtt
 
Zitat:

Zitat von SimStar001
Hallo, gibt es irgendeine Möglichkeit das Fensterhandle zu ermitteln in dem gerade der Mauskurser blinkt, bzw aktiv ist!?

Der Mauscursor blinkt bei dir? Und ist der Mauscursor dann nicht nur über einem Fenster?
Oder meinst du den Eingabefocus?

Wenn du an das Fenster mit dem Eingabefocus einen Text senden willst genügt es doch einfach Tastendrücke zu simulieren. Da braucht man sich nicht den Aufwand machen erst nach dem Handle des aktiven Fensters zu suchen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 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