|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Скрыть консольное окно, не ломая конструкцию |
|
|
CMD/BAT - Скрыть консольное окно, не ломая конструкцию
|
Ветеран Сообщения: 2153 |
При деинсталляции программы из Inf-файла запускается батник: CMD.exe /c "%24%\%PROG_DIR%\SetPath.cmd Del"
Содержимое батника: @Echo Off SetLocal EnableDelayedExpansion Set InstPath=%SystemDrive%\My_Program Set sw="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" For /F "tokens=2*" %%j In ('Reg Query %sw% /v Path ^| Find /I "Path"') Do Set type=%%j& Set curpath=%%k Echo "%curpath%" | Find /I "%InstPath%" >Nul && Goto _Del If /I %~1#==Del# Pause>Nul & Exit Reg Add %sw% /v Path /t %type% /d "%curpath%;%InstPath%" /f nircmdc sysrefresh environment Exit :_Del If /I %~1#==Add# Pause>Nul & Exit Reg Add %sw% /v Path /t %type% /d "!curpath:;%InstPath%=!" /f nircmdc sysrefresh environment Exit |
|
Отправлено: 23:04, 29-04-2013 |
Ветеран Сообщения: 1758
|
|
Отправлено: 23:17, 29-04-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2153
|
Профиль | Отправить PM | Цитировать Foreigner,
Честно говоря, не понял как это может сработать. Если прописываю это в самом батнике, то бесполезно, т.к. команда Echo вызовет консольное окно и оно хотя и малозаметно, но всё равно мелькнёт. Если это должно быть в inf-е , то не представляю как это туда запихать, это ж не батник. ![]() |
------- Последний раз редактировалось Nun-Nun, 29-04-2013 в 23:51. Отправлено: 23:40, 29-04-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Окно консоли порождает сам процесс cmd.exe, безо всякой связи с наличием/отсутствием «echo».
Цитата Nun-Nun:
используйте вызов «nircmd.exe», например, с командой execmd, которой передавайте в качестве параметра Ваш пакетный файл. |
|
Отправлено: 09:24, 30-04-2013 | #4 |
Ветеран Сообщения: 2153
|
Профиль | Отправить PM | Цитировать Iska,
Не всё так просто, как хотелось бы. Как оказалось проблема несколько сложнее. Изначально в inf-файле запускается три процесса с cmd.exe: [PNF.Files] CMD.exe /c "Del /q /f %17%\%NAME_INF%.pnf" CMD.exe /c "Del /q /f %17%\%NAME_INF%.inf" [PROG.DelSetPath] CMD.exe /c "%24%\%PROG_DIR%\SetPath.cmd Del" В итоге, во-первых, появляется сообщение о том, что NirCMDc.exe не найден (что и не удивительно), во-вторых inf- и pnf-файл остаются неудалёнными. Тут, насколько вижу, нужно ломать организацию всего inf-а, чего делать не хотелось бы, т.к. полезут другие проблемы. |
|
------- Отправлено: 11:56, 30-04-2013 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Nun-Nun, во-первых, не «nircmdc.exe», а «nircmd.exe». «nircmdc.exe» — как раз консольная версия утилиты. Во-вторых — помещайте его в «%SystemRoot%» при установке и не удаляйте впоследствии. Третий путь, если таки хотите держать его в папке приложения — «PendMoves»: задать удаление файла «nircmd.exe» и удаление папки не тотчас же, а при очередной перезагрузке.
|
Отправлено: 13:19, 30-04-2013 | #6 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Nun-Nun, для удаления файлов нет необходимости использовать батник, inf файлы это умеют сами, без сторонних утилит. Удаление файлов и директорий
Для скрытия окон в inf файле есть флаги. Последовательное выполнение списка команд (AdvancedINF) Руководство по работе с INF-файлами |
Отправлено: 13:36, 30-04-2013 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать То-то ж, не пользуешься — не знаешь
![]() |
Отправлено: 13:56, 30-04-2013 | #8 |
Ветеран Сообщения: 2153
|
Профиль | Отправить PM | Цитировать Цитата gora:
Цитата Iska:
Цитата Iska:
|
|||
------- Отправлено: 16:21, 30-04-2013 | #9 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Nun-Nun, батник можно запаковать в hide SFX с использованием "маленьких" модулей (SetTools), размер будет даже меньше чем у nircmd.
|
Отправлено: 16:46, 01-05-2013 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Как скрыть консольное окно? | 7human7 | Скриптовые языки администрирования Windows | 39 | 30-03-2018 17:29 | |
[решено] AutoIt:как не только запустить прогу вместе с пу, но и скрыть ее окно. | Димончик555 | AutoIt | 2 | 26-11-2011 02:11 | |
Скрыть всплывающее окно ... | FlatX007 | AutoIt | 9 | 30-05-2009 22:32 | |
Как узнать пароль root , не ломая систему? | Slider | Общий по Linux | 23 | 29-08-2004 17:39 | |
Скрыть окно | Hard | Программирование и базы данных | 4 | 27-09-2002 09:14 |
|