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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] do not touch, do not close

Ответить
Настройки темы
CMD/BAT - [решено] do not touch, do not close
7ka 7ka вне форума

Аватара для 7ka

Старожил


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


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

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


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

Отправлено: 15:57, 12-03-2013

 

Старожил


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

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


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

Код: Выделить весь код
@Echo Off
:: Получаем PID своего процесса
Call :GetPID
:: Убираем кнопки закрытия окна
nircmdc win -style process /%MyPID% 0x000000000
:: Выполняем полезную нагрузку
Echo blablabla
Echo ~~~
Echo blablabla
:: Возвращаем кнопки закрытия окна
nircmdc win +style process /%MyPID% 0x000000000
Pause&Exit

:GetPID
:: Устанавливаем случайный уникальный заголовок окна
Set Title=%Random%%Random%
Title %Title%
:: Ищем процесс по заголовку окна и получаем PID
For /F "tokens=2" %%A In ('TaskList /FI "windowtitle EQ %Title%"^|Find "."') Do (Set MyPID=%%A)
:: Заменяем случайный заголовое на имя скрипта
Title %~nx0
Exit /B
Проблема в том, что я не знаю нужное значение бита style\exstyle, которое позволит убрать кнопки закрытия. И то, возможно ли это вообще с окном командной строки. Но надеюсь, это даст вам ключ к решению данной проблемы.
В скрипте используется внешняя утилита nircmd.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:54, 12-03-2013 | #2



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

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


Ветеран


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

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


7ka, смысл сего каков?

Что помешает пользователю использовать прерывание по Ctrl-C или завершение процесса окна консоли?

Отправлено: 19:11, 12-03-2013 | #3

7ka 7ka вне форума Автор темы

Аватара для 7ka

Старожил


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

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


Iska, спасибо, будет время, завтра попробую
Цитата:
Что помешает пользователю использовать прерывание по Ctrl-C или завершение процесса окна консоли? »
не все ёгурты пользователи одинаково полезны грамотны)))

Отправлено: 19:27, 12-03-2013 | #4

7ka 7ka вне форума Автор темы

Аватара для 7ka

Старожил


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

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


Iska, не удалось получить нужный результат, печалька((
... я почитал справку nircmd, подчеркнул для себя несколько полезных параметров, за это премного благодарен!
Буду копать дальше, может найдется решение, отключения кнопки [x] в окне пакетного файла

Отправлено: 09:30, 13-03-2013 | #5


Аватара для gora

Ушёл из жизни


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

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


Цитата Anonymоus:
неработающий вариант »
Работающий на win7:
Код: Выделить весь код
@Echo Off
:: Кодировка файла Кириллица DOS (866)
:: Получаем PID своего процесса
Call :GetPID
:: Убираем кнопки закрытия окна
nircmdc win -style process /%MyPID% 0x00C00000
:: Выполняем полезную нагрузку
Echo %Title%
Echo %MyPID%
Echo blablabla
Pause
:: Возвращаем кнопки закрытия окна
nircmdc win +style process /%MyPID% 0x00C00000
Pause&Exit

:GetPID
:: Устанавливаем случайный уникальный заголовок окна
Set Title=%Random%%Random%
Title %Title%
:: Ищем процесс по заголовку окна и получаем PID
For /F "tokens=2" %%A In ('TaskList /FI "windowtitle EQ Администратор:  %Title%"^|Find "."') Do (Set MyPID=%%A)
:: Заменяем случайный заголовое на имя скрипта
Title %~nx0
Exit /B
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:51, 13-03-2013 | #6

7ka 7ka вне форума Автор темы

Аватара для 7ka

Старожил


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

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


gora



кнопка [x] и все остальное осталось, а вот перетащить окно не получается

Отправлено: 11:19, 13-03-2013 | #7


Аватара для gora

Ушёл из жизни


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

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


Цитата 7ka:
и все остальное осталось »
На какой системе?
Цитата gora:
Работающий на win7 »
Цитата 7ka:
перетащить окно не получается »
Ищите другой style или exstyle, а может потребуется их комбинация...

Отправлено: 11:22, 13-03-2013 | #8

7ka 7ka вне форума Автор темы

Аватара для 7ka

Старожил


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

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


Цитата gora:
На какой системе? »
win7hb x64
благо машин куча рядом, эта ось уже давно стоит, может что с ней не так, сейчас попробую на другой, отпишусь...

Так и есть! проверил на другой машине с win7starter все работает, а под win8 то уже не пойдет данный код?

Последний раз редактировалось 7ka, 13-03-2013 в 12:33.


Отправлено: 12:26, 13-03-2013 | #9


Аватара для gora

Ушёл из жизни


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

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


Сделать окно неактивным позволяет добавление стиля 0x08000000.
Код: Выделить весь код
nircmdc win +style process /%MyPID% 0x08000000
Кнопки будут видны, но они, будут неактивны, нажать будет нельзя, но и окно перетащить неудастся.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:28, 13-03-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] do not touch, do not close

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Close All Windows Lubitel Softa Наборы обновлений для Windows XP/2003/Windows 7 1 06-03-2016 18:19
Интерфейс - Отлючить кнопки Close,Min,Max Moorena Microsoft Windows 2000/XP 1 18-11-2010 10:54
2008 R2 - Debug/Close starden Windows Server 2008/2008 R2 0 01-07-2010 13:09
Загрузка - user32.dll - Точка входа в процедуру Close Clip... kolchoz Microsoft Windows 2000/XP 7 10-08-2007 19:24
Псы войны (Close Quarters Conflict) lllidia Игры 1 11-04-2007 14:58




 
Переход