-3

我正在尝试构建一个窗口服务,它将在读卡器的后台运行,我将在文本框上获取卡片的数据。我的问题是:当有人在读卡器上刷卡时,window service WINFORM 应该在文本框中获取卡片数据。我怎样才能做到这一点。

或者,

如果有人能告诉我如何在刷卡时执行 WINFORM,那也可以

谢谢

4

2 回答 2

1

Windows 服务不应该向用户显示任何类型的 UI,它们作为完全后台任务运行,不接受用户输入,也不向它们显示任何输出或状态。如果您需要服务与用户“交谈”,通常的做法是将项目拆分为 2 个不同的程序,一个是服务本身,它是一个无需 UI 的东西,负责后台处理,另一个是普通用户应用程序,可能在登录时运行,显示通知并与服务通信。还要考虑服务在注销和登录后仍然存在,并且在给定时间可能有许多用户登录,因此向任何人显示对话框是没有意义的。

我的建议是将服务变成一个普通程序,安装程序配置为在启动时运行,它会监控读卡器并显示弹出窗口,询问用户的详细信息。由于除了监控之外不会有任何后台工作,而且如果表单是绝对需要的,那么在没有用户登录的情况下进行监控是没有意义的,我认为服务不是最佳选择。

于 2013-10-06T21:06:55.433 回答
0

我见过两种读卡器:

1 - 插入您的键盘端口并充当键盘(也可以插入 USB 端口,但仍模拟键盘)。刷卡时,信息将写入当前具有焦点的任何应用程序和文本字段。

2 - 有某种硬件驱动程序(很可能是 USB 驱动程序,可能是串行或其他)。

如果你不确定你有哪个然后打开记事本,确保它有焦点,然后刷卡。如果详细信息显示在记事本中,那么您有 #1。如果他们没有,那么你可能有#2

如果您的读者是#1,那么您可以将一些代码放入 Textbox 的 TextChanged 事件中以执行您需要的操作(我假设您可以按照您所说的构建应用程序向应用程序添加代码)。

如果你的读者是#2,那么它真的取决于它使用的驱动程序。有些可能会提供可以集成的 API,但您需要查找文档。

您有读卡器的型号和制造商吗?

于 2013-10-07T01:02:48.640 回答