|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Example | Скрываем чужую консоль |
|
Разное - Example | Скрываем чужую консоль
|
Старый параноик Сообщения: 2423 |
Профиль | Отправить 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 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать sNc-DAntES, для чего там вообще нужны «&&»?!
Цитата sNc-DAntES:
|
|
Отправлено: 23:00, 03-10-2015 | #51 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 255
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:36, 04-10-2015 | #52 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата sNc-DAntES:
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\" Для совмещения нескольких команд в одной строке применяется один амперсанд «&», а использованный Вами «&&» используется для условного исполнения команд: последующая команда исполняется в том, и только в том случае, если предыдущая вернёт ненулевой код возврата. |
|
Отправлено: 13:31, 04-10-2015 | #53 |
Старожил Сообщения: 255
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:38, 04-10-2015 | #54 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Скомпилируйте, пожалуйста, 64-битную версию.
|
Отправлено: 13:16, 11-10-2015 | #55 |
Старожил Сообщения: 210
|
Профиль | Отправить PM | Цитировать Цитата hasherfrog:
А вы можете подсказать код который будет запускать тОлько robocopy.exe ? Подобная программа потенциально опасна т.к. может скрыть работу какой либо вредоносной программы, и поэтому хотелось бы адаптировать ее под определенную программу ( robocopy.exe - стандартная программа в windows 7, лежит в папке system32 ) т.е. ограничить.. |
|
Отправлено: 08:12, 28-12-2015 | #56 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать wiznv, к сожалению, коллега hasherfrog три года, как не появлялся на форуме. Напишите ему письмо на почту (ссылка доступна из его профиля).
|
Отправлено: 11:33, 28-12-2015 | #57 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать выложите кто-нибудь бинарник, пожалуйста.
|
Отправлено: 23:43, 08-11-2019 | #58 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 02:49, 09-11-2019 | #59 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Консоль 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 |
|