0

我正在开发适用于 Windows Server 2008 R2 (.NET 3.5.1) 的应用程序,该应用程序即使在冷重启后也能正常工作,而不需要有人登录服务器上的任何帐户。

关于应用程序本身的几句话,它是用c#编写的应用程序,用于注册员工在公司的工作时间。用户(员工),他们的卡片正在被条形码扫描仪扫描,每次扫描都意味着“工作开始”或“工作停止”,所有内容都被序列化为 xml 文件,该文件稍后被修改并放入 .csv 但那没有没关系。

条形码扫描仪作为键盘工作,因此所有代码都像从键盘一样“输入”到 PC。尽管控制台应用程序不在焦点上或根本不可见,但我还是让应用程序读取了密钥。

我需要做的是使该应用程序即使在冷重启后也能正常工作,它必须是全自动的。

到目前为止,我想出了两种方法来做到这一点,一种是创建一个服务来保持另一个进程处于活动状态(如果它不工作,只需打开它),我对这个没有太多运气,我已经创建了为我启动另一个进程的服务,但该进程的工作方式不同,如果我自己运行它,则与该进程没有通信,所以我什至无法判断它是否正确。

另一种是将我的应用程序放入注册/microsoft/windows/current version/run,并为具有有限权限的用户启用自动登录。这实际上可以工作,但它不是完美的解决方案,因为毕竟我们不希望用户 24/7 全天候登录公司的服务器,对吗?

我知道你们中的大多数人在编程方面比我更有经验,所以我会应用任何解决方案来解决我的问题

利霍涅斯皮

4

2 回答 2

0

我将使用第一种方法,创建一个服务,并与正在运行的应用程序通信,我将使用网络套接字或管道。对于该服务,请确保您使用的是现有用户帐户(不是系统)并允许它与桌面交互。

于 2012-09-03T19:45:30.467 回答
0

您的选择取决于系统的物理安全性(除了扫描条形码,路人是否可以对其做很多事情),但让我们假设它是一个易于访问的桌面。在这种情况下,您可能不需要登录用户。

使用服务方法。您不需要单独的进程来访问键盘。创建一个全局钩子类型WH_KEYBOARD_LL

像这样声明你的回调函数并用SetWindowsHookEx.

于 2012-09-03T19:53:43.550 回答