C# 无法设置.NET条形码扫描仪设备的POS已启用
我目前正在开发一个.NET4.5.1应用程序,它应该使用条形码扫描仪来读取2D条形码文本。为此,安装并使用了Microsoft POS For.NET 1.14.1。条形码sanner(Intermec/Honeywell ED40)驱动程序安装正确,OPOS驱动程序为非托管OCX 我使用典型的工作流在WinForms项目中创建扫描仪实例:C# 无法设置.NET条形码扫描仪设备的POS已启用,c#,.net,winforms,opos,pos-for-.net,C#,.net,Winforms,Opos,Pos For .net,我目前正在开发一个.NET4.5.1应用程序,它应该使用条形码扫描仪来读取2D条形码文本。为此,安装并使用了Microsoft POS For.NET 1.14.1。条形码sanner(Intermec/Honeywell ED40)驱动程序安装正确,OPOS驱动程序为非托管OCX 我使用典型的工作流在WinForms项目中创建扫描仪实例: public partial class MainForm : Form { private PosExplorer _explorer; priv
public partial class MainForm : Form
{
private PosExplorer _explorer;
private Scanner _scanner;
public MainForm()
{
InitializeComponent();
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
_explorer = new PosExplorer(this);
DeviceInfo device = myPosExplorer.GetDevice(DeviceType.Scanner, "Intermec_RS-232_Scanner");
_scanner = (Scanner)explorer.CreateInstance(device);
_scanner.Open();
_scanner.Claim(1000);
_scanner.DataEvent += scanner_DataEvent;
_scanner.ErrorEvent += scanner_ErrorEvent;
_scanner.DeviceEnabled = true; // throws here if normal user privileges
_scanner.DataEventEnabled = true;
_scanner.DecodeData = true;
}
}
如果应用程序是使用管理权限启动的,则一切正常。但是,如果使用普通用户权限启动,则无法启用扫描仪。执行scanner.DeviceEnabled=true
语句时,会引发以下异常:
PosControlException: Failed to set property DeviceEnabled.
如果我编译并启动提供的Microsoft示例“Microsoft POS Tester”,也会出现同样的问题。但也提供了预编译版本“C:\Program Files(x86)\Microsoft Point Of Service\SDK\Samples\Sample Application\TestApp.exe”目录,独立于权限
我没有在不同的论坛和POS for.NET文档中找到解决方案。我用ActiveX的Internet Explorer安全设置做了几个实验,同样的问题。我想,这是一个安全设置elsewere,有人知道吗
环境:
- Windows 7 Pro x64
- .NET 4.5.1
- 删除虚拟存储中的HKEY_USERS/[User SID]\u Classes/VirtualStore/Machine/Software/Wow6432Node/Intermec密钥
- 将原始HKLM/Software/Wow6432Node/Intermec密钥的完全访问权限分配给Windows用户组。因此,所有用户都访问相同的注册表项