Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met behulp van de WMI-API die in deze sectie wordt beschreven, is het mogelijk om apparaten te beheren met behulp van beheerde code of scripting. POSDM.EXE is een opdrachtregelinterface voor deze API. Dit VBScript-voorbeeld doet het volgende:
De WMI-methode ExecQuery wordt gebruikt om een lijst met geïnstalleerde PosDevice-objecten op te halen. Met deze lijst met serviceobjecten geeft het script het type, de naam, het bijbehorende pad en de status ingeschakeld of uitgeschakeld weer. Dit is vergelijkbaar met het uitvoeren van de volgende opdracht:
PosDM.exe LISTDEVICESVervolgens wordt geprobeerd het pad COM1 toe te wijzen aan het geïnstalleerde serviceobject, Microsoft Msr Simulator met behulp van de methode AddDevice. Dit komt overeen met het uitvoeren van:
PosDM.exe ADDDEVICE COM1 /SONAME:Microsoft Msr SimulatorAls de methode AddDevice mislukt, wordt de fout onderschept en wordt ervan uitgegaan dat COM1 al aan het apparaat is toegevoegd en daarom probeert het te verwijderen door DeleteDevice aan te roepen. Dit komt overeen met het uitvoeren van:
PosDM.exe DELETEDEVICE COM1Als de methode AddDevice eerder is mislukt, probeert het script AddDevice opnieuw aan te roepen. Het programma wordt afgesloten als de methode mislukt.
Ten slotte probeert het voorbeeld MSRSim toe te voegen aan dit serviceobject door AddName aan te roepen. Dit komt overeen met het uitvoeren van:
PosDM.exe ADDNAME MSRSim /SONAME:"Microsoft Msr Simulator"
Het is mogelijk om de resultaten van dit voorbeeld te bekijken door het volgende uit te voeren:
PosDM.exe LISTDEVICES
And
PosDM.exe LISTNAMES
Het voorbeeld uitvoeren
De Service Object Microsoft Msr Simulator is geïnstalleerd met de SDK. Zorg ervoor dat deze is geïnstalleerd op de computer die u gaat gebruiken om het voorbeeld uit te voeren.
Kopieer dit script naar een bestand PosDMSample.vbs
Voer het script uit met de volgende opdrachtregel:
CScript //U PosDMSample.vbs
Opmerking
'Get a handle to the POS namespace service into 'objServices'.
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objServices = objLocator.ConnectServer(, "/root/MicrosoftPointOfService")
'List the POS devices.
EnumeratePosDevice
'Add a name: MSRSim for Msr Simulator by retrieving the SO and invoking AddDevice() then AddName()
WScript.Echo "Add Device on COM1 and add name 'MSRSim' for MsrSimulator ..."
Set objSO = objServices.Get("ServiceObject.Type='Msr',Name='Microsoft Msr Simulator'")
On Error Resume Next
objSO.AddDevice "COM1"
if Err.number <> 0 Then
WScript.Echo "AddDevice failed - it already is in use."
WScript.Echo "Try to delete the device..."
On Error Resume Next
objSO.DeleteDevice "COM1"
if Err.number <> 0 Then
WScript.Echo "DeleteDevice failed"
WScript.Quit 1
end if
WScript.Echo "DeleteDevice succeeded! Attempting AddDevice again..."
On Error Resume Next
objSO.AddDevice "COM1"
if Err.number <> 0 Then
WScript.Echo "AddDevice failed a second time - exiting"
WScript.Quit 2
end if
end if
Set objDevice = objServices.Get("PosDevice.SoName='Microsoft Msr Simulator',Type='Msr',Path='COM1'")
objDevice.AddName "MSRSim"
Set objDevice = GetDevice("Msr", "MSRSim")
WScript.Echo "Added 'MSRSim' to: " & objDevice.Type & vbTab & objDevice.SoName & vbTab & objDevice.Path
'Enumerate the sClass by name
Sub EnumeratePosDevice( )
sClass = "PosDevice"
WScript.Echo "Enumerating " & sClass & "..." & vbCrLf
Set collection = objServices.ExecQuery("SELECT * From " & sClass)
For Each obj In collection
Enabled = "DISABLED"
if obj.Enabled = true Then
Enabled = "ENABLED"
end If
WScript.Echo obj.Type & Space(15-len(obj.type)) & obj.SoName & Space(35-len(obj.SoName)) & Enabled & vbTab & obj.Path
Next
WScript.Echo vbCrLf
End Sub
'Return a PosDevice matching DeviceType and Name.
Function GetDevice( DeviceType, Name )
Set Logical = GetLogicalDevice( DeviceType, Name )
objectPath = "PosDevice.SoName='" & Logical.SoName & "',Type='" & DeviceType & "',Path='" & Logical.Path & "'"
Set GetDevice = objServices.Get(objectPath)
End Function
'Return a LogicalDevice matching DeviceType and Name.
Function GetLogicalDevice( DeviceType, Name )
Query = "SELECT * From LogicalDevice WHERE Type = '" & DeviceType & "' AND Name='" & Name & "'"
Set collection = objServices.ExecQuery( Query )
For Each obj In collection
Set GetLogicalDevice = obj
exit For
Next
End Function
Als het pad COM1 niet is toegewezen aan een apparaat, produceert het voorbeeld uitvoer die vergelijkbaar is met deze code.
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Enumerating PosDevice...
Msr Microsoft Msr Simulator ENABLED
Msr Microsoft Msr Simulator ENABLED COM1
Keylock Microsoft Keylock Simulator ENABLED
Scanner Microsoft Scanner Simulator ENABLED
CashDrawer Microsoft CashDrawer Simulator ENABLED
CheckScanner Microsoft CheckScanner Simulator ENABLED
LineDisplay Microsoft LineDisplay Simulator ENABLED
PinPad Microsoft PinPad Simulator ENABLED
PosPrinter Microsoft PosPrinter Simulator ENABLED
PosKeyboard Microsoft PosKeyboard Simulator ENABLED
Add Device on COM1 and add name 'MSRSim' for MsrSimulator ...
AddDevice failed - it already be in use.
Try to delete the device...
DeleteDevice succeeded! Attempting AddDevice again...
Added 'MSRSim' to: Msr Microsoft Msr Simulator
Als het pad COM1 al in gebruik is en er geen andere fout optreedt, produceert het script uitvoer die eruitziet als deze code.
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Enumerating PosDevice...
Msr Microsoft Msr Simulator ENABLED
Msr Microsoft Msr Simulator ENABLED COM1
Keylock Microsoft Keylock Simulator ENABLED
Scanner Microsoft Scanner Simulator ENABLED
CashDrawer Microsoft CashDrawer Simulator ENABLED
CheckScanner Microsoft CheckScanner Simulator ENABLED
LineDisplay Microsoft LineDisplay Simulator ENABLED
PinPad Microsoft PinPad Simulator ENABLED
PosPrinter Microsoft PosPrinter Simulator ENABLED
PosKeyboard Microsoft PosKeyboard Simulator ENABLED
Add Device on COM1 and add name 'MSRSim' for MsrSimulator ...
AddDevice failed - it already be in use.
Try to delete the device...
DeleteDevice succeeded! Attempting AddDevice again...
Added 'MSRSim' to: Msr Microsoft Msr Simulator