我正在创建一个简单的考勤应用程序,它将具有一个简单的界面(带有两个输入框和一个提交按钮)和一个在后台运行的 Windows 服务。
想法是捕获登录/注销事件并相应地计算小时数。问题是如何创建一个可以在后台运行的 Windows 服务,同时也有一个界面供用户添加他们的标识?
谢谢
我正在创建一个简单的考勤应用程序,它将具有一个简单的界面(带有两个输入框和一个提交按钮)和一个在后台运行的 Windows 服务。
想法是捕获登录/注销事件并相应地计算小时数。问题是如何创建一个可以在后台运行的 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;