Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Programmfokus setzen per Process-ID (https://www.delphipraxis.net/128125-programmfokus-setzen-per-process-id.html)

Luckie 24. Jan 2009 23:48

Re: Programmfokus setzen per Process-ID
 
Man könnte es auch einfach sein lassn und den Benutzer entscheiden lassen, wann er das Programm im Vordergund haben will und wann nicht. ;)

64Jabor 25. Jan 2009 10:29

Re: Programmfokus setzen per Process-ID
 
Nicht ganz 8)
Ich habe mir einen Browser gemacht, der ein externe Downloadtool nutzt und dieses bedienen soll.
Das problem ist halt dass er mehrmals gestartet werden kann, das kriege ich unterbunden.

Nur wenn ich einen Knopf in meinem Browser drücke, da kann ich nie im Leben schnell genug reagieren und ins Download-Programm wechseln um meine automatisierten Vorgänge dort ablaufen zu lassen...
Also "muss" es mein Programm selbst machen.

Ich habe jetzt folgendes gefunden:

Delphi-Quellcode:
type
  PEnumInfo = ^TEnumInfo;
  TEnumInfo = record ProcessID: DWORD; HWND: THandle; end;
Delphi-Quellcode:
function EnumWindowsProc(Wnd: DWORD; var EI: TEnumInfo): Bool; stdcall;
    var
      PID: DWORD;
    begin
      GetWindowThreadProcessID(Wnd, @PID);
      Result := (PID <> EI.ProcessID) or (not IsWindowVisible(WND)) or (not IsWindowEnabled(WND));
      if not Result then EI.HWND := WND;
    end;

function FindMainWindow(PID: DWORD): DWORD;
    var
      EI: TEnumInfo;
    begin
      EI.ProcessID := PID;
      EI.HWND := 0;
      EnumWindows(@EnumWindowsProc, Integer(@EI));
      Result := EI.HWND;
    end;
Nun möchte ich per

Delphi-Quellcode:
SetForegroundWindow(FindMainWindow(DWORD(ProcID)));
das Programm in den Vordergrund holen, die ProcID vom Typ PCardinal habe
ich vorher der oben verklinkten Funktion von Luckie übergeben, aber es passiert nichts...
Könnte das an meinem 64-BIT OS liegen O.o


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 Uhr.
Seite 2 von 2     12   

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