AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SetWindowPos Alternative

Ein Thema von Ondeth · begonnen am 12. Mai 2013 · letzter Beitrag vom 18. Mai 2013
Antwort Antwort
Seite 2 von 3     12 3      
Ondeth

Registriert seit: 7. Mär 2013
22 Beiträge
 
Delphi XE3 Starter
 
#11

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 17:10
Game bezeichnet bei mir das Handle des Spielefensters...
Ich hab es kurz vor dem "Codeschnipsel von eben" ermittelt.

Da werde ich doch noch einmal drüber schauen müssen
Max
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#12

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 17:14
Game bezeichnet bei mir das Handle des Spielefensters...
Ich hab es kurz vor dem "Codeschnipsel von eben" ermittelt.

Da werde ich doch noch einmal drüber schauen müssen
oops.. OK
Wenn das Handle von SetWindowPos das deines Programms ist dann sollte das so stimmen
vorrausgesetzt das Game Handle ist gültig.

gruss
  Mit Zitat antworten Zitat
Ondeth

Registriert seit: 7. Mär 2013
22 Beiträge
 
Delphi XE3 Starter
 
#13

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 17:24
Naja , es läuft so "halb" ...

Sobald das Spielfenster deaktiviert ist und das Fenster meines Programmes HWND_TOPMOST ist , "blitzt" mein Programmfenster immer mal wieder im Spiel auf , um Sekundebruchteile später wieder zu verschwinden Es wird eben nie "richtig" angezeigt....

Wenn ich dann durch Druck der Tastenkombination das ganze wieder rückgängig mache (also Spiel aktivieren und NOTOPMOST), ist nur das Spielefenster im Vordergrund (wie es auch sein soll )

Ich glaub schon bald nicht mehr dran , dass das noch klappt
Max

Geändert von Ondeth (12. Mai 2013 um 17:27 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#14

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 17:33
Zitat:
Es wird eben nie "richtig" angezeigt....
Da wäre die frage kannst du noch eingaben machen im Spiel nachdem es deaktiviert wurde?
Wenn Ja dann ist dein Handle nicht gültig für das Spielfenster.

Was du noch versuchen könntest

Delphi-Quellcode:
// Zeichnen zulassen
SendMessageW(WinHandle, WM_SETREDRAW, Integer(TRUE), 0);
// Zeichnen unterbinden
SendMessageW(WinHandle, WM_SETREDRAW, Integer(FALSE), 0);
Es wäre möglich das die Paint routine des SpieleFensters eine erneute ZOrder verursacht.

Mehr fällt mir jetzt auch nicht ein.

PS:
Wie schon gesagt DirectX Fenster haben nichts gemein mit normalen WindowFenster daher denke ich das
dein vorhaben im FullScreen nicht funktionieren wird ohne über DirectX zu gehen und eventuelle Hooks dafür
zu verwenden.

gruss

Geändert von EWeiss (12. Mai 2013 um 18:48 Uhr)
  Mit Zitat antworten Zitat
Ondeth

Registriert seit: 7. Mär 2013
22 Beiträge
 
Delphi XE3 Starter
 
#15

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 17:49
Zitat:
Da wäre die frage kannst du noch eingaben machen im Spiel nachdem es deaktiviert wurde?
Sobald ich die Maus bewege, fliege ich aus dem Spielefenster raus und mein Programmfenster wird angezeigt
Tastendrucke allerdings werden im Spiel übernommen -> Daraus schließe ich einfach mal,dass das Handle nicht gültig ist...

Jetzt werde ich aber erstmal deine Idee ausprobieren
Max

Geändert von Ondeth (12. Mai 2013 um 17:53 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#16

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 17:53
Zitat:
Da wäre die frage kannst du noch eingaben machen im Spiel nachdem es deaktiviert wurde?
Sobald ich die Maus bewege, fliege ich aus dem Spielefenster raus und mein Programmfenster wird angezeigt
Tastendrucke allerdings werden im Spiel übernommen

Jetzt werde ich aber erstmal deine Idee ausprobieren
Viel Glück!

Einen ähnlichen Thread hatten wir schon mal..
http://www.delphipraxis.net/47398-os...mm-legen.html#

gruss
  Mit Zitat antworten Zitat
Ondeth

Registriert seit: 7. Mär 2013
22 Beiträge
 
Delphi XE3 Starter
 
#17

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 18:01
Hat sich nichts geändert , aber dein Link ist interessant(hab ich bei der Suche heute morgen wahrscheinlich übersehen)-den werde ich mir gleich mal anschauen

Vielen Dank für deine Hilfe & deine Zeit
Max
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#18

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 20:10
Zitat:
Vielen Dank für deine Hilfe & deine Zeit
Kein problem
-------------------------------
Grundsätzlich kann man das verwirklichen was du vorhast
Dazu muss man nur die Form als Bitmap in den Speicher kopieren dann weiter auf den BackBuffer(Offscreen Surface) von DDraw.

Das Bitmap kann man mit CreateDIBSection erstellen.

Das problem dabei mal wieder wie kommt man an den BackBuffer einer DirectX Anwendung.
Solange ich das Fenster für DX selbst erstelle ist das kein problem dann geht es auch mit Fullscreen.

Hab es vorhin mal in VB auf die schnelle getestet da ich keine lust hatte die Header Dateien für Delphi zusammen zu suchen.
Da funktioniert das ohne flackern oder sonstige schwierigkeiten.

Na ja denke das hilft dir jetzt so auch nicht weiter.

gruss

Geändert von EWeiss (13. Mai 2013 um 02:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#19

AW: SetWindowPos Alternative

  Alt 13. Mai 2013, 00:35
Wenn du noch weiter suchen willst: Hier im Forum suchenoverlay ist ein gutes Stichwort.

Es scheint relativ gut möglich zu sein, ein Overlay für ein bestimmtes Spiel zu programmieren. Allgemeine Ansätze scheinen da schwieriger zu sein, vor allem weil verschieden Versionen von DirectX bzw. OpenGL gibt.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#20

AW: SetWindowPos Alternative

  Alt 13. Mai 2013, 10:33
Hier ist mal ein DDraw Sample wie so etwas funktionieren könnte.
Beim beenden hab ich aber einen AV.. Und nein den find ich nicht

Ein paar kleine sachen könnte auch noch verbessert werden.
Wie immer verwendung auf eigene gefahr!

Vielleicht könnte man die Zeichnen Routine der Form noch beschleunigen.
Wäre was für die DirectX Spezialisten hier.

gruss

Geändert von EWeiss (11. Jul 2019 um 17:07 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr.
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