Hallo,
ich habe mal ein Frage, ist es irgendwie möglich ein Icon oder eine kleine Grafik von PB in ein anderes Windows Programm bzw. auf dessen Fenster zu ziehen.
Gruss Stefen
Drag&Drop in externes Fenster
- NicTheQuick
- Ein Admin
- Beiträge: 8820
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- NicTheQuick
- Ein Admin
- Beiträge: 8820
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Das geht so einfach nicht.
Dazu müsstest du Zugriffsrechte auf den Prozess des Spiels haben, dort das
richtige Fenster oder Unterfenster (Child) finden und dort mittels API ein
Gadget plazieren, dass dir dein Bild anzeigt. Wenn das Spiel mit DirectX oder
OpenGL läuft, wird das ganze allerdings noch komplizierter.
Was mir gerade einfällt, wäre auch folgendes:
Du erstellt ein neues Borderless-Fenster, das nur dieses Icon anzeigt und das
plazierst du dann über dem Spielefenster. Mittels 'EnumWindow_()' oder 'FindWindow_()' kannst du ja das entsprechenden Spielefenster finden und
die Koordinaten auslesen. Dann setzt du dein Borderless-Window einfach
ontop, solange das zugehörige Spielefenster-Handle gleich
'GetForegroundWindow_()' ist, sonst setzt du es normal. Dabei musst du
natürlich beachten, dass du dein Borderless-Window auch mitverschieben
musst, wenn sich die Koordinaten des Spielefensters ändern.
Klingt kompliziert, ist aber wahrscheinlich gar nicht so schlimm. Mit
'WindowFromPoint_()' (oder so ähnlich) kriegt man auch schonmal schnell
das Fenster unterm Cursor.
Dazu müsstest du Zugriffsrechte auf den Prozess des Spiels haben, dort das
richtige Fenster oder Unterfenster (Child) finden und dort mittels API ein
Gadget plazieren, dass dir dein Bild anzeigt. Wenn das Spiel mit DirectX oder
OpenGL läuft, wird das ganze allerdings noch komplizierter.
Was mir gerade einfällt, wäre auch folgendes:
Du erstellt ein neues Borderless-Fenster, das nur dieses Icon anzeigt und das
plazierst du dann über dem Spielefenster. Mittels 'EnumWindow_()' oder 'FindWindow_()' kannst du ja das entsprechenden Spielefenster finden und
die Koordinaten auslesen. Dann setzt du dein Borderless-Window einfach
ontop, solange das zugehörige Spielefenster-Handle gleich
'GetForegroundWindow_()' ist, sonst setzt du es normal. Dabei musst du
natürlich beachten, dass du dein Borderless-Window auch mitverschieben
musst, wenn sich die Koordinaten des Spielefensters ändern.
Klingt kompliziert, ist aber wahrscheinlich gar nicht so schlimm. Mit
'WindowFromPoint_()' (oder so ähnlich) kriegt man auch schonmal schnell
das Fenster unterm Cursor.