Используя функцию прозрачности в NirCMD.exe, я создал эффект непрозрачности, но командная строка исчезла после выполнения - PullRequest
0 голосов
/ 02 июня 2018

Я использую функцию прозрачности в NirCMD, плагине для командной строки.Ссылка для загрузки и руководство здесь: http://www.nirsoft.net/utils/nircmd.html. У меня есть следующий код для эффекта непрозрачности:

:FADE
FOR /L %%G IN (100,1,256) DO (
   nircmd.exe win trans ititle "cmd" %%G
)
GOTO :EOF

Я запускаю его, вызывая его:

CALL :FADE
echo.
echo.
echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
echo.
echo.
echo GAME  
echo.
echo.
echo.                          
echo Play (a)       
echo.
echo.
echo Highscore (b) 
echo.
echo.
echo Credits (c)
echo.
echo.
echo.
echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

Однако после завершения эффекта непрозрачности командная строка полностью исчезает.Может кто-нибудь помочь мне решить эту проблему?

Спасибо:)

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Начнем с того, что вы называете его :FADE, который предлагает постепенно становиться более прозрачным.

Наиболее прозрачное значение - 0, а наименее прозрачное - 255, (наиболее непрозрачное).) .По этой причине и для простоты понимания вы должны обратить числа в цикле For, чтобы начать с наименее прозрачного значения, (наибольшее число) , шагать с отрицательными приращениями и остановиться на самом прозрачном значении, (наименьшее число) .

Если вы используете известный заголовок, используя команду Title, вы можете использовать nircmd s title вместо intitle или etitle чтобы найти его.

Поскольку время, затрачиваемое на прохождение каждого шага, очень быстрое, между каждым будет разумная задержка.Timeout можно использовать, однако 1 секундных задержек между каждой итерацией слишком много для разумного эффекта типа замирания, поэтому я решил использовать PathPing.

Также предлагается, чтобы выиспользуйте команду Start с ее опцией /B, чтобы разрешить запуск процесса без влияния на итерации цикла и не открывать новые отдельные окна.

Наконец, в моем ответе используется консольная версия nircmd.exe, nircmdc.exe.Он должен быть идентичным в использовании;разница в том, что выходные сообщения передаются на консоль, а не в окнах с графическим интерфейсом, (хотя в этом случае не должно быть никакого вывода) .

Вот пример кода:

@Echo Off
Title Fade
For /L %%A In (255,-15,105) Do Start "" /B nircmdc win trans title "Fade" %%A & PathPing 127.0.0.1 -n -q 1 -p 225 >Nul

Не стесняйтесь регулировать шаг приращения -15 и период ожидания 225 для достижения требуемого эффекта.


ЕслиВы хотите выполнить противоположную функцию, то есть увеличить непрозрачность, тогда вы будете использовать эту структуру:

@Echo Off
Title Opacate
For /L %%A In (105,15,255) Do Start "" /B nircmdc win trans title "Opacate" %%A & PathPing 127.0.0.1 -n -q 1 -p 225 >Nul

Не стесняйтесь регулировать шаг приращения, 15 и период ожидания, 225 для достижения необходимого эффекта.

0 голосов
/ 02 июня 2018

Максимум прозрачности составляет 255, поэтому для 100% прозрачности необходимо изменить значение 256 на 255.
Причина этого в том, что при превышении лимита число вернется к 0, и этопочему окно исчезает после запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...