Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 23:09

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: So Feb 19, 2006 17:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Ich habe ein sehr ausgefallenes Problem. Ich würde gerne ein Programm erstellen (Mit oder ohne OpenGL is noch nicht sicher), das immer auf dem Bildschirm zu sehen sein soll, auch wenn zum Beispiel Spiele (es geht um Warcraft 3 - The Frozen Throne) laufen. Ist es möglich, mein Programm so darstellen zu lassen?
€: Es muss möglich sein, da auch der Instant Messenger XFire so funktioniert...

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Verständnisfrage
BeitragVerfasst: So Feb 19, 2006 23:53 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 11, 2005 14:44
Beiträge: 19
Wohnort: Bad Neuenahr
Einen Frage zu deinem Vorhaben:

Soll dein Programm im Fullscreen über Warcraft 3 laufen oder nur einen Teil des Bildschirms einnehmen?

_________________
"But how will I know when I have received enlightenment?" asked the novice.

"Your program will then run correctly," replied the master. [Tao]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 08:15 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Es soll nur einen kleinen Teil des Bildschirms einnehmen.

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 08:53 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also normal kannst du bei einem Fenster den FormStyle auf fsStayOnTop ändern. Damit sollte es sich über alles andere legen. Evtl musst du dann noch dafür sorgen, dass du das Programm bei Bildschirmgrößenänderungen auch das Fenster verschiebst. Also damit es wieder rechts oben oder so angezeigt wird.

fsStayOnTop ist der WindowsExStyle WS_EX_TOPMOST. Das kann man mit SetWindowLong auch noch nachträglich setzen. Denke ich.

Und die Message die gesendet wird wenn sich die Auflösung geändert hat ist WM_DISPLAYCHANGE.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 11:02 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Da WOW ja in 3d läuft und damit direkt auf den Bildschirm rendert, gestaltet sich das wohl ein wenig schwieriger. Manchmal funktioniert es, das ganze einfach darüber zu legen. Das zerrt aber meistens sowohl an Performance(Schonmal VCL-Controls in einer OGL-App gehabt?) als auch an der Bildqualität (Flackern etc.).

Ein Weg, der immer funktioniert, ist, die entsprechenden Funktionsaufrufe, mit denen das Bild auf den Schirm geworfen wird, in der Treiber-DLL(D3D bzw. OpenGL) zu hooken.
So machen es wohl auch XFire, Fraps und Konsorten.

Man könnte z.B. mal nach Overlay googeln... Ein anderes Buzzword fällt mir da leider grad nicht ein.

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 11:04 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
luketheduke hat geschrieben:
Buzzword

:shock: damit steht auch das gute alte Schlagwort auf der roten liste der gefährdeten deutschen Wörter... :x

;)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 11:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Luke: Da kann ich dir leider nur teilweise recht geben. Mitunter ist es sogar schneller, wenn ein Teil des OpenGL Fensters durch ein anderes Fenster verdeckt wird. Es muss dann nicht mehr so viel gezeichnet werden. Wenn du aber Kontrols auf dem Renderform hast dann stimmt es schon. Ich denke aber mal, dass da die VCL auch nicht ganz unschuldig dran ist. Aber ein Fenster welches über einem Renderform liegt sollte zu mindest in OpenGL ziemlich schmerzfrei sein. In diesem Falle bleibt Doublebuffering auch Doublebuffering. Sollte also auch nichts flackern. Zu mindest so lange alle möglichen Schatten (Maus, Menü) und transparenten Fenster deaktiviert sind. Das ist speziell auf RCs ein absoluter Performancekiller. Und flackern ist dann durchaus möglich. Wobei das Alles aber auf jeder Hardware auch anders sein kann.

Muss aber gestehen ich weiß nicht wie XFire das macht. Kenne es nicht. Auf den Bildern sah es aber transparent aus. Was eigentlich gegen ein extra Fenster spricht. Das Einfachste wäre wohl mal WOW oder sonst etwas unterstütztes im Fenster zu spielen und zu schauen wo er dann klebt. Aber die Renderaufrufe von OpenGL/D3D abzufangen ist nicht sonderlich einfach. Speziell bei D3D sogar noch komplizierter. Bei OpenGL sollte/könnte ein DLL Inject ausreichen. Aber wie das bei Interfaces aussieht weiß ich auch nicht. Leider findet man im Netz so gut wie nichts dazu.

Overlay ist aber wieder etwas anderes. Ich weiß nicht ob man dadurch wahnsinnig viele Vorteile hätte, da beim Overlay nur eine bestimmte Farbe gegen eine Bild ausgetauscht wird. Sozusagen müsste dafür aber wiederrum ein Fenster existieren womit wir wieder beim Anfang wäre.

Flash: Also ich sehe das nicht so. Habe buzzword jetzt das erste mal gehört. Und so lange man nicht alles mitmacht besteht durchaus noch eine Überlebenchance. Techno wurde ja 95 aus für Tot erklärt. Aber mittlerweile erfreut es sich bester Gesundheit. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 15:59 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Hmm ok. Das mit fsStayOnTop funktioniert schon mal prima! Jetzt hab ich aber ein weiteres Problem (ich glaube, bei diesem Projekt werd ich euch noch öfters brauchen ;) ): Wenn ich auf die Form klicke, dann wird Warcraft 3 minimiert und die Auflösungm (soweit verändert) wieder in den Desktop-Modus gebracht. Kann man das irgendwie unterbinden?

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 16:49 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Hmmm. Daran hatte ich gar nicht gedacht. :roll:
Das erschwert die Sache ein "bisschen". Der Grund warum WOW verschwindet ist der, dass es festgestellt hat, dass es nicht mehr die aktive Anwendung (Fenster) ist.

