- Offizieller Beitrag
Hallo!
Ich habe eine frage :stolz_bin:
also ich will ein programm schrieben das alle serial ports (Com ports) ausliest! funktioniert prächtig mit der WMI Funktion:
Spoiler anzeigen
Code
; Generated by AutoIt Scriptomatic
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$Output=""
$Output = $Output & "Computer: " & $strComputer & @CRLF
$Output = $Output & "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_SerialPort", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) then
For $objItem In $colItems
$Output = $Output & "Availability: " & $objItem.Availability & @CRLF
$Output = $Output & "Binary: " & $objItem.Binary & @CRLF
$strCapabilities = $objItem.Capabilities(0)
$Output = $Output & "Capabilities: " & $strCapabilities & @CRLF
$strCapabilityDescriptions = $objItem.CapabilityDescriptions(0)
$Output = $Output & "CapabilityDescriptions: " & $strCapabilityDescriptions & @CRLF
$Output = $Output & "Caption: " & $objItem.Caption & @CRLF
$Output = $Output & "ConfigManagerErrorCode: " & $objItem.ConfigManagerErrorCode & @CRLF
$Output = $Output & "ConfigManagerUserConfig: " & $objItem.ConfigManagerUserConfig & @CRLF
$Output = $Output & "CreationClassName: " & $objItem.CreationClassName & @CRLF
$Output = $Output & "Description: " & $objItem.Description & @CRLF
$Output = $Output & "DeviceID: " & $objItem.DeviceID & @CRLF
$Output = $Output & "ErrorCleared: " & $objItem.ErrorCleared & @CRLF
$Output = $Output & "ErrorDescription: " & $objItem.ErrorDescription & @CRLF
$Output = $Output & "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
$Output = $Output & "LastErrorCode: " & $objItem.LastErrorCode & @CRLF
$Output = $Output & "MaxBaudRate: " & $objItem.MaxBaudRate & @CRLF
$Output = $Output & "MaximumInputBufferSize: " & $objItem.MaximumInputBufferSize & @CRLF
$Output = $Output & "MaximumOutputBufferSize: " & $objItem.MaximumOutputBufferSize & @CRLF
$Output = $Output & "MaxNumberControlled: " & $objItem.MaxNumberControlled & @CRLF
$Output = $Output & "Name: " & $objItem.Name & @CRLF
$Output = $Output & "OSAutoDiscovered: " & $objItem.OSAutoDiscovered & @CRLF
$Output = $Output & "PNPDeviceID: " & $objItem.PNPDeviceID & @CRLF
$strPowerManagementCapabilities = $objItem.PowerManagementCapabilities(0)
$Output = $Output & "PowerManagementCapabilities: " & $strPowerManagementCapabilities & @CRLF
$Output = $Output & "PowerManagementSupported: " & $objItem.PowerManagementSupported & @CRLF
$Output = $Output & "ProtocolSupported: " & $objItem.ProtocolSupported & @CRLF
$Output = $Output & "ProviderType: " & $objItem.ProviderType & @CRLF
$Output = $Output & "SettableBaudRate: " & $objItem.SettableBaudRate & @CRLF
$Output = $Output & "SettableDataBits: " & $objItem.SettableDataBits & @CRLF
$Output = $Output & "SettableFlowControl: " & $objItem.SettableFlowControl & @CRLF
$Output = $Output & "SettableParity: " & $objItem.SettableParity & @CRLF
$Output = $Output & "SettableParityCheck: " & $objItem.SettableParityCheck & @CRLF
$Output = $Output & "SettableRLSD: " & $objItem.SettableRLSD & @CRLF
$Output = $Output & "SettableStopBits: " & $objItem.SettableStopBits & @CRLF
$Output = $Output & "Status: " & $objItem.Status & @CRLF
$Output = $Output & "StatusInfo: " & $objItem.StatusInfo & @CRLF
$Output = $Output & "Supports16BitMode: " & $objItem.Supports16BitMode & @CRLF
$Output = $Output & "SupportsDTRDSR: " & $objItem.SupportsDTRDSR & @CRLF
$Output = $Output & "SupportsElapsedTimeouts: " & $objItem.SupportsElapsedTimeouts & @CRLF
$Output = $Output & "SupportsIntTimeouts: " & $objItem.SupportsIntTimeouts & @CRLF
$Output = $Output & "SupportsParityCheck: " & $objItem.SupportsParityCheck & @CRLF
$Output = $Output & "SupportsRLSD: " & $objItem.SupportsRLSD & @CRLF
$Output = $Output & "SupportsRTSCTS: " & $objItem.SupportsRTSCTS & @CRLF
$Output = $Output & "SupportsSpecialCharacters: " & $objItem.SupportsSpecialCharacters & @CRLF
$Output = $Output & "SupportsXOnXOff: " & $objItem.SupportsXOnXOff & @CRLF
$Output = $Output & "SupportsXOnXOffSet: " & $objItem.SupportsXOnXOffSet & @CRLF
$Output = $Output & "SystemCreationClassName: " & $objItem.SystemCreationClassName & @CRLF
$Output = $Output & "SystemName: " & $objItem.SystemName & @CRLF
$Output = $Output & "TimeOfLastReset: " & WMIDateStringToDate($objItem.TimeOfLastReset) & @CRLF
if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
$Output=""
Next
Else
Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_SerialPort" )
Endif
Func WMIDateStringToDate($dtmDate)
Return (StringMid($dtmDate, 5, 2) & "/" & _
StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
& " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
EndFunc
Alles anzeigen
Problem ist nur, das er meinen ATEN USB to Serial Bridge nicht erkennt (das ist ein Serial port emulator den man in usb reinpackt!) Bei dem gerätemanager steht der aten unter "Anschlüsse (COM und LPT)"
Warum zeigt die WMI den ATEN nicht an? wie kann ich ihn sonst noch finden? Registry?
Mfg Spider