1

Тема: CMD/BAT: в зависимости от изменения разрешения экрана менять ini-шник

Здравствуйте!

ДАНО: Программа start.exe отображает фоновую картинку и две колонки с текстом. Настройки программы сохранены в файле start.ini. В настройках, кроме всего прочего, заданы параметры пути к файлу с картинкой, расположение и размер колонок с текстом. Файлы в одном каталоге. Всё работает как надо. Но после изменения разрешения экрана монитора (или если например запустить программу на другом компьютере с другим разрешением) текст оказывается смещен, в том числе и за пределы экрана. Для того чтобы текст отобразился корректно, приходится вручную корректировать start.ini, и затем перезапускать программу. Разрешения могут оказаться самыми разными из популярных, например: 1024x768,1280х1024,1920×1080.

ЗАДАЧА: автоматизировать проверку разрешения экрана и, при необходимости, выполнить изменения параметров в start.ini до запуска start.exe, запустить start.exe. Появившийся текст на экране должен выглядеть корректно.

Предполагаю, чтобы текст выглядел корректно, в батнике могут находиться куски ini для каждого разрешения.  которые подставляются в зависимости от текущего разрешения. Или другой вариант, когда у меня будет несколько ini файлов для каждого разрешения, затем нужный  выбирается и копируется в start.ini, а старый удаляется. Но это хуже,  т.к.  в этом случае малейшее изменения в отображаемом тексте придётся многократно дублировать в каждом файле. Задачу тестирования беру на себя). Помогите пожалуйста. Спасибо.)

Ту часть start.ini, что приходится регулярно менять вручную (после знака "=") привожу ниже.


[Common]
; Путь к фоновой картинке. Желательно указывать полный путь.
BackgroundPicture=%exedir%\picture1024x768.jpg
; Допустимое время бездействия пользователя, сек. (точность 5 сек)
InactivityTime=3600

; Параметры первого столбца x+150
[Column1]
LeftPos=200
TopPos=250
Width=525
Height=569

; Параметры второго столбца x+150
[Column2]
LeftPos=850
TopPos=250
Width=535
Height=575

2

Re: CMD/BAT: в зависимости от изменения разрешения экрана менять ini-шник

taurusspb
Разрешение в батнике возвращается, например, так:

for /f %%# in ('wmic DesktopMonitor get ScreenHeight^,ScreenWidth /Value ^| find "="') do set %%#

а дальше можно работать с if %ScreenWidth% и подставлять %ScreenWidth%x%ScreenHeight% перед .jpg.
При обработке нескольких ключей в ini есть смысл читать сразу весь файл и править его через регекспы, а для упрощения все их записать в одну секцию, слегка переименовав ключи, если программа это допускает.
Мне было бы сподручней такое на vbs писать.