我正在尝试构建一个窗口服务,它将在后台运行读卡器,我将把卡的数据放在文本框中。我的问题是: 当有人在读卡器上刷卡时,窗口服务WINFORM应该将卡片上的数据放在文本框上。我怎样才能做到这一点。
或,
如果任何人都可以告诉我如何在刷卡时执行WINFORM,那也会起作用
由于
答案 0 :(得分:1)
Windows服务不应向用户显示任何类型的UI,它们作为完全后台任务运行,不接受用户的输入并且不显示输出或状态。如果您需要服务与用户“交谈”,通常的做法是将项目拆分为2个不同的程序,一个是服务本身,这是一个无UI的事情,用于后台处理,以及一个普通的用户应用程序,也许在登录时运行,显示通知并与服务通信。还要考虑服务在注销和登录后仍然存在,并且可能在给定时间记录了许多用户,因此向任何人显示对话都没有意义。
我的建议是将服务转换为正常程序,安装程序将其配置为在启动时运行,并且它会对读卡器进行监控并显示弹出窗口,询问用户的详细信息。由于除了监控之外没有后台工作,如果表格是绝对必需的,没有用户登录就没有意义,我不认为服务是最好的选择。
答案 1 :(得分:0)
我见过两种读卡器:
1 - 插入键盘端口并充当键盘(也可插入USB端口,但仍可模拟键盘)。刷卡时,信息将写入当前具有焦点的任何应用程序和文本字段。
2 - 有某种硬件驱动程序(很可能是USB驱动程序,可能是串行或其他)。
如果您不确定自己有哪个,请打开记事本,确保它有焦点,然后刷卡。如果详细信息显示在记事本中,那么您有#1。如果他们不这样做,那么你可能有#2
如果您的读者是#1,那么您可以将一些代码放入Textbox的TextChanged事件中以执行您需要的操作(我假设您可以在应用程序中添加代码,就像您说的那样构建它)。
如果你的读者是#2,那么它真的取决于它使用的驱动程序。有些可能会提供您可以集成的API,但您需要找到文档。
您的读卡器是否有型号和制造商?