sticky und Vista
-
- Beiträge: 107
- Registriert: 08.03.2009 16:08
sticky und Vista
Die sticky-Funktion (Fenster immer im Vordergrund) scheint unter Vista nicht zu funktionieren. Ist das wirklich so und wenn ja, gibt es Abhilfe?
Also bei mir funktioniert StickyWindows() einwandfrei.
Kannst du bitte deine PB-Version und eventuell deine Prozessorarchitektur (32-Bit oder 64-Bit Vista) angeben?
Möglicherweise wird bei dir StickyWindow() ja nie ausgeführt - etwa, wenn du den Befehl innerhalb diverser Schleifen oder If-Abfragen gesteckt hast, um es als bequeme Option für den Benutzer anzubieten. In diesem Falle poste doch bitte ein Stückchen Code.
Nüchtern überlegt: Sollte StickyWindow() unter Vista genrell nicht funktionieren hätte es schon Bug-Reporte gehagelt. Da ich diese aber nirgends sehe, bedeutet das im Umkehrschluss, dass der Fehler bei deinem Code oder deiner Windowsversion liegen muss. Richtig?
Kannst du bitte deine PB-Version und eventuell deine Prozessorarchitektur (32-Bit oder 64-Bit Vista) angeben?
Möglicherweise wird bei dir StickyWindow() ja nie ausgeführt - etwa, wenn du den Befehl innerhalb diverser Schleifen oder If-Abfragen gesteckt hast, um es als bequeme Option für den Benutzer anzubieten. In diesem Falle poste doch bitte ein Stückchen Code.
Nüchtern überlegt: Sollte StickyWindow() unter Vista genrell nicht funktionieren hätte es schon Bug-Reporte gehagelt. Da ich diese aber nirgends sehe, bedeutet das im Umkehrschluss, dass der Fehler bei deinem Code oder deiner Windowsversion liegen muss. Richtig?
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
-
- Beiträge: 107
- Registriert: 08.03.2009 16:08
Danke für die Antwort. Das Problem ist: Isch abe ga kein Vista .. Es geht um ein Programm, das errechnete Positionsdaten über ein Spiel im Vollbildmodus in ein kleines Fensterchen einblendet. Läuft bei mir unter XP einwandfrei, aber nicht bei einem Freund, der Vista hat:
Code: Alles auswählen
fenster = OpenWindow(#PB_Any, 1000,800, 160, 22,"", #PB_Window_BorderLess)
HideWindow(fenster,1) ; Unsichtbar machen
StickyWindow(fenster,1) ; Fenster immer Vordergrund
LoadFont(0, "Verdana", 13) ; Ausgabe groß
SetGadgetFont(#PB_Any, FontID(0))
;
;Position errechnen => position$
;
;Wenn Taste gedrückt (über Keylogger, der geht auch unter Vista, zeige Position):
HideWindow(fenster,0) ; 0 = sichbar machen
TextGadget(19, 1, 1, 200, 20, Position$)
;
;
Dieser Ansatz dürfte recht unsicher sein.
Ich glaube zu wissen, was du meinst.
Mir passierte das mit AntiVir-Updater, der sich mitten in einem Vollbildspiel in den Vordergrund drängelte. Der Updater läuft ja auch im Sticky-Modus.
Eigene Versuche, damals unter XP, ein Sticky-Window noch vor ein Villbild zu bringen, scheiterten bei mir aber. Ich denke daher, dass sowas erst gar nicht vorgesehen ist und bei dir nur durch Zufall funktioniert.
Ist das Vollbildprogramm denn in PB geschrieben? In diesem Fall öffnest du dein Vollbildspiel nicht in einem OpenScreen(), sondern in einem OpenWindowedScreen(), in einem maximierten OpenWindow() mit dem #PB_Window_Borderless-Flag und machst es auch Sticky.
In diesem Fall wären dann der simulierte Vollbidmoudus und dein kleines Extrafenster beide Fenster, die mit dem Sticky-Attribut wie gewünscht übereinander angezeigt werden können.
Der richtige Ansatz dürfte jedoch sein, sich in den Vollbildmodus "einzumischen" und darauf herumzumalen. Entsprechende Versuche gibt es bereits.
Ich glaube zu wissen, was du meinst.
Mir passierte das mit AntiVir-Updater, der sich mitten in einem Vollbildspiel in den Vordergrund drängelte. Der Updater läuft ja auch im Sticky-Modus.
Eigene Versuche, damals unter XP, ein Sticky-Window noch vor ein Villbild zu bringen, scheiterten bei mir aber. Ich denke daher, dass sowas erst gar nicht vorgesehen ist und bei dir nur durch Zufall funktioniert.
Ist das Vollbildprogramm denn in PB geschrieben? In diesem Fall öffnest du dein Vollbildspiel nicht in einem OpenScreen(), sondern in einem OpenWindowedScreen(), in einem maximierten OpenWindow() mit dem #PB_Window_Borderless-Flag und machst es auch Sticky.
In diesem Fall wären dann der simulierte Vollbidmoudus und dein kleines Extrafenster beide Fenster, die mit dem Sticky-Attribut wie gewünscht übereinander angezeigt werden können.
Der richtige Ansatz dürfte jedoch sein, sich in den Vollbildmodus "einzumischen" und darauf herumzumalen. Entsprechende Versuche gibt es bereits.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Welches Spiel ? Vielleicht ist da schon der Hund begraben, dass es unter Vista nicht geht. (Evt. für XP die 32 und Vista die 64 Bit Version ?)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
-
- Beiträge: 107
- Registriert: 08.03.2009 16:08
Das wäre ja dumm.
Mit der Grafikeinbblendung hatte ich es auch schon probiert:
http://www.purebasic.fr/german/viewtopi ... t=syntacks
Geht unter Vista aber auch nicht (auch nicht mit Integer).
Mit der Grafikeinbblendung hatte ich es auch schon probiert:
http://www.purebasic.fr/german/viewtopi ... t=syntacks
Geht unter Vista aber auch nicht (auch nicht mit Integer).
Ist es ein OpenGL oder ein DirectX Spiel ?
Vielleicht ist unter DX9 alles ok und DX10 mag sowas nicht...
Obwohl... eigentlich hab ich unter XP noch kein Fenster "über" einen Fullscreen bekommen...
Vielleicht ist unter DX9 alles ok und DX10 mag sowas nicht...
Obwohl... eigentlich hab ich unter XP noch kein Fenster "über" einen Fullscreen bekommen...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
-
- Beiträge: 107
- Registriert: 08.03.2009 16:08
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
meiner Meinung nach ist das ein absolut bedeutungsloser Zufall, dass es bei dir auf XP funktioniert.
das bedeutet nicht, dass es bei nem dutzend anderen Leuten mit XP auch nur ansatzweise klappt.
ein Fenster über einem Vollbild darzustellen ist prinzipiell nicht vorgesehen.
das bedeutet nicht, dass es bei nem dutzend anderen Leuten mit XP auch nur ansatzweise klappt.
ein Fenster über einem Vollbild darzustellen ist prinzipiell nicht vorgesehen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.