(WinAPI) Versteckte Konsole
-
Hallo,
ich habe folgendes Problem, wenn ich den Code aus dem FAQ zum Verstecken bzw. Anzeigen der Konsole verwende erscheint immer der Fehler, dass er die Methode "GetConsoleWindow" nicht kennt.#include <iostream> #include <windows.h> using namespace std; const bool HideConsole() { return(ShowWindow(GetConsoleWindow(), SW_HIDE) && true); } const bool ShowConsole() { return(ShowWindow(GetConsoleWindow(), SW_SHOW) && true); } int main() { cout << "Hello World!\n"; Sleep(1000); HideConsole(); Sleep(1000); ShowConsole(); cout << "Hello again!"; Sleep(1000); return 0; }
--------------Konfiguration: Versteckte Konsole - Win32 Debug---------
Kompilierung läuft...
main.cpp
...\projekte\versteckte konsole\main.cpp(8) : error C2065: 'GetConsoleWindow' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.Versteckte Konsole.exe - 1 Fehler, 0 Warnung(en)
Muss man vielleicht eine bestimmte Header einbinden?
In der MSDN kann ich den Befehl auch nicht finden.Hoffe ihr könnt mir helfen.
Tschau Gartenzwerg
-
diese HideConsole() Funktion ist totaler Quatsch, ruf einfach FreeConsole() auf
-
...denn GetConsoleWindow erst ab Windows 2000. Wenn du's trotzdem benutzen willst:
#define _WIN32_WINNT 0x0500
#include <windows.h>
-
FreeConsole() entfernt die Konsole ganz aus dem Prozess. Was imho wenig bringt, da er sie vielleicht nur verstecken will aber noch mit ihr arbeiten will.
<windows.h> muss includiert sein.
MfG SideWinder
-
hallo,
ja ich will sie verstecken, doch trotzdem weiter mit ihr arbeiten.
Die <windows.h> ist schon eingebunden gewesen und es funzt trotzdem nicht. Auch mit dem von <blah> vorgeschlagenem#define _WIN32_WINNT 0x0500 lässt es sich nicht compilieren?
Liegt das am BS(Windows ME) oder mach ich da noch etwas falsch?
Tschau Gartenzwerg
-
Liegt am BS:
Auszug aus der MSDN:
Remarks
To compile an application that uses this function, define the _WIN32_WINNT macro as 0x0500 or later. For more information, see Using the SDK Headers.Requirements
Windows NT/2000/XP: Included in Windows 2000 and later.
Windows 95/98/Me: Unsupported.
Header: Declared in Wincon.h; include Windows.h.
Library: Use Kernel32.lib.Unter Win2000 funktioniert der Code einwandfrei.
mfg
-
Hallo,
danke erstmal aber gibt es den nicht eine andere Möglichkeit für das Verstecken der Konsole unter Windows ME?Tschau Gartenzwerg
-
Das Problem ist die Funktion GetConsoleWindow(). Also müssen wir sie in irgendeiner Form ersetzen.
Ich versuch mal etwas:
TCHAR Title [256]; GetConsoleTitle ( Title , sizeof ( Title ) ); ShowWindow ( FindWindow ( XXX , Title ) , SW_HIDE );
Allerdings benötigen wie noch eine Funktion, die uns den ClassName des Konsolenfensters zurückgibt.
MfG SideWinder
-
hallo,
tut mir leid, aber mit Windows - bzw. WinApi - Programmierung kenn
ich mich gar nicht aus.Tschau Gartenzwerg
-
Musst du in diesem Fall auch nicht. Wenn ich blos eine Funktion kennen würde die mir diesen dämlichen ClassName liefern würde, hättest du schon zwei neue Funktionen für das Fenster :).
Ich verschiebs mal nach WinAPI - die kennen dort vielleicht solche Funktionen und sobald dort eine Antwort steht schreib ich dir schnell die beiden Funktionen.
MfG SideWinder