c# - 如何让我们的窗体(应用程序)在Windows启动时在C#中开始运行?

标签 c# windows startup

我已经使用 C# 3.0 创建了一个应用程序。我需要该应用程序在 Windows 启动时持续启动和运行。在设置和安装该应用程序之后,这个过程应该会发生。 请提出您的建议。

最佳答案

如果您需要一个应用程序在 Windows 启动时启动并持续运行,它应该是 Windows 服务。您将无法将 GUI 和 Windows 作为同一应用程序/项目的一部分,您需要单独编写并与服务通信。

如果您希望它持续运行而不停止,普通的 Windows 窗体应用程序不会这样做:当然,用户可以关闭它。他们也可以关闭服务,但您可以在(在“恢复”选项卡上)中配置以在“失败”(在任务管理器中被终止)时重新启动。不过,他们仍然可以手动停止服务 - 但没那么容易。

它是 Visual Studio 中内置的项目模板。根据您的应用正在执行的操作,通常最好创建一个 Thread 对象的实例,并将您的逻辑放入在新线程上执行的各种循环中。从 Service 线程本身的 OnStartOnStop 方法,您可以创建线程,或发出停止信号(或简单地 中止它)。

通过右键单击设计器中的服务,您可以“添加安装程序”,这意味着如果您使用应用程序的名称运行 installutil,该服务将被安装,如果您在服务和安装程序上设置正确的属性,自动运行。

就您是否需要用户界面而言——您必须想出某种 UI 方式来与服务对话;您可以使用命名管道、内存映射文件,或者您可以将 WCF (.NET 3.5+) 与命名管道/TCP 提供程序一起使用,并直接调用它。

供引用:

http://msdn.microsoft.com/en-us/library/aa984464(VS.71).aspx

希望对您有所帮助。

关于c# - 如何让我们的窗体(应用程序)在Windows启动时在C#中开始运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306381/

相关文章:

c# - SQL - 左连接上没有空值

c# - 我应该在帖子中还是在 url 中存储 _method=PUT/DELETE

c# - 如何获取 .m4v 格式电影的运行时间?

windows - 如何使用 npm 在 64 位系统上构建 32 位二进制文​​件?

java - 从命令行设置 Spring 属性文件位置

angularjs - 加载 Angular 模块时如何异步加载数据?

clojure - 使用 Clojure 的初创公司

c# - 在 Visual Studio 中崩溃后清空源文件?

c# - C# 中的动态构造函数

C 程序无法获取软盘驱动器的句柄