[решено] Запуск файла при условии (определенном разрешении экрана)
Помогите, пожалуйста, разобраться.
Хочу с помощью батника запускать EXE-шник при выполнении определенного условия. Но условие не простое, а именно: определение разрешения экрана.
Как определить разрешение экрана я нашел:
Код:
mshta "javascript:var o = new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1); o.Write(screen.width + 'x' + screen.height); close()" 1 | more
Результат выполнения:
Код:
C:\Users\user\Desktop>mshta "javascript:var o = new ActiveXObject('Scripting.Fi
leSystemObject').GetStandardStream(1); o.Write(screen.width + 'x' + screen.heigh
t); close()" 1 | more
1680x1050
Не могу сообразить как составить условие
Код:
ЕСЛИ переменная==1680x1050 start программа.ехе or переменная==1024x768 start программа2.ехе
Помогите кто чем может! :)
|
Цитата:
Цитата yurfed
Я вам не подскажу конкретно, но про какое условие вы говорите если нет альтернативы к действию? »
|
Даже не знаю.. А определение разрешения экрана и вывод результата может быть действием?
Задача такая:
В зависимости от разрешения экрана запускать определенную программу.
Цитата:
Цитата yurfed
Что в итоге должно быть ELSE? Вроде как ELSE не может существовать без THEN. »
|
Я слабоват в программировании. Наверно ошибся, не ЕЩЕ (ELSE) а ИЛИ (or). Я даже не знаю, можно ли использовать в БАТниках "ИЛИ"
|
Цитата:
Цитата timyr.dp
Не могу сообразить как составить условие »
|
timyr.dp, у Вас непонятное условие. Точнее, их там полтора.
Если условие одно — на равенство «1680x1050», то как-то так:
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%i in (
`@"%SystemRoot%\system32\mshta.exe" "javascript:try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(window.screen.width + 'x' + window.screen.height)}; catch (e){}; close();" ^
1^|more`
) do set sResolution=%%i
if defined sResolution (
if "%sResolution%" equ "1680x1050" (
start "" "%SystemRoot%\system32\calc.exe"
) else (
start "" "%SystemRoot%\system32\notepad.exe"
)
) else (
echo Can't determine resolution
)
endlocal
exit /b 0
|
Iska, timyr.dp, я извиняюсь, случайно удалил своё сообщение, если вдруг не понятен "диалог" yurfed- timyr.dp выше.
|
Цитата:
Цитата timyr.dp
ЕСЛИ переменная==1680x1050 start программа.ехе or переменная==1024x768 start программа2.ехе »
|
Код:
@echo off
setlocal
set "wmic=wmic desktopmonitor get screenwidth, screenheight /value"
for /f %%i in (' "%wmic%" ') do 1>nul set "%%i"
if "%screenwidth%x%screenheight%"=="1680x1050" start "" "notepad"
if "%screenwidth%x%screenheight%"=="1024x768" start "" "calc"
|
Цитата:
Цитата Foreigner
@echo off setlocal set "wmic=wmic desktopmonitor get screenwidth, screenheight /value" for /f %%i in (' "%wmic%" ') do 1>nul set "%%i" if "%screenwidth%x%screenheight%"=="1680x1050" start "" "notepad" if "%screenwidth%x%screenheight%"=="1024x768" start "" "calc" »
|
Это сработало! Спасибо!
|
Не для всех видеокарт работает
Цитата:
Цитата Foreigner
@echo off
setlocal
set "wmic=wmic desktopmonitor get screenwidth, screenheight /value"
for /f %%i in (' "%wmic%" ') do 1>nul set "%%i"
if "%screenwidth%x%screenheight%"=="1680x1050" start "" "notepad"
if "%screenwidth%x%screenheight%"=="1024x768" start "" "calc" »
|
А вот такой работает у меня везде
@echo off
setlocal
set "wmic=wmic desktopmonitor where 'ScreenWidth!=null and ScreenHeight!=null' get screenwidth, screenheight /value"
for /f %%i in (' "%wmic%" ') do 1>nul set "%%i"
if "%ScreenWidth%x%ScreenHeight%"=="1680x1050" start "" "notepad"
if "%ScreenWidth%x%ScreenHeight%"=="1024x768" start "" "calc"
|
Время: 22:19.
© OSzone.net 2001-