Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Sheddex

unregistriert

1

26.02.2007, 17:14

Konsolen-Vollbildmodus

C-/C++-Quelltext

1
2
3
4
keybd_event(VK_MENU , 0x38 , 0 , 0);
keybd_event(VK_RETURN , 0x1C , 0 , 0);
keybd_event(VK_MENU , 0x38 , KEYEVENTF_KEYUP , 0);
keybd_event(VK_RETURN , 0x1C , KEYEVENTF_KEYUP , 0);


Dadurch simuliert man Alt + Enter und die Konsole wechselt in den Vollbildmodus. Soweit so gut. Nun würde es mich aber mal interessieren warum der 2. Parameter unbedingt notwendig ist, denn ohne geht das Ganze nicht. In der MSDN steht als Erklärung "This parameter ist not used". Super, das hilft einem doch gewaltig ;)
Weiß jemand von euch wozu dieser Parameter da ist?

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

2

26.02.2007, 17:29

Google weiss es:) Das muss der Scan Code sein.
So wandelst du um:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
    // Konvertiert Windows Virtual Key Code zu Scan Code

unsigned long virtual_key_to_scan_code (unsigned long virtual_key)
{
    return (static_cast<unsigend long>(::MapVirtualKeyEx (virtual_key, 0, ::GetKeyboardLayout (::GetCurrentThreadId ()))));
}

    // Konvertiert Scan Code zu Windows Virtual Key Code

unsigned long scan_code_to_virtual_key (unsigned long scan_code)
{
    return (static_cast<unsigend long>(::MapVirtualKeyEx (scan_code, 1, ::GetKeyboardLayout (::GetCurrentThreadId ())));
}
"Have you tried turning it off and on again?"

3

26.02.2007, 18:08

Wäre vllt mal ganz schön wenn du einen vollkommen überflüssigen cast, der nur durch nix da's vorliebe für unsigned long(behaupte ich jetzt mal oder du erklärst mir warum du es gemacht hast) zu standen kommt. ein unsigned int wäre korrekt.

http://msdn2.microsoft.com/en-us/library/ms646307.aspx
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Sheddex

unregistriert

4

26.02.2007, 18:51

Ah vielen Dank :)

Bei google hab' ich eben nur nach "Konsolen Vollbild" u.Ä. gesucht in der Hoffnung dass irgendjemand das was er postet auch erklärt, was aber nie der Fall war.

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

5

26.02.2007, 20:30

Zitat von »"Deviloper"«

Wäre vllt mal ganz schön wenn du einen vollkommen überflüssigen cast, der nur durch nix da's vorliebe für unsigned long(behaupte ich jetzt mal oder du erklärst mir warum du es gemacht hast) zu standen kommt. ein unsigned int wäre korrekt.

Der Code ist nicht von mir, er ist in der Tat von nix_da. Ich hab nur kurz den Betrag gesucht in dem eine aehnliche Frage gestellt hab und den Codefetzen kopiert :) Ich finde das auch etwas uebertrieben, ein int ist ja grundsaetzlich boese, absolute Speichenverschwendung ;) Dazu noch der Global-scope-identifier :: ueberall.. Jedem das seine.
"Have you tried turning it off and on again?"

R3sident3vil

Treue Seele

Beiträge: 177

Wohnort: 1010010

Beruf: Selbstständig

  • Private Nachricht senden

6

26.02.2007, 20:41

Es gibt aber ein kleines Problem, bei mir ist es so, wenn z.b. jemand aus ICQ mich anpiept oder ein anderes beliebiges Programm etwas von mir will, dann wird der Fullscreen-Modus deaktiviert, und man kommt meißtens nicht mehr wieder in den ursprünglichen Modus zurück. Wie könnte man das beheben?

If -> ('ein programm' will was von mir -> vollbild-modus behalten und 'ein programm' ignorieren) wie geht das?
Kaum ist Linux wieder da, schon gehts meinem Rechner wunderbar, denn Linux ist die beste Medezin.

Olischewsky Arts

7

27.02.2007, 15:22

.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FOGX« (15.09.2010, 16:09)


Sheddex

unregistriert

8

27.02.2007, 17:02

C-/C++-Quelltext

1
HWND WINAPI GetConsoleWindow(void);

9

27.02.2007, 17:06

Warum sollte es dafür ne eigene API geben? Normal sollte man sowas alles mit der WinAPI hinbekommen ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige