2016-09-21 2 views
0

関数結果から文字列を返そうとしましたオブジェクトが必要ですエラー。 は、Windows 2003注上でこのコードを実行:W2K3に、Win32_OperatingSystemは 我々はFor Each .../Exit FunctionVBScriptランタイムエラー:オブジェクトが必要(Windows 2003)

Function GetLocalTime() 
    Dim wmi, itm 
    Set wmi = GetObject("winmgmts:root\cimv2") 
    For Each itm in wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem") 
     ' NEXT LINE THROWS 'Object required' error 
     GetLocalTime = itm.LocalDateTime 
     Exit Function 
    Next 
End Function 

Dim started : Set started = GetLocalTime 
WScript.Echo "started " & started 

答えて

2

を使用している理由です[email protected]シングルトンはそれを考え出しサポートしていません。エラーメッセージは、GetLocalTime()関数の本体で発生していると報告されましたが、実際にはエラーが発生しました。 Setを削除する必要があります。ここに修正コードがあります:

Function GetLocalTime() 
    Dim wmi, itm 
    Set wmi = GetObject("winmgmts:root\cimv2") 
    For Each itm in wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem") 
     GetLocalTime = itm.LocalDateTime 
     Exit Function 
    Next 
End Function 

Dim started : started = GetLocalTime ' <-- CHANGED LINE 
WScript.Echo "started " & started 
関連する問題