Forum: Programmieren allgemein
by KodeZwerg,
8. Jul 2018
procedure MySetForegroundWindow(Wnd: HWND);
var
Attached: Boolean;
ThreadId: DWORD;
FgWindow: HWND;
AttachTo: DWORD;
begin
{ Emils Rezept verlangt
GetForegroundWindow
GetWindowThreadProcessId
Forum: Programmieren allgemein
by KodeZwerg,
8. Jul 2018
Okay ich sehe meinen Fehler ein das diese Methode nicht 100% akkurat arbeitet, ich hätte es tiefer testen sollen, bei mir kam nur TC und WindowsExplorer bis jetzt in Frage da ichs in der Autostart-Abteilung verarbeitet habe. Nun dank dieses Buttons kann ich auch das testen.
procedure TForm1.btn1Click(Sender: TObject);
var
oldHWND: HWND;
begin
Hide;
if GetParent(GetForegroundWindow) =...
Forum: Programmieren allgemein
by KodeZwerg,
8. Jul 2018
Hab eine funktionierende Variante geupdatet. Man könnte noch einen Test einfügen ob man DesktopHandle erwischt hat aber ansonsten macht es alles was der TE wollte.
Bitte teste und überzeuge Dich selbst, Danke.
edit
GetParent stellt sicher das ich kein Control erwische sondern ein Fensterhandle.
Forum: Programmieren allgemein
by KodeZwerg,
7. Jul 2018
Also das mit dem ermitteln ist ein klacks.
if GetParent(GetForegroundWindow) = 0 then lHwnd := GetForegroundWindow else lHwnd := GetParent(GetForegroundWindow);
.
Diese Zeile in .dpr gleich hinter begin einfügen.
In der MainForm das hier einfügen
var
FormX: TFormX;
lHwnd: HWND;
...