Udostępnij za pośrednictwem


Używanie języka VBScript do zarządzania urządzeniami (wersja 1.14 ZESTAWU SDK platformy .NET)

Korzystając z interfejsu API usługi WMI opisanego w tej sekcji, można zarządzać urządzeniami przy użyciu kodu zarządzanego lub skryptów. POSDM.EXE jest interfejsem wiersza polecenia dla tego interfejsu API. Ten przykład w języku VBScript wykonuje następujące czynności:

  • Używa metody WMI ExecQuery do pobrania listy zainstalowanych obiektów PosDevice . Na tej liście obiektów usługi skrypt wyświetla ich typ, nazwę, odpowiednią ścieżkę oraz ich stan włączony lub wyłączony. Jest to podobne do uruchamiania następującego polecenia:

    PosDM.exe LISTDEVICES

  • Następnie próbuje przypisać ścieżkę COM1 do zainstalowanego obiektu usługi, Microsoft Msr Simulator przy użyciu metody AddDevice. Jest to odpowiednik uruchamiania:

    PosDM.exe ADDDEVICE COM1 /SONAME:Microsoft Msr Simulator

  • Jeśli metoda AddDevice nie powiedzie się, skrypt przechwytuje błąd i zakłada, że com1 mógł już zostać dodany do urządzenia i dlatego próbuje go usunąć, wywołując polecenie DeleteDevice. Jest to odpowiednik uruchamiania:

    PosDM.exe DELETEDEVICE COM1

  • Jeśli metoda AddDevice wcześniej nie powiodła się, skrypt spróbuje wywołać metodę AddDevice ponownie. Program kończy działanie, jeśli metoda zakończy się niepowodzeniem.

  • Na koniec przykład próbuje dodać nazwę logiczną MSRSim do tego obiektu usługi, wywołując polecenie AddName. Jest to odpowiednik uruchamiania:

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

Wyniki tego przykładu można wyświetlić, uruchamiając polecenie:

PosDM.exe LISTDEVICES

And

PosDM.exe LISTNAMES

Aby uruchomić przykład

  1. Obiekt usługi Microsoft Msr Simulator został zainstalowany z zestawem SDK. Upewnij się, że jest on zainstalowany na komputerze, którego użyjesz do uruchomienia przykładu.

  2. Skopiuj ten skrypt do pliku PosDMSample.vbs

  3. Wykonaj skrypt przy użyciu następującego wiersza polecenia:

    CScript //U PosDMSample.vbs

Przykład

'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

Jeśli ścieżka COM1 nie została przypisana do urządzenia, przykład generuje dane wyjściowe podobne do tego kodu.

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

Jeśli ścieżka COM1 jest już używana i nie wystąpi żaden inny błąd, skrypt generuje dane wyjściowe, które wyglądają jak ten kod.

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

Zobacz też

Inne zasoby