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
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