cosole applicatin

29 отговора 1484 прегледа
#1

cosole applicatin

Така пиша си едно конзолно приложение на VC++ 6.0 обаче искам когато старирам exe-то да не се вижда , за целта пробвах следния начин:
.
.
void main(int argc, char **argv)
{
HWND hWnd;
hWnd = ::GetActiveWindow();
ShowWindow(hWnd, SW_HIDE );
.
.
.
обаче ефекта е никъв , та ако някои знае как става ще съм му много благодарен !

Отговор
в отговор на zOO #2

Re: cosole applicatin

какво значи това да не се вижда еxe-то?????
ние да не сме гадатели.... говори по ясно.

а ефекта на това дето си го писал е ясен - ::GetActiveWindow();
връща 0 щото няма прозорец

подозирам че искаш да скриеш console window-а ?
ох... уж бях казал че няма да се правя на гадател :)

Отговор
в отговор на zOO #3

Re: cosole applicatin

Имаше някаква функция от Вин32 АПИ дето откача конзолата на дадено приложение. DetachConsole или нещо такова. Има го МъСъДъНъ-то в секцията за конзолата. Като цяло не е добра идея, тъй като губиш възможността да реагираш на събитията за затваряне на сесията и програмата няма да се терминира успешно и ще остане оня диалог за принудително затваряне... Троянски кон ли пишеш?

Отговор
в отговор на zOO #4

Re: cosole applicatin

Един KpyM знае кво точно искаш. Утре вечер ша му кажи да фърли едно око тук и да ти обясни кво требе да напраиш. Мое и по-рано да погледне сам, ма по мои наблюдения напоследък е много зает, та не разчитай на помощ в близките 24 часа.

System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Отговор
в отговор на zOO #5

??????????????

и като нема да има усер интерфаце за чий хуй требе да е конзолно приложение?

Отговор
в отговор на zOO #6

Re: cosole applicatin

#pragma comment(linker,"/SUBSYSTEM:WINDOWS")

Отговор
в отговор на zOO #7

Re: cosole applicatin

Виж [линк]
Примера е как от конзолно приложение да прехванеш изхода от др. конзолно приложение, но с малко фантазия ще прехванеш изхода и за твоето. За да компилираш с VC++ закоментари #include <condefs.h>.
Друг вариант: напиши dir > nul в командния промпт

Отговор
в отговор на zOO #8

Re: cosole applicatin

Точно console window-а искам да скрия , а как да му подавам команди не е проблем. Sorry че се изразих неясно

Отговор
в отговор на zOO #9

Re: cosole applicatin

Напиши го като service.

Отговор
в отговор на zOO #10

Re: cosole applicatin

Важното е как стартираш това конзолно приложение /кп/ на което искаш да скриеш изхода - от друго ехе или стартираш само него.
При всички случаи е по добре да се стартира от др. програма. По този начин ще имаш пълен контрол в/у изхода от кп и ще можеш да го терминираш при извънредна ситуация ако забие.
В този случай копираш примера от линка директно и променяш реда, където се стартира смд.ехе с името на 2-то кп. А ако те мързи /като мен/ - направи стандартно конзолно приложение - my_con.exe и го стартирай така
"my_con.exe > nul" със ShellExecute() или CreateProcess() .

Отговор
в отговор на Veso #11

Re: cosole applicatin

По принцип ще го стартирам от друго exe , по следния начин:

WinExec("my.exe опции ",SW_HIDE);

Така работи безотказно :)) , обаче на мен ми беше интересно как да скрия прозореца , ако реша да не го стартирам по този начин !

Отговор
в отговор на zOO #12

Re: cosole applicatin

Ти в некоя фирма ли бачкаш, или още се учиш? Или може би и двете?



Отговор
в отговор на zOO #13

Re: cosole applicatin

Според МС WinExec() e отживелица от тъмните времена на Win16 API.
Чудно ми е дали ще я има и в Дъъъългия Рог.

Отговор
в отговор на Pekoнcтpykтop #14

Re: cosole applicatin

Просто уплатнявам свободното си време между изпитите , нищо че уча икономика :))

Отговор
в отговор на zOO #15

Re: cosole applicatin

незнам точно какво се опитваш да напраиш, ама ного изглежда като да го правиш по погрешен начин, но ако се пак даржиш да си хайднеш конзолката ето така се прави

естествено не носа отговорнаст ако този пример не работи при тебе или в следствие на него претарпиш някакви си загуби и т.н.


BOOL HideConsole( ){

char acTitle[ 200 ];
char acTmp[ 100 ];
HWND hConsoleWnd;


// save the original title
GetConsoleTitle( acTitle, 200 );

// let's create an "unique" console title
srand( time( NULL ) );
sprintf( acTmp, "my_s3cr37_717l3 %d", rand( ) );

// set our "unique" title
SetConsoleTitle( acTmp );

// let's hope we'll really find our window
hConsoleWnd = FindWindow( NULL, acTmp );

// restore the original title
SetConsoleTitle( acTitle );

// hide console window
ShowWindow( hConsoleWnd, SW_HIDE );

// no error checking
return( TRUE );
}


cheater is JND in elusive of botfly to dimple with prefecture.
Отговор
в отговор на KpyM #16

Re: cosole applicatin

Хора не се въздържах - вие сте се побъркали.

Човекът вече го написа(почти) - вика се

FreeConsole()

и толкоз...

Сигнатура!
Отговор
в отговор на Questor #17

Re: cosole applicatin

да де ама фриконзоле не скрива конзола джама а освобождава конзолата
нали праиш разликата


cheater is JND in elusive of botfly to dimple with prefecture.
Отговор
в отговор на KpyM #18

Re: cosole applicatin

Мда прав си. Зависи човека кво точно иска.
Чуковете гледам, че са сложили GetConsoleWindow, ама за W2K+.

Сигнатура!
Отговор
в отговор на KpyM #19

Re: cosole applicatin

Криенето е за слабите духом. Истински силните детачват конзолата и после намират начин да терминират правилно програмата при приключване на сесията. Осовбоди конзолата от оковите на прозоречното обкръжение и тя ще ти се отблагодари щедро

Ако нещо ви се струва сложно, мога да го направя още по-сложно
Отговор
в отговор на KpyM #20

:(

КруМ-е мерси за примерчето , обаче сега прозореца на конзолата се показва съвсем на бързо , но още не се скрива изцяло :(( , пак е по добре е от преди де.

Отговор