Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Example | Скрываем чужую консоль

Ответить
Настройки темы
Разное - Example | Скрываем чужую консоль

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85


Конфигурация

Профиль | Отправить PM | Цитировать


Данная малюсенькая прога призвана решить проблему, описанную здесь. Действительно, иногда "болтающееся" черное окно консоли раздражает. Поэтому мы напишем хитрую "обертку" для конcольных приложений, которые запускают программу, но прячут её основное консольное окно.

Код: Выделить весь код
#include <process.h> 
#include <stdio.h> 
#include <windows.h> 
 
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR lpszCmd,int nCmd) 
{ 
    STARTUPINFO si; 
    PROCESS_INFORMATION pi; 
 
    /* create process with new console */ 
    memset(&si,0,sizeof(si)); 
    si.cb = sizeof(si); 
    si.dwFlags = STARTF_USESHOWWINDOW; 
    si.wShowWindow = SW_HIDE; 
    if( CreateProcess( NULL, lpszCmd, 
                       NULL, NULL, FALSE, CREATE_NEW_CONSOLE, 
                       NULL, NULL, &si, &pi ) ) 
    { 
        CloseHandle( pi.hProcess ); 
        CloseHandle( pi.hThread ); 
    } 
 
    /* terminate this */ 
    return 0; 
}
Скачать

FAQ

Q. И как использовать?
A. Компилите. Кладёте результат (например hidec.exe) в c:\windows\system32. Вместо стандартного запуска "целевого" консольного приложения идёте в Пуск->Выполнить, набираете hidec.exe путь\имя_целевого_приложения. Консольное приложение будет запущено, но его окна Вы не увидите.

Q. Эй, а где оно? И как его теперь закрыть?
A. Посмотрите через Ctrl+Alt+Del. Снимать с выполнение - там же. Если "целевое" приложение умеет само закрываться после окончания своей работы, то оно так и сделает.

Q. А может, лучше _default.pif настроить, или ярлык с определёнными свойствами сделать?
A. Я никого не заставляю делать именно по-моему.

Q. Как компилить?
A. Я использую Visual C++ Toolkit. Компиляция:
cl hide_console.cpp /GA /O1 /link /defaultlib:advapi32.lib /defaultlib:user32.lib

Q. И что, я в своих консольных приложениях такое должен делать?
A. Нет. В "своём" консольном приложении используёте FreeConsole(), или пишите через WinMain, а не main(). Данная "обёртка" нужна для чужих приложений.


Q. Можно использовать в моих программах куски текста?
A. Да, сделано специально для посетителей www.oszone.net

Q. У меня ещё вопросы...
A. Задавайте здесь, я отвечу.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:40, 29-06-2004

 

Ветеран


Сообщения: 570
Благодарности: 236

Профиль | Отправить PM | Цитировать


Drongo,
Код: Выделить весь код
@echo off  start FORMAT M:  del start.cmd
и призапуске cmd. выскакивает это окно

Последний раз редактировалось korsar77, 05-09-2009 в 22:05.


Отправлено: 20:21, 04-08-2009 | #41



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


korsar77, Мне кажется, ничего в этом случае не выйдет, так как при выполнении этого батника, происходит запуск ещё консольной программы по форматированию - format.com

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 13:09, 26-08-2009 | #42


Ветеран


Сообщения: 570
Благодарности: 236

Профиль | Отправить PM | Цитировать


Drongo, По-большому счету это не так и актуально. но может помочь в определеной мере для общего развития.Вы можете предложить варианты для решения непосредственно для форматирования ?

Отправлено: 20:24, 26-08-2009 | #43


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата korsar77:
Вы можете предложить варианты для решения непосредственно для форматирования ? »
Нет, к сожалению у меня решений нет.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 12:26, 27-08-2009 | #44


Аватара для apozlevich

Ветеран


Автор проектов


Сообщения: 1025
Благодарности: 180

Профиль | Отправить PM | Цитировать


Цитата hasherfrog:
Q. А есть ли бинарник?
A. Есть. Тут пока лежит. »
Лежит, да. Сайт лежит.

Цитата:
Внимание: последний ответ в эту тему был добавлен более чем 2 Лет назад
Снова я некропосчу...

Нашел ссылку на wiki, если кому надо, вот она, там и код и бинарник, хз какая версия, но кода там внушительно больше, чем здесь.

-------
echo 127.0.0.1 google.ru >> %systemroot%\system32\drivers\etc\hosts && ipconfig /flushdns && echo Я ничего не трогал, оно само!


Отправлено: 21:20, 17-10-2011 | #45


Аватара для Wu-Tang

Ветеран


Сообщения: 1309
Благодарности: 79

Профиль | Отправить PM | Цитировать


