次の方法で共有


VBScript を使用したデバイスの管理 (POS for .NET v1.14 SDK ドキュメント)

このセクションで説明する WMI API を使うと、マネージド コードまたはスクリプトを使ってデバイスを管理できます。 POSDM.EXE は、この API に対するコマンド ライン インターフェイスです。 この VBScript のサンプルでは、次のことを行います。

  • WMI のメソッド ExecQuery を使って、インストールされている PosDevice オブジェクトのリストを取得します。 スクリプトでこのサービス オブジェクトのリストを使って、その種類、名前、対応するパス、有効または無効の状態を表示します。 これは、次のコマンドを実行するのと似ています。

    PosDM.exe LISTDEVICES

  • 次に、AddDevice メソッドを使って、インストールされている Microsoft Msr Simulator のサービス オブジェクトへのパス COM1 の割り当てを試みます。 これは、次を実行することに相当します。

    PosDM.exe ADDDEVICE COM1 /SONAME:Microsoft Msr Simulator

  • AddDevice メソッドが失敗した場合、スクリプトはエラーをキャッチし、COM1 が既にデバイスに追加されている可能性があるため、DeleteDevice を呼び出して削除を試みます。 これは、次を実行することに相当します。

    PosDM.exe DELETEDEVICE COM1

  • AddDevice メソッドが前に失敗している場合、スクリプトは AddDevice の呼び出しをもう一度試みます。 メソッドが失敗した場合、プログラムは終了します。

  • 最後に、サンプルは AddName を呼び出して、このサービス オブジェクトへの論理名 MSRSim の追加を試みます。 これは、次を実行することに相当します。

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

次を実行することで、このサンプルの結果を確認できます。

PosDM.exe LISTDEVICES

および

PosDM.exe LISTNAMES

サンプルを実行するには

  1. サービス オブジェクト Microsoft Msr Simulator は SDK と共にインストールされました。 サンプルの実行に使うコンピューターに、それがインストールされていることを確認します。

  2. このスクリプトをファイル PosDMSample.vbs にコピーします

  3. 次のコマンド ラインを使ってこのスクリプトを実行します。

    CScript //U PosDMSample.vbs

'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

パス COM1 がデバイスに割り当てられていない場合は、このコードのような出力が生成されます。

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

パス COM1 が既に使われていて、他のエラーが発生しない場合、スクリプトは次のコードのような出力を生成します。

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

参照

その他の参照情報