Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Запуск файла при условии (определенном разрешении экрана) (http://forum.oszone.net/showthread.php?t=229881)

timyr.dp 09-03-2012 02:42 1875271

[решено] Запуск файла при условии (определенном разрешении экрана)
 
Помогите, пожалуйста, разобраться.
Хочу с помощью батника запускать 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.ехе
Помогите кто чем может! :)

timyr.dp 09-03-2012 03:31 1875278

Цитата:

Цитата yurfed
Я вам не подскажу конкретно, но про какое условие вы говорите если нет альтернативы к действию? »

Даже не знаю.. А определение разрешения экрана и вывод результата может быть действием?

Задача такая:
В зависимости от разрешения экрана запускать определенную программу.

Цитата:

Цитата yurfed
Что в итоге должно быть ELSE? Вроде как ELSE не может существовать без THEN.»

Я слабоват в программировании. Наверно ошибся, не ЕЩЕ (ELSE) а ИЛИ (or). Я даже не знаю, можно ли использовать в БАТниках "ИЛИ"

Iska 09-03-2012 04:00 1875282

Цитата:

Цитата 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


yurfed 09-03-2012 05:11 1875283

Iska, timyr.dp, я извиняюсь, случайно удалил своё сообщение, если вдруг не понятен "диалог" yurfed- timyr.dp выше.

Foreigner 09-03-2012 10:23 1875335

Цитата:

Цитата 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"


timyr.dp 09-03-2012 14:47 1875501

Цитата:

Цитата 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" »

Это сработало! Спасибо!

Fetser 20-08-2012 11:58 1973248

Не для всех видеокарт работает
Цитата:

Цитата 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.

Время: 22:19.
© OSzone.net 2001-