VBScript gebruiken voor het beheren van apparaten (POS voor .NET v1.14 SDK-documentatie)

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 LISTDEVICES

  • Vervolgens 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 Simulator

  • Als 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 COM1

  • Als 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

  1. 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.

  2. Kopieer dit script naar een bestand PosDMSample.vbs

  3. 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

Zie ook

Meer informatie