2013-04-06 6 views
1

현재 스크립트가 배치 파일인지 여부를 감지 할 수있는 스크립트 (VBS가 항상 배치 파일 내에서 호출 할 수 있지만 기존 스크립트는 배치 파일 임)를 찾고/쓰려고합니다. 해상도는 와이드 스크린 형식이므로 적절한 배경 이미지를 컴퓨터로 복사 할 수 있습니다. 난 단지 같은 코드로 몇 게시물을 발견했습니다, 그리고 하나의 답변은 항상 당신이 그냥 이미지를 설정할 수 있다고 말했다. 그러나 이것은 이미지가 왜곡 될 수 있다는 것을 의미합니다 (다른 사람들도 말했듯이).일괄 처리 또는 VBScript를 사용하여 Windows 해상도가 와이드 스크린인지 확인

다음 VBScript가 this post에서 발견되었지만 Windows XP에서만 작동하는 것으로 보입니다 (Windows 7 32 비트를 사용하지는 않았지만). Windows 7 64에서는 별 소리가 울립니다.

Set objWMIService = GetObject("Winmgmts:\\.\root\cimv2") 
Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor where DeviceID = 'DesktopMonitor1'",,0) 
For Each objItem in colItems 
intHorizontal = objItem.ScreenWidth 
intVertical = objItem.ScreenHeight 
Next 

msgbox intHorizontal & " * " & intVertical 

하지만 일이 스크립트를 얻을 수있는 경우에도, 나는 아직도 여러 IF의 와이드 스크린 해상도 목록에 수평 & 수직 일치를해야합니다. 내가 사용할 수있는 수학 방정식이 없다면 (나는 거기에 있다고 확신한다). 그러나 관계없이 XP와 7 (32 & 64) 또는 필요할 경우 각 OS 또는 아키텍처에 대해 2 개의 스크립트에서 작동하는 스크립트가 필요합니다. 사전에

감사합니다,

브라이언

+0

좋아요, 저는 수학 방정식을 발견했습니다. W/H = 1.33 (또는 5 : 4 비율의 경우 1.25)이면 종횡비는 4 : 3이고, 그렇지 않으면 와이드 스크린 (1.6에서 1.78)입니다. 이제 모든 OS 및 아키텍처에서 작동하는 스크립트를 얻고이 수식을 작업해야합니다. – Brian

+2

좋아, 그럼이 잘 작동합니다 : '만약 intHorizontal/IntVertical <= 1.334 다음 \t 화면 = "4 : 3" \t WScript.Echo 가로 세로 그렇지 \t \t 화면 = "와이드 스크린" \t WScript.Echo 가로 세로 End if' 그리고 XP 및 Win7 (32 및 64) 가상 시스템의 해상도를 열거하기 위해 원본 코드를 테스트 해 보았습니다. 둘 다 정상적으로 작동합니다. 그러나 내 호스트 컴퓨터 (7/64)에서는 해상도가없는 "*"가 표시됩니다. 내가 할 수있는 유일한 일은 모니터가 2 대있는 것입니다. 확인하고 WMI가 실행 중입니다. – Brian

+0

와우, 내가 그 대답을 너무 빨리 알게되었다는 것을 알았 더라면, 나는 이것을 게시하는 것을 귀찮게하지 않았을 것이다. 이 WMI 아름답게 작동하는 것 같다 : '설정 colItems = objWMIService.ExecQuery 당신에게 colItems의 각 objItem를 들어 intHorizontal = objItem.CurrentHorizontalResolution intVertical = objItem.CurrentVerticalResolution Next' – Brian

답변

0

지연에 대한 미안, 나는 여기에 정기적으로 아니에요. 마지막 코멘트는 해결 된 해결책/해결 방법입니다.