Показать полную графическую версию : [решено] do not touch, do not close
Уважаемые, подскажите пожалуйста, есть ли возможность запретить закрытие командной строки. Что бы кнопка закрытия была не активна при выполнении пакетного файла?
Anonymоus
12-03-2013, 17:54
Примерный неработающий вариант. Приведён здесь лишь, как иллюстрация подхода, который возможно, вам пригодится.
@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 (http://www.nirsoft.net/utils/nircmd.html).
7ka, смысл сего каков?
Что помешает пользователю использовать прерывание по Ctrl-C или завершение процесса окна консоли?
Iska, спасибо, будет время, завтра попробую
Что помешает пользователю использовать прерывание по Ctrl-C или завершение процесса окна консоли? »
не все ёгурты пользователи одинаково полезны грамотны)))
Iska, не удалось получить нужный результат, печалька((
... я почитал справку nircmd, подчеркнул для себя несколько полезных параметров, за это премного благодарен!
Буду копать дальше, может найдется решение, отключения кнопки [x] в окне пакетного файла
неработающий вариант »
Работающий на 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
https://dl.dropbox.com/u/35142695/no_keys.png
gora
http://i52.fastpic.ru/big/2013/0313/19/d2421f18bf908e19ed3130b6889c7119.png
кнопка [x] и все остальное осталось, а вот перетащить окно не получается
и все остальное осталось »
На какой системе?
Работающий на win7 »
перетащить окно не получается »
Ищите другой style или exstyle, а может потребуется их комбинация... :dont-know
На какой системе? »
win7hb x64
благо машин куча рядом, эта ось уже давно стоит, может что с ней не так, сейчас попробую на другой, отпишусь...
Так и есть! проверил на другой машине с win7starter все работает, а под win8 то уже не пойдет данный код?
Сделать окно неактивным позволяет добавление стиля 0x08000000.
nircmdc win +style process /%MyPID% 0x08000000 Кнопки будут видны, но они, будут неактивны, нажать будет нельзя, но и окно перетащить неудастся.
Сделать окно неактивным позволяет добавление стиля 0x08000000.
Код:
nircmdc win +style process /%MyPID% 0x08000000
Кнопки будут видны, но они, будут неактивны, нажать будет нельзя, но и окно перетащить неудастся. »
Благодарю, это вариант мне больше подошел!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.