Entwickler-Ecke

Windows API - Frage zur windowmode


Kuyatzu - So 16.09.07 12:44
Titel: Frage zur windowmode
Hi
ich wollte ein launcher für ein paar games schreiben und hab dabei ein paar fragen hoffe ihr könnt sie mir beantworten
ich habe hir ein Beispiel mit CS 1.6 und wollte das in fenstermode spielen hab leider keine Ahnung wie ich das mache ohne das Fehler auftauchen.

So ich habe das Ganze nochmal verändern und ergänzt es klappt aber immer noch nicht.
(sollte ich es doch mal mit SetWindowPos versuchen? Wenn ja was brauche ich und was nicht?)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
begin
 ShellExecute(0, 'open','D:\Spiele\Counter Strike\Valve\hl.exe', nil, nil,  SW_SHOW);
 hWindow := FindWindow(nil,'Half-Life');
 ShowWindow(SW_SHOWMAXIMIZED,0);
 if hWindow <> 0 then
 MoveWindow(hWindow, 0, 0 , 800, 600, True)
 else
 ShowMessage('Progamm wurde nicht gefunden');

end


BenBE - So 16.09.07 13:16

Suche im MSDN MOVEWINDOW, Suche im MSDN GETWINDOWLONG, Suche im MSDN SETWINDOWLNG und Suche im MSDN CHANGEDISPLAYSETTINGS.


Regan - So 16.09.07 13:49

In deinem Fall würde ich eher mal die Parameter anders übergeben. Ich glaube da gibt es einen für Fenster Modus :gruebel: .


Kuyatzu - So 16.09.07 14:35

wenn es einen Parameter für fenster modus gibt denn brauch ich den
wenn einer weiß wie der lautet denn sagt mir bitte wie
danke


Regan - So 16.09.07 15:01

nach ein bisschen Suchen :http://www.thewall.de/content/half-life_2:tutorials:spielstart-parameter. Das sind aber welche für hl2.exe. Ich weiß nicht, in wie weit die für die 1.6er zutreffen. Aber such doch einfach mal bei google. Ich glaube da gab es mal eine wiki dazu.


Kuyatzu - So 16.09.07 15:11

eigentlich ist das nicht wonach ich suche wollte eigentlich sowas für ff7 machen da das sonne kleine
auflösung hat aber dafür gibt es sowas nicht
also muss ich das mit nem program über delphi machen aber das will nicht wie ich das will


BenBE - So 16.09.07 15:14

Hast Du schon mal was von Interpunktion und Großbuchstaben gehört? Deine Tastatur besitzt sowas nämlich und macht deinen Text sofort um einiges verständlicher :mahn:


Kuyatzu - So 16.09.07 16:10

wow das hilft mir jetzt echt

gibt es denn wenigsten ein beispiel für die verwendung von

MoveWindow


BenBE - So 16.09.07 16:14

Ja.

MSDN: MoveWindow:
Example

For an example, see Creating, Enumerating, and Sizing Child Windows [http://msdn2.microsoft.com/en-us/library/ms632598.aspx].


P.S.: Wenn im nächsten Post von Dir die Interpunktion fehlt, darfst Du selber die Lösung finden. Etwas eigenständige Arbeit wäre nicht ganz schlecht. ;-)


Kuyatzu - So 16.09.07 16:42

Na gut,
gibt es ein Weg ein Programm das schon an ist via Procedure wieder zu aktivieren(also in dem Vordergrund bringen).
Da ich das Programm minimiert habe.


BenBE - So 16.09.07 16:57

Für dein eigenes Programm kannst Du Application.BringToFront; nutzen.
Für ein Fremdes Programm musst Du das Fenster mit Hilfe von FindWindow suchen und dann mit ShowWindow und SW_RESTORE, SW_MAXIMIZE oder SW_SHOW wieder anzeigen.
Ferner kann es nötig sein, mit SetWindowPos den Z-Index des Fensters zu verändern, um dieses in den Vordergrund zu bringen.