Cmd-Fenster einstellen

Hallo,

ich programmiere gerade eine kleines Programm für eine gute Freundin. Da ich noch keine Erfahrung mit Windowsfenstern (doppelt gemoppelt :wink: ) habe, programmiere ich noch im cmd.

Das heißt, wenn ich meine exe starte, dann öffnet sich das cmd-Fenster und stellt mein Programm dar. Ich hoffe ihr wisst was ich meine.

So,jetzt zu meinem eigentlich Problem und zwar… man kann ja bei sich oben im Fenster rechtsklicken und auf Eigenschaften gehen. Hier kann ich die Größe des Fensters und die Schriftfarbe einstellen…

Dann bekommt man eine Meldung „Eigenschaften gelten für alle Fenster mit gleichem Namen“.

Also änder ich die Eigenschaften ja nur für MICH. Das heißt, wenn ich die Exe auf einem anderen Rechner ausführe, dann kommt das Fenster in Standardgröße und mit weißer Schrift…

Gibt es Befehle, die ich in den Quellcode schreiben kann, dass dem cmd gleich beim Ausführen gesagt wird „Führe die Exe nur maximiert und mit grüner Schrift aus!“?

Weil, meine Freundin soll das bei sich ja so öffnen können, wie ich mir das vorstelle… :confused: Ich hoffe ihr wisst was ich meine,sonst versuche ich es nochmal zu erklären!

Ich wäre für jede Anregung dankbar!

Ach ja,ich hab das alles in C++ geschrieben!

Gruß

Zerwas

Ab Windows XP sollte das funktionieren:

#define WINVER 0x0501 // Windows XP
#include 
...
HANDLE hStdOut = GetStdHandle(STD\_OUTPUT\_HANDLE);
COORD tmp;
SetConsoleDisplayMode(hStdOut,CONSOLE\_FULLSCREEN\_MODE,&tmp);
SetConsoleTextAttribute(hStdOut, FOREGROUND\_GREEN);

mfg
dixxi

Ja genau so etwas meinte ich! Vielen Dank! :smile:

Hallo dixxi

SetConsoleDisplayMode(hStdOut,CONSOLE_FULLSCREEN_MODE,&tmp);

Und die Masse des Fensters in Pixel setzen, geht das auch, oder nur mit „CONSOLE_FULLSCREEN_MODE“?

lG
Martin B

SetConsoleDisplayMode(hStdOut,CONSOLE_FULLSCREEN_MODE,&tmp);

Und die Masse des Fensters in Pixel setzen, geht das auch,
oder nur mit „CONSOLE_FULLSCREEN_MODE“?

SetConsoleDisplayMode() nimmt nur die zwei Konstanten CONSOLE_FULLSCREEN_MODE und CONSOLE_WINDOWED_MODE.

Wenn du aber das HWND der Konsole über GetConsoleWindow() hast, kannst du vielleicht das Fenster über SetWindowPos() beeinflussen.

SetWindowPos(hwndConsole, HWND\_TOP, 0, 0, width, height, SWP\_NOMOVE | SWP\_NOZORDER);

Einfach Googlen bzw. im MSDN nachsehen.
mfg dixxi

Hallo dixxi

Hört sich gut an. Bei mir sieht das jetzt so aus. Ich kriege da (auf win 2ooo prof.) noch diese drei Fehler (kommentiert):

#include 
#include 
#define \_WIN32\_WINNT 0x0501 // habe 2000 prof.

int setDosSize(int l, int t, int w, int h)
{
// error C2065: 'GetConsoleWindow' : nichtdeklarierter Bezeichner
 return SetWindowPos (GetConsoleWindow(), HWND\_TOP, 
 l, t, w, h,
 SWP\_NOMOVE | SWP\_NOZORDER);
}

int makeDosWindow()
{
 HANDLE hStdOut = GetStdHandle(STD\_OUTPUT\_HANDLE);
 COORD tmp;
// error C2065: 'SetConsoleDisplayMode' : nichtdeklarierter Bezeichner
// error C2065: 'CONSOLE\_FULLSCREEN\_MODE' : nichtdeklarierter Bezeichner
 SetConsoleDisplayMode(hStdOut,CONSOLE\_FULLSCREEN\_MODE,&tmp);
 SetConsoleTextAttribute(hStdOut, FOREGROUND\_GREEN);
 return 0;
}

int main()
{
 makeDosWindow ();
 int got;
 while (got = getch() - 48)
 {
 if (got == (27 - 48)) break;
 setDosSize (
 (got+1) \* 100, (got+1) \* 50, 
 (got+1) \* 100, (got+1) \* 50
 );
 }
 return 0;
}

Die GetConsoleWindow() gibt es dabei sehr wohl ab Win 2000 prof., siehe hier:
http://msdn.microsoft.com/en-us/library/ms683175(VS…

Hast Du eine Ahnung, was ich da machen könnte?
Vielen Dank.

lG
Martin B