Mam aplikację konsolową, która ma jednak działać w tle, nie dając użytkownikowi komunikatów (no może poza jakimiś pop-up'ami) W jaki sposób ukryć okno wiersza poleceń?
O ile ja wiem, nedase. Jeśli nie chcesz żeby była konsola to może po prostu jej nie twórz? (czytaj: stwórz aplikację "okienkową" i nie twórz okna).
Jak się nie da, jak się da ;)
#define _WIN32_WINNT 0x0500
HWND hWnd = GetConsoleWindow();
ShowWindow( hWnd, SW_HIDE );
Dzięki;)
Hmmm... co źle robię? Nie wywala nic, po prostu nie ukrywa, kompilator to Dev C++ (4.9.9.2)
#include <cstdlib>
#include <iostream>
#define _WIN32_WINNT 0x0500
using namespace std;
int main(int argc, char *argv[])
{
system("PAUSE");
return EXIT_SUCCESS;
}
No a gdzie druga część tego co napisałem? :P
ale gafa;p
hmmm nadal nie kminię:
#include <cstdlib>
#include <iostream>
#define _WIN32_WINNT 0x0500
using namespace std;
int main(int argc, char *argv[])
{
HWND hWnd = GetConsoleWindow();
ShowWindow( hWnd, SW_HIDE );
system("PAUSE");
return EXIT_SUCCESS;
}
Czy wstawiałem w mainie czy przed nim, nie łapał. Log krzyczy że nie zna zmiennych i każde pojedyncze słowo bierze za zmienną.
A dołączyłeś <windows.h>? Skąd kompilator ma wiedzieć co to jest HWND?
Poza tym, jeżeli kompilujesz w g++ (dev-cpp, code blocks...) to nie potrzebujesz tej sztuczki, wystarczy dodać flagę -mwindows przy kompilacji.
to define, jeżeli ma cokolwiek robić, powinno być przed #include <windows.h>
chociaż sądzę, że nie jest potrzebne.
hmmm... mógłby ktoś pokazać jak to powinno wyglądać? Bo ja za głupi na to jestem...
to sobie odpuść jak tego nie rozumiesz.
A może chodzi Ci po prostu o puszczenie aplikacji w tle?
$> aplikacja.exe &
Raczej z kodu wnioskuję, że chce schować swoją aplikację (pseudo wirusiki się pisze? :P)
pionner napisał(a)
hmmm... mógłby ktoś pokazać jak to powinno wyglądać? Bo ja za głupi na to jestem...
Dostałeś dwie podpowiedzi aby dodać <windows.h>
. Trzeciej nie będzie.
tak, chcę schować swoją aplikację/ nie nie wiruski;p
Czy przez ten czas spróbowałeś dołączyć nagłówek, którego nazwa pojawiła się w tym wątku tyle razy?
Czy próbowałeś zamiast tego dodać flagę -mwindows? (Jeżeli używasz MinGW... Testowałem, działa.).
Owszem, próbowałem, ale nie idzie, interesuje mnie natomiast o co chodzi z tą flagą- jestem początkujący i tego nie kryję. Jak się ją dodaje?
To jest dokładnie to co proponowałem w pierwszej odpowiedzi w temacie... Zmienia typ aplikacji na okienkową dzięki czemu nie ma ona konsoli...
edit: chodzi o parametr linii poleceń. można ją dodać pewnie w ustawieniach projektu twojego IDE - sprawdź w okolicach Project->Compiler Options albo coś takiego.
http://error501.wikidot.com/g-moja-pierwsza-kompilacja
Kiedy kompilujesz, np:
g++ -pedantic -ansi -O3 -Wall -Werror -Wextra -s -Woverflow -Wunused moje_zrodlo.cpp -o moja_binarka.exe
to -pedantic, -ansi i tak dalej - są to argumenty (parametry) podane do programu. Argumenty, które skutkują włączeniem lub wyłączeniem (1 lub 0) jakiejś opcji nazywane są "flagami". Wpisz:
g++ --help
a dowiesz się więcej. ;)
Jeżeli używasz jakiegoś IDE, to flagi kompilatora możesz dodawać najpewniej w opcjach projektu.