2017-11-01 18 views
0

여기에 나온 내용은 ​​모두 Windows에서 올바르게 작동합니다.   7.   10에서 window.MoveTo intLeft, intTop에 대해 형식 불일치 오류가 발생합니다.VBScript를 사용하여 window.moveTo에서 유형 불일치 오류를 어떻게 해결할 수 있습니까?

Sub Window_OnLoad 
    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
    Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor") 
    For Each objItem in colItems 
     intHorizontal = objItem.ScreenWidth 
     intVertical = objItem.ScreenHeight 
    Next 
    intLeft = (intHorizontal - 670)/2 
    intTop = (intVertical - 325)/2 
    window.ResizeTo 670,325 
    window.MoveTo intLeft, intTop 
End Sub 
+0

'intLeft'와'intTop'는 부동 소수점 숫자가 아닌 정수입니까? – Gurman

+0

그들은 분명히 둘 다 Null입니다. – xRuhRohx

답변

0

따라서 문제는 objWMIService입니다. 나는 Windows에서 똑같이 작동하지 않는다고 생각한다.   10.

다음은 잘 작동하는 것으로 판명 된 기능이다.

array_ScreenRes = GetScreenResolution 
intHorizontal = array_ScreenRes(0) 
intVertical = array_ScreenRes(1) 

Function GetScreenResolution() 
    Set oIE = CreateObject("InternetExplorer.Application") 
    With oIE 
     .Navigate("about:blank") 
     Do Until .ReadyState = 4: WScript.Sleep 100: Loop 
     width = .Document.ParentWindow.Screen.Width 
     height = .document.ParentWindow.Screen.Height 
    End With 

    oIE.Quit 
    GetScreenResolution = Array(width, height) 
End Function