1

POS for .NET で .NET を使用して POS アプリを作成します。マシンにインストールされているデバイスの論理名を一覧表示する方法はありますか?選択した論理名を GetDevice メソッドに渡すことができます

4

2 に答える 2

5

レジストリに飛び込みたくない場合は、別の方法があります。

PosExplorer explorer = new PosExplorer();    
List<String[]> foundLogicalNames = new List<String[]>();   // String[0] will hold device type, String[1] will hold logical name

foreach (DeviceInfo deviceInfo in explorer.GetDevices())   // This will get ALL device types
    foreach (String logicalName in deviceInfo.LogicalNames)
        if (!String.IsNullOrWhiteSpace(logicalName))
            foundLogicalNames.Add(new String[2] { deviceInfo.Type, logicalName });  // Only add devices with logical names set

この時点で、変数foundLogicalNamesには、以前にセットアップされた論理名を持つすべてのアクセス可能なデバイスのリストが含まれている必要があります。

これで、このリストから必要なデバイスを選択できます。

DeviceInfo selectedDevice;

if (foundLogicalNames.Count > 0)   // Ensure we have found some logical names set on our system
{
    int desiredDeviceIndex = selectDesiredDeviceFromFoundLogicalNames();   // user implemented function, get integer index into foundLogicalNames of desired device
    selectedDevice = explorer.GetDevice(foundLogicalNames[desiredDeviceIndex][0], foundLogicalNames[desiredDeviceIndex][1]);    // [0] = device type, [1] = logical name
    ...     
    // continue to Open(), Claim() etc
}
于 2013-12-13T00:47:40.220 に答える
0

キー HKLM/SOFTWARE/OLEforRetail の下のレジストリ ツリーを調べます。

実際のドライバー ocx/dll は ServiceInfo サブキーの関連セクションの下にリストされ、論理名は ServiceOPOS サブキーの関連セクションの下に表示されます。

それは、ハードウェアの製造元の場合です。OPos 規格に準拠しています。

于 2013-08-01T15:19:56.040 に答える