Jak ukryć konsolę Windows?
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Jak ukryć konsolę Windows?

AutorWiadomość
Temat założony przez niniejszego użytkownika
Jak ukryć konsolę Windows?
» 2010-07-02 23:42:17
Witam

Potrzebuje kodu na:
1. automatycznie minimalizowanie się konsoli zaraz po jej włączeniu.
2. działanie konsoli podczas zminimalizowania jej.
3. nie pokazywanie się na pasku zadań konsoli.

nie będę pisał do czego mi to jest potrzebne ale zapewniam że do niczego złego
raczej żeby się pośmiać ;] a przy okazji głębiej poznam c++ ;]

z góry dzięki za pomoc
P-18539
» 2010-07-03 00:29:13
Nie da się napisać aplikacji konsolowej, która NIE będzie widoczna na pasku (przynajmniej ja nie wiem jak to zrobić). Alternatywnym rozwiązaniem jest WinAPI i tam da się uruchomić aplikację, która nie będzie na pasku oraz będzie uruchomiona (ale wtedy chyba będzie musiała być w tray'u - tego do końca teraz pewien nie jestem).

/edit:
Choć jak by się lepiej zastanowić to być może i się da - trzeba pobrać uchwyt do okna konsoli - jak to będziesz miał to już powinno być z górki.

/edit2:
Zależy co chcesz osiągnąć. Możesz zrobić to na dwa sposoby:

1) Kompilujesz program w WinAPI do pliku exe a następnie piszesz konsolówkę i w tym programie uruchamiasz tego exe'ka (poszukaj w msdnie o funkcji, która zwie się bodajże CreateProcess).

2) Zamiast WinMain piszesz int main() i tam tworzysz okno. Wtedy okno się utworzy na konsoli, w której dalej będziesz mógł wykonywać instrukcje po zniszczeniu tego okna. Od razu odpowiadam: tak, w funkcji int main() też można uzyskać parametr typu HINSTANCE będący uchwytem na bieżącą instancję aplikaji. Realizuje to funkcja ...(nie pamiętam nazwy, zdaj się na google albo kogoś z lepszą pamięcią)...

EDIT:
robisz tak:
C/C++
HWND WindowHandle = GetConsoleWindow();
a następnie:
C/C++
LONG Instance = GetWindowLong( WindowHandle, GWL_HINSTANCE );

I już masz pobrany uchwycik 
Źródło: http://forum.pclab.pl/lofiversion/index.php?t575708.html
P-18543
Temat założony przez niniejszego użytkownika
» 2010-07-03 00:57:36
tylko jest mały problem nie znam się jeszcze na WIN API ;[

C/C++
#include <iostream>
#include <conio.h>
#include <fstream>
using namespace std;
int main()
{
    fstream plik;
    plik.open( "nazwa.txt" );
    char znak;
    do
    {
        znak = getch();
        plik << znak;
        while( kbhit() )
             cout << endl;
       
    }
    while( znak != 27 );
   
    plik.close();
    return 0;
}
P-18544
» 2010-07-03 01:23:30
Schowanie okna konsoli - nie widać ani na pasku ani w trayu.
C/C++
HWND okno = FindWindowA( "ConsoleWindowClass", NULL );
ShowWindow( okno, SW_HIDE );

// lub

HWND okno = GetConsoleWindow();
ShowWindow( okno, SW_HIDE );

Edit:
Teraz zauważyłem twojego drugiego posta.
To nie przejdzie, po schowaniu nie masz dostępu do klawiatury. Program może wykonywać jakieś obliczenia itd. ale nie pobierać dane od użytkownika.

Ewentualnie użyj funkcji FreeConsole()
http://msdn.microsoft.com/en-us/library/ms683150%28VS.85%29.aspx
ona też ukryje okno konsoli, a odczyt klawiatury zrób na GetAsyncKeyState()
P-18545
» 2010-07-03 10:34:37
to pierwse rozwiązanie będzie lepsze, bo jak psizesz wirusa to po ci pobieranie danych z klawiatury?
P-18547
» 2010-07-03 12:12:40
..., bo pisze Keyloggera?
P-18548
» 2010-07-03 12:14:27
ale nie potrzebne mu sygnały z klawiatury dla okna konsoli tylko potrzebuje globalnego hacka

to można zrobić nie ważne czy masz okno czy nie
P-18549
Temat założony przez niniejszego użytkownika
» 2010-07-03 13:51:51
w c++ jestem niezbyt ogarnięty znam tylko podstawowe "rzeczy" ;]

wpisałem to co napisałeś u góry ale tak jak mówiłeś że działa bo jej zminimalizowane ;]

a ta funkcja z strony microsoft'u to nie wiem jak to zapisać
P-18550
« 1 » 2 3
 Strona 1 z 3Następna strona