私はいくつかのサンプルからこのコードをまとめました。私は理解できません。以下のコードでこの行では、単語のオブザーバーに、このコードでは奇妙なエラーが報告されましたので、説明してください。
Dim Results As ManagementObjectCollection = Worker.Get(Observer)
私はエラー 取得
が誰か缶「型の値が 『System.Management.ManagementOperationObserver』 『Integer型』に変換できません」これが何を意味するのか説明してください
ManagementObjectSearcher.Get()には2つのシグネチャがあり、1つはパラメータなし、もう1つは非同期操作のManagementOperationObserverです。それは私が提供しているものですが、エラーは整数を伴う変換を示していますか?
Public Shared Sub WMIDriveDetectionASYNC(ByVal args As String())
Dim Observer As New ManagementOperationObserver()
Dim completionHandler As New MyHandler()
AddHandler Observer.Completed, AddressOf completionHandler.Done
Dim Machine = "192.168.0.15"
Dim Scope = New ManagementScope("\\" & Machine & "\root\cimv2")
Dim QueryString = "select Name, Size, FreeSpace from Win32_LogicalDisk where DriveType=3"
Dim Query = New ObjectQuery(QueryString)
Dim Worker = New ManagementObjectSearcher(Scope, Query)
Dim Results As ManagementObjectCollection = Worker.Get(Observer) 'use parameter to make async
For Each item As ManagementObject In Results
Console.WriteLine("{0} {2} {1}", item("Name"), item("FreeSpace"), item("Size"))
Dim FullSpace As Long = (CLng(item("Size")) - CLng(item("FreeSpace"))) \ 1000000
Console.WriteLine(FullSpace)
Next
End Sub
Public Class MyHandler
Private _isComplete As Boolean = False
Public Sub Done(sender As Object, e As CompletedEventArgs)
_isComplete = True
End Sub 'Done
Public ReadOnly Property IsComplete() As Boolean
Get
Return _isComplete
End Get
End Property
End Class
ありがとうございました!
「Worker.Get」はどのように見えますか? – Oded