在 C# 中创建具有接口的 Windows 服务的理想解决方案

本文关键字:Windows 服务 理想 解决方案 接口 创建 | 更新日期: 2023-09-27 18:31:29

我正在创建一个简单的考勤应用程序,该应用程序将具有一个简单的界面(有两个输入框和一个提交按钮)和一个在后台运行的Windows服务。

这个想法是捕获登录/注销事件并相应地计算小时数。问题是如何创建一个可以在后台运行但也有界面供用户添加标识的 Windows 服务?

谢谢

在 C# 中创建具有接口的 Windows 服务的理想解决方案

你不需要Windows服务。拥有一个与UI交互的Windows服务将是一项复杂的任务。您无法直接从 Windows 服务打开 UI 并将其显示在用户桌面上,因为这会导致安全风险。

我建议您创建一个Windows应用程序并在Windows启动时执行它。您可以在Windows启动时轻松调用exe。只需将您的应用程序名称和 exe 路径设置为以下寄存器条目,该条目将在操作系统启动时执行。

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE''Microsoft''Windows''CurrentVersion''Run", true);
key.SetValue("Your Application Name", @"Your application path.exe");

编辑

获取当前登录的用户名

string loggedInUser = Environment.UserName;