Vadikan,
перечитал ваши посты и коллег в этой теме, также заинтересовало скрытие из guirunonce, вобщем правильно ли я сделал, использую hidcon, его положил в - oem - $$ - system32
в winnt.sif
[GuiRunOnce]
Command0="hidcon %windir%\Tweaks.cmd"

все правильно?

и самое интересное, скрытие окон из cmdlines, я так понял не решилось?
тк hidcon там не прокатывает.

-------
Всему свое время и каждому свой час!
Хочешь жить - умей вертеться!


Отправлено: 23:59, 01-10-2014 | #46


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Кто нибудь пробовал скрыть консоль в Windows 10? Утилиты hidec и hidcon в ней не работают, как и сторонние программы для скрытия консоли, теоретически скрыть консоль в Windows 10 можно, но передать команду выполнения на срытую таким образом консоль или выполнить bat или cmd файл через указанные утилиты невозможно.

Отправлено: 10:52, 28-07-2015 | #47


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Прошу извинения за предыдущее сообщение, утилиты hidec и hidcon прекрасно работают в Windows 10, проблема как оказалось заключалась исключительно в антивирусе Dr.Web после его установки в Windows 10, указанные утилиты как и некоторые системные настройки отказались правильно работать http://forum.drweb.com/index.php?sho...069&hl=windows

Отправлено: 20:59, 03-08-2015 | #48


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Vebserfer, Привет, я делал так, без сторонних программ типа hidcon, hidec, правда не в 10-ке, проверьте у себя, интересен результат.

Файл .cpp
Код: Выделить весь код
...
// Скрытие консольного окна--------------------------------------------------
void __fastcall TForm1::RunWaitHide(AnsiString EXEFILE)
{
   char* command = EXEFILE.c_str();
   STARTUPINFO si;
   PROCESS_INFORMATION pi;
   ZeroMemory( &si, sizeof(si) );
   si.cb = sizeof(si);
   si.wShowWindow = SW_HIDE; //вот тут то мы и скроем окно программы
   si.dwFlags = STARTF_USESHOWWINDOW; //вот та строчка, которую я забыл дописать:)
   ZeroMemory( &pi, sizeof(pi) );
   if(CreateProcess(NULL, command, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)){
      WaitForSingleObject(pi.hProcess, INFINITE);
     }
   CloseHandle( pi.hProcess );
   CloseHandle( pi.hThread  );
}
// Формируем сценарный файл с выбранными командами---------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   String Res = "gui_nmar.cmd"; // кмдшник, так же можно передать ключи к нему
   RunWaitHide(Res);
}
...
Файл .h
Код: Выделить весь код
...
private:	// User declarations
   void __fastcall RunWaitHide(AnsiString exefile);
...

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 10:17, 05-08-2015 | #49


Старожил


Сообщения: 255
Благодарности: 26

Профиль | Отправить PM | Цитировать


Доброго времени суток. А кто нибудь может подсказать, почему программа выполняет не всю строку? Есть CMD файл, который делает резервную копию некоторых программ:
Скрытый текст
Код: Выделить весь код
7z a -ssw -mx9 -mmt=on -ms=on -y "d:\Install\!BackUp\Kodi_%date%.7z" "%APPDATA%\Kodi\" && 7z a -ssw -mx9 -mmt=on -ms=on -y "d:\Install\!BackUp\XBMC_Main_%date%.7z" "d:\Xbmc 13.6\" && 7z a -ssw -mx9 -mmt=on -ms=on -y "d:\Install\!BackUp\Bittorrent_%date%.7z" "%APPDATA%\BitTorrent\"


Если в Планировщике Заданий создать задачу по запуску:
Код: Выделить весь код
hidec.exe Kodi_arc.cmd
То выполнится только первая часть команды до символов &&. Если же запустить CMD файл двойным кликом, или из того же Планировщика Задач, то выполняются все команды. Что можно сделать, чтобы и окно консоли не мешало пользователю и выполнялись все команды? Желательно, чтобы всё это можно решить только одной задачей в Планировщике, а не создавать отдельные задачи, для каждой команды. Спасибо.

Последний раз редактировалось sNc-DAntES, 04-10-2015 в 01:15.


Отправлено: 22:34, 03-10-2015 | #50



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Example | Скрываем чужую консоль

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Консоль Windows Sweet_Lady Хочу все знать 13 27-03-2009 21:28
Прочее - [решено] last login..(консоль) slaine Общий по Linux 2 24-11-2008 18:21
[решено] консоль ММС и удаленное управление nedrug Microsoft Windows 2000/XP 6 20-03-2007 16:21
[решено] Консоль с добиванием табом как в Linux? andrey_tor Microsoft Windows 2000/XP 5 23-02-2006 12:32
Delphi - Delphi: как закрыть чужую прогу pvr30 Программирование и базы данных 13 06-08-2003 19:15




 
Переход