0

我想创建一个弹出应用程序,它将针对我的 SQL 数据库运行,并每天早上在用户机器上触发一个弹出窗口以提出问题。响应将被发送回数据库。

使用 Windows 服务非常容易,但不使用弹出窗口或界面。

我怎样才能做到这一点?

感谢您的任何建议

4

3 回答 3

1

如果您只需要每天早上显示弹出窗口,则不需要运行服务。只需制作一个普通的 Windows 应用程序,然后使用 Windows 任务计划程序 ( http://en.wikipedia.org/wiki/Task_Scheduler ) 安排它每天早上运行。

您可以在创建任务时指定时间、可执行文件的路径、频率和时间(每小时、每天、每月等)。您甚至可以指定是否在用户登录时运行任务(以防用户在您希望任务运行时未登录)。

您可以在程序安装时自动创建任务。

编辑:这是在 c# http://community.bartdesmet.net/blogs/bart/archive/2008/02/23/calling-the-task-scheduler-in-windows-vista-and-中创建任务的示例windows-server-2008-from-managed-code.aspx

于 2010-09-02T05:13:19.210 回答
1

在用户会话上制作服务显示窗口需要相当多的工作。最简单的做法是设置您的安装程序以使您的程序在登录时运行。

一个简单的方法是在注册表中放置一个指向应用程序可执行文件的键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

于 2010-09-02T01:36:58.713 回答
1

在 Vista 及更高版本中使用 session-0 隔离,不再可能从服务创建弹出窗口/界面。如果您的程序必须作为服务运行,那么您需要同时拥有在用户会话中运行的服务和客户端应用程序。然后,您可以使用多种不同的方式在两者之间进行通信。我最近使用 .NET 的远程处理来解决这个问题。

于 2010-09-02T01:39:08.110 回答