Показать полную графическую версию : Как скрыть окно в котором выполняется пакетный файл (*.bat или *.cmd)?
Скрытие консольных окон (http://oszone.net/6156)
Bat To Exe Converter (http://ru.fileaward.com/bat_to_exe_converter.html) - Freeware - 390 КБ
Преобразует .bat файлы в .exe
Гибкие настройки программы.
[hr]
Здравствуйте. Есть bat-файл, в котором есть цикл, и он постоянно крутится в памяти. Можно ли сделать так, чтоб при этом не отображалось окно CMD, в котором, собствено и отображается все действо. Т.е. можно ли это окно CMD убрать с экрана, чтоб оно не мешало? Заранее спасибо.
ну его можно просто свернуть.
его можно свернуть и спрятать панель инструментов
это окно можно переместить за пределы монитора (правой клавишей - переместить)
Можно с помощью спец. программ принудительно свернуть его в трей.
Создай своему BAT-у ярлык, в свойствах укажи - Выполнять в свёрнутом окне. Правда я не помню как на это 2k/XP/NT реагируют, но по моему работало. Само в панель задач падает.
hasherfrog
30-12-2004, 16:09
В "Программировании" посмотрите мою тему "Скрываем чужую консоль". Там всё написано. Ваш случай.
или скрывать командную строку, ипользуя готовые утилиты. Вот тут (http://www.forum.oszone.net/showthread.php?t=42763) Vadikan писал, как это делать при помощи cmdow (http://www.commandline.co.uk/cmdow/index.html)
hasherfrog
30-12-2004, 17:42
>>или скрывать командную строку, ипользуя готовые утилиты
http://forum.oszone.net/showthread.php?t=29630
hasherfrog
:super: извини, не посмотрела. Действительно - простенько и со вкусом :)
hasherfrog
30-12-2004, 22:49
Самое смешное, что всё тоже самое делается не с помощью cmd и моей приблуды, а банальнейшим start /b ляляля.bat
ЕМНИП.
Мораль: читайте хелпы не только в линукс, но и в виндах.
хм, а у меня выдает:
C:\Program Files\Far>start
Запуск программы Windows или MS-DOS.
START [параметры] программа [аргументы...]
START [параметры] документ.расш
/m[inimized] Запуск программы в свернутом окне (фоновый режим).
/max[imized] Запуск программы в развернутом окне (основной процесс).
/r[estored] Запуск программы в стандартном окне (используется по умолчанию).
/w[ait] Отложить запуск до завершения предыдущей программы.
hasherfrog
31-12-2004, 00:17
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
C:\Documents and Settings\hasher>cd\
C:\>start /?
Запуск указанной программы или команды в отдельном окне.
START ["заголовок"] [/Dпуть] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME| /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B]
[команда/программа] [параметры]
"заголовок" Заголовок окна.
путь Рабочий каталог.
B Запуск приложения без создания нового окна с отключением
обработки сочетания клавиш ^C. Если приложение не
обрабатывает сочетание клавиш ^C самостоятельно,
единственным способом его прерывания является
использование сочетания клавиш ^Break.
I Новой средой станет исходная среда, переданная
cmd.exe, а не текущая среда.
MIN Запуск команды/программы в свернутом окне.
MAX Запуск команды/программы в развернутом окне.
SEPARATE Запуск 16-разрядной программы Windows в отдельной
области памяти.
SHARED Запуск 16-разрядной программы Windows в общей
области памяти.
LOW Запуск приложения с приоритетом IDLE.
NORMAL Запуск приложения с приоритетом NORMAL.
HIGH Запуск приложения с приоритетом HIGH.
REALTIME Запуск приложения с приоритетом REALTIME.
WAIT Запуск приложения с ожиданием его завершения.
ABOVENORMAL Запуск приложения с классом приоритета ABOVENORMAL
BELOWNORMAL Запуск приложения с классом приоритета BELOWNORMAL
команда/программа
Если это внутренняя команда cmd.exe или пакетный файл,
обработчик команд (cmd.exe) запускается с ключом /K.
Это означает, что окно не будет закрыто после завершения
команды.
Если это не внутренняя команда cmd.exe и не пакетный файл,
значит, это программа, которая будет запущена в графическом
или текстовом окне.
параметры Параметры, передаваемые команде/программе.
Изменения вызова внешних команд из командной строки или с помощью команды
START при включении расширенной обработки команд:
Для вызова неисполняемых файлов через механизм сопоставления типов файлов
достаточно просто ввести имя файла в командной строке. Например, команда
WORD.DOC запускает приложение, сопоставленное расширению имени файла .DOC.
Сведения о создании подобных сопоставлений из пакетных файлов приведены
в описаниях команд ASSOC и FTYPE.
При запуске 32-разрядного приложения с графическим интерфейсом пользователя
обработчик команд CMD.EXE не ожидает завершения работы приложения перед
возвратом к приглашению командной строки. Подобное новое поведение НЕ
относится к запуску приложений из пакетных файлов.
При выполнении командной строки, первым элементом которой является текстовая
строка "CMD" без расширения имени файла или указания пути, она заменяется
значением переменной COMSPEC. Это предотвращает запуск CMD.EXE из
текущей активной папки, если таковая программа там имеется.
Если первый элемент командной строки не содержит расширения имени файла,
обработчик команд CMD.EXE использует значение переменной среды PATHEXT,
чтобы определить расширения имен исполняемых файлов и порядок поиска
нужного файла. По умолчанию для переменной PATHEXT задается
значение:
.COM;.EXE;.BAT;.CMD
Обратите внимание, что этот синтаксис подобен синтаксису для переменной
PATH, то есть отдельные элементы разделяются точкой с запятой.
Если при поиске исполняемого файла нет соответствия ни одному из расширений,
выполняется проверка соответствия указанного имени папки. Если имя папки
соответствует указанному, то команда START запускает EXPLORER для этого
пути. Если такое действие выполняется из командной строки, то оно
эквивалентно выполнению команды CD /D для указанного пути.
C:\>
ох и наспамил...
а то, что у меня - от 98SE :)
hasherfrog
31-12-2004, 00:48
неожиданное применение (http://www.forum.oszone.ru/showthread.php?t=43154) ;)
hasherfrog
Xoрошая находка, только я что-то не пойму где там скрытие окна... Я запускаю несколько файлов батником типа
@echo off
start /b F:\data\file1.doc
start /b F:\data\file2.doc
start /b excel
EXITНо окно-то все равно висит пока команды исполняются. Файлики-то на сетевом диске, открываются не сразу. А вот если я первой строкой добавлю cmdow @ /HID имея утилиту cmdow.exe в %windir%\system32, то окно появляется лишь на миг, и сразу исчезает, в то время как команды все еще выполняются.
Shaytan
Здравствуйте. Есть bat-файл, в котором есть цикл, и он постоянно крутится в памяти. Можно ли сделать так, чтоб при этом не отображалось окно CMD, в котором, собствено и отображается все действо. Т.е. можно ли это окно CMD убрать с экрана, чтоб оно не мешало? Заранее спасибо.
Создаем элементарную консольную программу на С:
Определяем hwnd данного консольного окна: hwnd=GetForegroundWindow();
Запускаем батник в данном окне, например: system("mybatfile.bat");
вызываем функцию ShowWindow(hwnd, SW_HIDE); Окна нет на экране. Кстати то же самое можно проделать для любого окна в системе.
Полный текст:
#include <windows.h>
void main(){
HWND hwnd;
hwnd=GetForegroundWindow();
ShowWindow(hwnd, SW_HIDE);
system("mybatfile.bat");
ExitProcess(0);
}
hasherfrog
31-12-2004, 12:04
Vadikan
Xoрошая находка, только я что-то не пойму где там скрытие окна...
Очевидно, небольшая путаница из пары тем? ;-)
В данном случае (для этой темы) - решение в запуске самого батника с помощью start /b, а не использование start /b в батнике.
то окно появляется лишь на миг, и сразу исчезает
Ууу, это вообще не вариант. Не хватало, чтобы "моргало" чего-то перед носом. Хотя, на вкус и цвет...
hasherfrogОчевидно, небольшая путаница из пары тем? ;-)Наверное... В данном случае (для этой темы) - решение в запуске самого батника с помощью start /b,Хм, я все равно не понимаю. Я, вообще, уже с трудом понимаю мануалы и справки на русском языке, так что я перечитал ключи start на английском ;-) И вижу я, что просто новое окно cmd открываться не будет. Ну и что? Откуда ты батник запускаешь? Из командной строки? Ну так исходное окно все-равно остается и точно также висит и вообще не закрывается после отработки батника. Так в чем соль?
hasherfrog
01-01-2005, 20:21
Vadikan
Создайте ярлык на открытие a.txt (сам файл должен сущесвовать - это для примера).
В свойствах укажите
%comspec% /c a.txt
А теперь поменяйте на
%comspec% /c start /b a.txt
В первом случае окно висит, во втором - нет.
Хотя я уже сам стал запутываться, что, зачем и почему 8-P
hasherfrog
В первом случае окно висит, во втором - нет.Оно не висит, но отображается же на какой-то момент при запуске ;-) В общем, условие задачи сформулировано такЕсть bat-файл, в котором есть цикл, и он постоянно крутится в памяти. Можно ли сделать так, чтоб при этом не отображалось окно CMD, в котором, собствено и отображается все действо.Можно решить твоим способом %comspec% /c start /b filename.bat можно моим cmdow @ /HID
@echo off
start filename.bat
EXITну а метод mrcnn я не проверял.
hasherfrog
01-01-2005, 22:58
Ну и первым моим
hideconsole.exe filename.bat
До кучи, так сказать. ;-) Единственный метод, который "не моргает".
Вывод: тему занести в ФАК, для будущих поколений.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.