![]() |
AW: SetWindowPos Alternative
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 :) |
AW: SetWindowPos Alternative
Zitat:
Wenn das Handle von SetWindowPos das deines Programms ist dann sollte das so stimmen vorrausgesetzt das Game Handle ist gültig. gruss |
AW: SetWindowPos Alternative
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 :shock: 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 :-D ) Ich glaub schon bald nicht mehr dran , dass das noch klappt :D |
AW: SetWindowPos Alternative
Zitat:
Wenn Ja dann ist dein Handle nicht gültig für das Spielfenster. Was du noch versuchen könntest
Delphi-Quellcode:
Es wäre möglich das die Paint routine des SpieleFensters eine erneute ZOrder verursacht.
// Zeichnen zulassen
SendMessageW(WinHandle, WM_SETREDRAW, Integer(TRUE), 0); // Zeichnen unterbinden SendMessageW(WinHandle, WM_SETREDRAW, Integer(FALSE), 0); Mehr fällt mir jetzt auch nicht ein. :oops: 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 |
AW: SetWindowPos Alternative
Zitat:
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 :lol: |
AW: SetWindowPos Alternative
Zitat:
Einen ähnlichen Thread hatten wir schon mal.. ![]() gruss |
AW: SetWindowPos Alternative
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 :thumb: |
AW: SetWindowPos Alternative
Zitat:
------------------------------- 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 |
AW: SetWindowPos Alternative
Wenn du noch weiter suchen willst:
![]() 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. |
AW: SetWindowPos Alternative
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz