Вы должны войти, чтобы создавать сообщения и темы.

Выделение пунктов цветом.

Всех приветствую!

Помогите решить трудный для меня момент. При проверке пункта, он выделяется у меня весь. Хотелось бы если это возможно, что бы он оставался заданным ему цветом, а рядом надпись, применён пункт или нет с нужным цветом. Сейчас проверка выполняется так

reg query HKLM\Software\Classes\exefile\shell\runas" /v "ProgrammaticAccessOnly && set "Ad=0a" || set "Ad=04"

Заранее благодарю!

N, Привет.
Так ты перенеси по ближе название меню я так понял, полного кода нет, непонятно.
Вот пример я настаряпал:

@echo off
chcp 65001 >nul
set "ch=cecho.exe"

reg query "HKLM\Software\Classes\exefile\shell\runas" /v "ProgrammaticAccessOnly" >nul 2>&1 && (
    %ch% {0f}Проверка runas: {0a}Применён{\n}
) || (
    %ch% {0f}Проверка runas: {04}Не применён{\n}
)
pause

 

Лайкнул N
N
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Спасибо Миш!
А случайно не подскажешь, как проверить размер файла, если заранее известно его место и имя и если соответствует нужному размеру, то тогда производятся определённые действия. Просто есть одинаковые файлы, а вот какой из них используется можно определить только по размеру.

N, Самый простой вроде как способ:
В байтах впиши сколько весит файл твой, размер через свойства файла, не на диске, а именно размер и все, ну и путь до файла., если совпадает, дописывай действия что нужно делать и т.д.

@echo off
chcp 65001 >nul

set "file=%USERPROFILE%\Desktop\1.exe"

for %%A in ("%file%") do (
    echo Размер файла: %%~zA
    if %%~zA==41820320 (
        echo Совпадает
    ) else (
        echo Не совпадает
    )
)

pause
Лайкнул N
N
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Миш, попробовал твой код, отдельно работает. А вот когда пытаюсь добавить себе в проект не работает.

rem Состояние контекстного меню панели задач
  set "file=%SystemRoot%\ru-RU\explorer.exe.mui"
    for %%A in ("%file%") do (if %%~zA==14336 (set "TskBar={0a}применён") else (set "TskBar={04}не применён"))
  
rem Состояние контекстного меню панели задач и проводника
  set "file=%SystemRoot%\ru-RU\explorer.exe.mui"
    for %%A in ("%file%") do (if %%~zA==328192 (set "TskPZMenu={0a}применён") else (set "TskPZMenu={04}не применён"))
  
) >nul 2>&1

  %ch% {0f} 1 -{#} {0b}Панель задач {08}[%TskBar%{08}]{\n #}
  %ch% {0f} 2 -{#} {0b}Панель задач и проводник {08}[%TskPZMenu%{08}]{\n #}

Первый пункт не применён, а второй применён, но отображаются оба не применёнными. Что ни так не пойму.

А Скопировано) >nul 2>&1, ты закрыл получается блок
Во так должно быть.

@echo off
chcp 65001 >nul
set "ch=cecho.exe"

for %%A in ("%SystemRoot%\ru-RU\explorer.exe.mui") do if %%~zA==14336 (set "TskBar={0a}применён") else (set "TskBar={04}не применён")
for %%A in ("%SystemRoot%\ru-RU\explorer.exe.mui") do if %%~zA==328192 (set "TskPZMenu={0a}применён") else (set "TskPZMenu={04}не применён")

%ch% {0f} 1 -{#} {0b}Панель задач {08}[%TskBar%{08}]{\n #}
%ch% {0f} 2 -{#} {0b}Панель задач и проводник {08}[%TskPZMenu%{08}]{\n #}

pause

 

Лайкнули N и Psydiant
NPsydiant
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Спасибо Миш!
Всё работает.

Лайкнул Mikhail
Mikhail