Konsole im Vollbildmodus starten



  • Hallo, Gibt es ne Möglichkeit die Konsole direkt im Volbildmodus zu starten? (Also das was passiert wenn man ALT+ENTER drückt)



  • ➡ SetConsoleDisplayMode( )

    greetz, Swordfish



  • hm die geht irgendwie net. Hab kernel32.lib und windows.h eingebunden. Kann das daran liegen, dass ich net Visual C++ benutze? DevC++ gibt jedenfalls das hier aus:

    'SetConsoleDisplayMode' undeclared (first use this function)

    Muss ich noch was einbinden?



  • PsychoticStyx schrieb:

    hm die geht irgendwie net. Hab kernel32.lib und windows.h eingebunden. Kann das daran liegen, dass ich net Visual C++ benutze? DevC++ gibt jedenfalls das hier aus:
    'SetConsoleDisplayMode' undeclared (first use this function)
    Muss ich noch was einbinden?

    das geht nicht mal mit ner alten visual c++ ide.
    ich hab z.b. SetConsoleDisplayMode auch nicht bei meinem vs 6.0



  • probier das doch mal:

    #include <windows.h>
    #include <stdio.h>
    
    void fs() {
        keybd_event(VK_MENU, 0x38, 0, 0);
        keybd_event(VK_RETURN, 0x1c, 0, 0);
        keybd_event(VK_RETURN, 0X1c, KEYEVENTF_KEYUP, 0);
        keybd_event(VK_MENU, 0x38, KEYEVENTF_KEYUP, 0);
    }
    
    int main() {
        fs();
        printf("This is a fullscreen C++ application!!!\n");
        system("PAUSE");
        return 0;
    }
    


  • PsychoticStyx schrieb:

    hm die geht irgendwie net. Hab kernel32.lib und windows.h eingebunden. Kann das daran liegen, dass ich net Visual C++ benutze? DevC++ gibt jedenfalls das hier aus:
    [...]
    Muss ich noch was einbinden?

    In der MSDN steht doch eindeutig <wincon.h> oder?
    also:

    #define _WIN32_WINNT 0x0501 /* Windows NT 5.1 or higher */
    
    #include <windows.h>
    #include <wincon.h>
    
    int main ( ) {
    
        COORD dimension;
        SetConsoleDisplayMode( GetStdHandle( STD_OUTPUT_HANDLE ), CONSOLE_FULLSCREEN_MODE, &dimension );
    }
    

    BTW: DevC++ wird seit Februar 2005 nicht mehr weiterentwickelt und der zugehörige MingW Compiler ist dementsprechend veraltet. Mit einem aktuellen MinGW (wie zum Beispiel bei Code:Blocks dabei) funktioniert das ohne Probleme.

    proggingmania schrieb:

    #include <stdio.h>
    
    // ...
    
    printf("This is a fullscreen C++ application!!!\n");
    

    😃 der ist gut!

    Selbst wenn die Libraries deines Compilers SetConsoleDisplayMode nicht unterstützten, ist das kein Grund es ab Windows XP/2003 Server nicht zu verwenden:

    #include <cstdlib>
    #include <iostream>
    
    #include <windows.h>
    
    int main ( ) {
    
    	const DWORD console_fullscreen_mode = 1;
    	const DWORD console_windowed_mode = 2;
    
    	const char kernel_dll_file_name[ ] = "kernel32.dll";
    	const char function_name[ ] = "SetConsoleDisplayMode";
    
    	HMODULE kernel_dll = LoadLibrary( kernel_dll_file_name );
    
    	if( !kernel_dll ) {
    
    		std::cerr << "Failed to load \"" << kernel_dll_file_name << "\"!" << std::endl;
    		return EXIT_FAILURE;
    	}
    
    	typedef BOOL ( WINAPI  *set_console_display_mode_fpt )( HANDLE, DWORD, PCOORD );
    
    	set_console_display_mode_fpt set_console_display_mode =
    		reinterpret_cast< set_console_display_mode_fpt >( GetProcAddress( kernel_dll, function_name ) );
    
    	if( !set_console_display_mode ) {
    
    		std::cerr << "\"" << function_name << "\" couldn't be found in \"" << kernel_dll_file_name << "\"!" << std::endl;
    		std::cerr << "Maybe I'm not running under Windows XP/2003 Server or higher?" << std::endl;
    		FreeLibrary( kernel_dll );
    		return EXIT_FAILURE;
    	}
    
    	COORD dimension;
    
    	if( !set_console_display_mode( GetStdHandle( STD_OUTPUT_HANDLE ), console_fullscreen_mode, &dimension ) ) {
    
    		std::cerr << "Couldn't set fullscreen mode for the current console." << std::endl;
    		FreeLibrary( kernel_dll );
    		return EXIT_FAILURE;
    	}
    
    	FreeLibrary( kernel_dll );
    }
    

    Compiliert anstandslos mit MinGW v3.4.5...

    greetz, Swordfish



  • Danke geht! Hab das mit der DLL total verpeilt und mich gewundert warums net ging^^ Sry...


Anmelden zum Antworten