Einzelnen Beitrag anzeigen

Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#11

Re: Form immer im vordergrund

  Alt 18. Mai 2006, 23:49
Also bei mir macht es das hier:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 setWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);
end;
Es gibt natürlich zwei Möglichkeiten dass es trotzdem nicht funktioniert, die nicht unbedingt mit deinem Programm zu tun haben.
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.
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat