![]() |
Form immer im vordergrund
Hallo,
hab mal wieder ein problem ... Gibt es eine möglichkeit, wie ich meine form immer ontop habe, und man sie sogar vor einem spiel sieht, das im vollbild modus läuft. d.h. spiel läuft, man spielt ganz normal, blos vor der spiel-form is noch meine form, z.b. klein rechts unten in der ecke. Danke schon mal :) MfG - Ghost |
Re: Form immer im vordergrund
Delphi-Quellcode:
Am Besten ist aber du machst das zur Debugg Zeit.
Form1.Formstyle:=fsStayOnTop;
Wenn du das erst zur Runtime machst geht es anders, das weis ich aber grad net auswendig. |
Re: Form immer im vordergrund
hallo,
danke für deine antwort. 1.wie "zur debugg zeit" ? 2.ich habe bereits bei meiner form oncreate
Delphi-Quellcode:
Aber die form bleibt nicht sichtbar vor dem spiel(im vollbildmodus)
Form1.Formstyle:=fsStayOnTop;
:wall: [EDIT] ich glaube auch nicht das es mit dem StayOnTop getahn is ... :( |
Re: Form immer im vordergrund
Hi,
oder muss man das ganz von einer ganz anderen seite angehen? mit nem Grafik hook, falls es sowas gibt?! |
Re: Form immer im vordergrund
OK Probiers mal damit
Mit Stayontop :Boolean
Delphi-Quellcode:
So mache ich das in meinem Project
If Stayontop Then
SetWindowPos (Form1.Handle, HWND_TOPMOST, -1, -1, -1, -1, SWP_NOMOVE + SWP_NOSIZE) Else SetWindowPos (Form1.Handle, HWND_NOTOPMOST, -1, -1, -1, -1, SWP_NOMOVE + SWP_NOSIZE) |
Re: Form immer im vordergrund
hallo,
danke für die antwort, aber wo soll das hin? Da ich nicht weiß was du meinst hab ich es mal hier rein:
Delphi-Quellcode:
Das wird da aber nix :(
procedure TForm1.FormCreate(Sender: TObject);
begin If Stayontop Then SetWindowPos (Form1.Handle, HWND_TOPMOST, -1, -1, -1, -1, SWP_NOMOVE + SWP_NOSIZE) Else SetWindowPos (Form1.Handle, HWND_NOTOPMOST, -1, -1, -1, -1, SWP_NOMOVE + SWP_NOSIZE) end; |
Re: Form immer im vordergrund
Hallo Ghost,
ohne zuviel verraten und somit die Spannung aus dem Faden nehmen zu wollen, schau dir mal die Delphi-Hilfe zu setWindowPos und WM_WINDOWPOSCHANGING an. *EDIT* zu deinem Text, Mach dir eine Prozedur mit einem Parameter namens Stayontop. |
Re: Form immer im vordergrund
hi,
also. habe mir jetzt mal diese procedure gebastelt:
Delphi-Quellcode:
ABER:
procedure Stayontop (Stayontop:Boolean);
begin If Stayontop Then SetWindowPos (Form1.Handle, HWND_TOPMOST, -1, -1, -1, -1, SWP_NOMOVE + SWP_NOSIZE) Else SetWindowPos (Form1.Handle, HWND_NOTOPMOST, -1, -1, -1, -1, SWP_NOMOVE + SWP_NOSIZE) end; 1.Ich starte ein Spiel im vollbildmodus 2.wenn ich da hin gehe, wo im windows die form ist, wird mein zeiger zu nem normalem curosr, aber die form kann man nicht sehen. :wall: |
Re: Form immer im vordergrund
Okay,
tschuldigung das ich frage, hört sich vielleicht etwas komisch an, aber: Rufst du die Prozedur überhaupt auf? Wenn ja starte ich sofortig mein Delphi und bastel dir was. Muss aber gleich in die Falle, also poste fix ;) |
Re: Form immer im vordergrund
;) natürlich rufe ich die prozedur auf ^^
mit dem tastekürzel F5 (globaler hotkey) [EDIT]Man sieht die form einmal kurz aufleuchten, und dann verschwindet se weider, wenn man aber an die stelle klickt, wo sie aufgeläuchtet hat, komme ich ins windows und hab die form makiert ... :( [EDIT]Ich teste das ganze mit Warcraft 3, falls euch das was sagt. Aber ich denke das das spiel keine rolle spielt |
Re: Form immer im vordergrund
Also bei mir macht es das hier:
Delphi-Quellcode:
Es gibt natürlich zwei Möglichkeiten dass es trotzdem nicht funktioniert, die nicht unbedingt mit deinem Programm zu tun haben.
procedure TForm1.FormCreate(Sender: TObject);
begin setWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW); end; 1. Das Spiel verwendet selbige Technik um sich nach vorne zu bringen (es kann nunmal nur ein Fenster ganz vorne sein). 2. OpenGL/Direct3d "übermalt" es einfach. Versuch mal die Forumssuche, glaube mich zu erinnern, dass jemand vor einiger Zeit das gleiche versucht hat. Der saubere Weg wäre dennoch ein Hook auf die verwendete Grafikbibliothek. Gibt es glaube ich auch Beispiele bei google, ist auch garnicht so schwer zu programmieren, wenn man einmal verstanden hat wie es funktioniert. Um zwischen 1 und 2 zu unterscheiden setzt du dir einen Timer aufs Form mit Intervall 1 und zeichnest dort das Form neu. Wenn das Form plötzlich im Spiel flackernd sichtbar ist (wovon ich ausgehe) wird es lediglich von d3d etc. übermalt. Gruss *EDIT* Jap dann wirst du übermalt, also entweder mit Timer dich ständig neu zeichnen = flickernd sichtbar oder direct3d hooken. Das Form anklicken kannst du nicht, da sobald es den Focus erhält Warcraft sich minimiert. |
Re: Form immer im vordergrund
ok, probier ich gleich aus
|
Re: Form immer im vordergrund
:oops: :wall:
Es flackert nicht mal ... nur wenn ich an die stelle geh, wird mein cursor zu nem normalen cursor, wenn ich klicke, komme ich in 's windows [EDIT]Das is aber komisch, weil ich das form zwar nicht sehe, bin aber in wacraft drin, undw enn ich an die stelle klicke, an der es im windows ist, dann minimiert sich warcraft :( Dann muss ich wohl hooken, kannst du mir da ein tutorial empfehlen? Weil ehrlich gesagt finde ich in google nix und hier im forum auch net :? Das schaut dann so aus: ![]() Nur das auf dem warcraft cursor nich der normale windows pfeil ist.(der wir ja bei screenshots net mit gespeichert) |
Re: Form immer im vordergrund
Ich würde nicht versuche WOW zu hooken. Es könnte dann schnell passieren, dass dein Account wegen Cheating gesperrt wird ... Lass WOW einfach im Fenstermodus laufen. Dann klappt das definitiv mit dem Top-Most. Oder nimm einen zweiten Monitor und lass das Programm dort laufen ;)
|
Re: Form immer im vordergrund
Er schrieb Warcraft 3, nicht World of Warcraft ;)
Ok aber J.R. hat natürlich Recht, bei einem Hook musst du dich in den Spiele-Prozess einklinken und es gibt Spiele wie WoW die dieses bemerken und dir wirklich übel nehmen. Wenn du es trotzdem so machen möchtest, kann ich dir "uallHook" von Brechi, oder madCodeHook von ![]() Was du also tun musst, solltest du den Aufwand wagen ist ein simpler (simpel dank den Units der beiden) Codehook auf die Flip-Funktion von Direct3d. Das ist es, wie z.B. Fraps funktioniert. Die Lösung mit dem zweiten Monitor dürfte allerdings einfacher sein ;) |
Re: Form immer im vordergrund
hi,
1 frage: was meinst ihr mit nem 2ten monitor? hardware monitor? oder was? |
Re: Form immer im vordergrund
komisch ... :wall:
|
Re: Form immer im vordergrund
Zitat:
|
Re: Form immer im vordergrund
was 'n das für ne schwachsinnige lösung?
nen 2ten monitor kaufen für 'n programm? Das soll bei anderen leuten auch noch laufen ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 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