Das bedeutet, dass du deine Anwendung als Teil von WOW gestallten musst. Entweder so wie es Fraps und Co gestalten was sicherlich der schwierigste Teil sein wird. Oder aber du sagst das Fenster ist Teil des WOW Fensters. Mit FindWindow kannst du Fenster mit bestimmten Namen suchen lassen und mit Form.ParentWindow := Gefundes Handle kannst du sagen, dass dein Fenster ein Unterfenster von Fenster X sein soll. Wenn du dann also dein Fenster aktivierst bleibt dennoch WOW aktiv. Wobei dein Fenster nicht wirklich richtig aktiviert wird. Wobei es dabei aber sehr stark darauf ankommt wie WOW aufgebaut ist und ob es das einfach so mit sich machen lässt. Es wird aber in jedem Falle etwas langsamer werden, da du ja eine "Komponente" auf dem Formular hast.

Das ist mit Sicherheit nicht der beste Weg. Also eigentlich finde ich persönlich das schon fast kriminell. Ich bin mir auch nicht sicher ob man dadurch nicht irgendwie das Verhalten von der Wirtsanwendung negativ beinflusst. Ganz zu schweigen davon auch die Frage wie das rechtlich überhaupt aussieht. Man Manipuliert ja eigentlich fast die andere Anwendung. Bzw klinkt sich so halbwegs da mit ein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 16:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Hmm das scheint wirklich nicht so einfach zu sein. Kann ich das nicht vielleicht so machen, dass, wenn ich auf meine Anwendung klicke, der Fokus gleich wieder auf Warcraft (btw: Es geht um Warcraft 3 und nicht World of Warcraft :!: ) verlegt wird? Natürlich, bevor das Ganze minimiert wird...

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 17:34 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ne weil es immer so ist, dass der Fokus zu erst gelöscht wird und erst dann wird er neu gesetzt. Eigentlich müsste W3 schon fast weg sein bevor deine Anwendung überhaupt aktiv ist. Also so mit einem extra Fenster sehe ich da gerade keinen sinnvollen Weg. Außer es ließe sich halt einbinden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 17:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Hmm ok ich will dann mal das versuchen bzw forsche noch ein bisschen im Netz. Danke!

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 21, 2006 14:29 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Also ich habs jetzt auf die "rechtlich bedenkliche" (ich glaube aber kaum, dass es da Probleme gibt) Methode gemacht, also mit ParentWindow. Warcraft verkraftet aber das zusätzliche Fenster anscheinend anstandslos. Zwischendurch hatte ich noch Probleme, da bei einem Klick auf einen Button in meinem Programm immer noch minimiert wurde. Das hab ich aber damit gelöst, dass ich den Button durch ein Image ersetzt habe, was ich sowieso im Laufe der Programmierung vorhatte.

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 21, 2006 19:35 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

hab ne frage :)
Was genau hast'n vor???

Weeiil... wenn es ein "cheat"-programm (Bots, BugUsing etc) ist fänd ich es nicht sehr berauschend... bei Singleplayer Spielen kein problem, da ist es jedem selber überlassen was er tot.. bei WoW (und anderen MMORPGs) schadet man damit aber auch ganz stark allen anderen Spielern.. :roll:

Ansonsten falls du nur vorhast dir die Uhrzeit o.Ä. einfach ständig anzuzeigen.. da spricht nix gegen ;)

Bye,
Aya


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 21, 2006 19:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Die Frage hab ich fast erwartet ;)
Vorab, da es anscheined wieder einige überlesen haben: Es geht um Warcraft3 und nicht um World of Warcraft!
Mein Ziel ist folgendes: Warcraft 3 ist ja inzwischen im eSport-Bereich schon ein sehr oft gespieltes Spiel, durchaus gleichzusetzen mit Counterstrike. Für CS gibt es ja HLTV, also ein Streaming-Tool, dass es erlaubt, im Spiel selbst live solche Clanwars von Progamern zu betrachten. Für Warcraft gibt es nun ein ähnliches Tool, das aber nicht wie HLTV von den Spieleherstellern kommt. Das nennt sich WaaaghTV und funktioniert wirklich super. Das Problem ist aber, und hier kommt mein Programm ins Spiel, dass solche Operationen wie Anhalten und Vorspulen nur sehr umständlich über das Chat-Interface gehen (WaaaghTV fängt hier irgendwie diese Nachrichten ab, inerpretiert diese und schickt dann sie Spieldaten ans Warcraft). Ich möchte nun einfach ein kleines Tool schreiben, dass ein paar Buttons für diese Operationen (Spulen etc) hat und diese als Chat-Nachrichten an Warcraft und so an WTV schickt.
Also nichts illegales, fast im Gegenteil, es hat sich inzwischen eine riesige Szene entwickelt (-> www.gamesports.de) und es finden fast täglich hochrangig besetzte Spiele statt. Mein Tool trägt also eher zur Popularität des Spiels bei, was der Firma nur nutzt.

btw: Cheat-Programme, genauso wie C racks-, schreiben ist natürlich schon sehr reizvoll, aber da bin ich glaub ich ein viel zu schlechter Programmierer dazu. Und selbst wenn ichs könnte, würde ich es nicht tun, da ich Beides für moralisch falsch halte.

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.011s | 15 Queries | GZIP : On ]