Sdílet prostřednictvím


Použití VBScriptu ke správě zařízení (POS pro .NET v1.14 SDK dokumentace)

Pomocí rozhraní WMI API popsaného v této části je možné spravovat zařízení pomocí spravovaného kódu nebo skriptování. POSDM.EXE je rozhraní příkazového řádku pro toto rozhraní API. Tato ukázka jazyka VBScript provede následující kroky:

  • Používá metodu WMI ExecQuery k načtení seznamu nainstalovaných objektů PosDevice . V tomto seznamu objektů služby zobrazí skript jejich typ, název, odpovídající cestu a jejich povolený nebo zakázaný stav. Je to podobné jako spuštění následujícího příkazu:

    PosDM.exe LISTDEVICES

  • Pak se pokusí přiřadit cestu COM1 k nainstalované service object, Microsoft Msr Simulator pomocí AddDevice metoda. Toto je ekvivalentem spuštění:

    PosDM.exe ADDDEVICE COM1 /SONAME:Microsoft Msr Simulator

  • Pokud metoda AddDevice selže, skript zachytí chybu a předpokládá, že com1 již byl přidán do zařízení, a proto se pokusí odstranit voláním DeleteDevice. Toto je ekvivalentem spuštění:

    PosDM.exe DELETEDEVICE COM1

  • Pokud metoda AddDevice dříve selhala, skript se pokusí znovu volat AddDevice. Program se ukončí, pokud metoda selže.

  • Nakonec se ukázka pokusí přidat logický název MSRSim do tohoto objektu služby voláním AddName. Toto je ekvivalentem spuštění:

    PosDM.exe ADDNAME MSRSim /SONAME:"Microsoft Msr Simulator"

Výsledky této ukázky můžete zobrazit spuštěním následujícího příkazu:

PosDM.exe LISTDEVICES

And

PosDM.exe LISTNAMES

Chcete-li spustit ukázku

  1. Service Object Microsoft Msr Simulator byl nainstalován se sadou SDK. Ujistěte se, že je nainstalovaný v počítači, který budete používat ke spuštění ukázky.

  2. Zkopírujte tento skript do souboru PosDMSample.vbs.

  3. Spusťte skript pomocí následujícího příkazového řádku:

    CScript //U PosDMSample.vbs

Příklad

'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

Pokud cesta COM1 nebyla přiřazena k zařízení, ukázka vytvoří výstup podobný tomuto kódu.

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

Pokud je cesta COM1 již používána a nedojde k žádné jiné chybě, vytvoří skript výstup, který bude vypadat jako tento kód.

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

Viz také

Další prostředky