我使用C#3.0创建了一个应用程序。我需要该应用程序在Windows启动时连续启动和运行。设置和安装应用程序后,应该执行此过程。 请提出您的建议。
答案 0 :(得分:4)
如果您需要在Windows启动并持续运行时启动应用程序,它应该是Windows服务。您将无法将GUI和Windows作为同一应用程序/项目的一部分,您需要单独编写并与服务进行通信。
如果您希望它连续运行而不是停止,那么普通的Windows窗体应用程序将无法执行此操作:当然,用户可以关闭它。他们也可以关闭服务,但您可以配置(在“恢复”选项卡上)如果“失败”则重新启动(在任务管理器中被终止)。他们仍然可以手动停止服务 - 但不是那么容易。
这是Visual Studio内置的项目模板。根据您的应用程序正在执行的操作,通常最好创建一个Thread
对象的实例,并将您的逻辑放在一个在新线程上执行的循环中。通过OnStart
线程本身的OnStop
和Service
方法,您可以创建线程,或发出信号停止(或简单地Abort
)。
通过右键单击设计器中的服务,您可以“添加安装程序”,这意味着如果您使用应用程序的名称运行installutil
,则将安装该服务,如果您设置了正确的服务Service和Installer上的属性自动运行。
就您是否需要用户界面而言 - 您必须想出一些与该服务对话的UI方式;您可以使用命名管道,内存映射文件,或者您可以将WCF(.NET 3.5+)与命名管道/ TCP提供程序一起使用,并直接调用它。
供参考:
http://msdn.microsoft.com/en-us/library/aa984464(VS.71).aspx
希望有所帮助。
答案 1 :(得分:3)
将其设为Windows服务,并自动启动。或者,如果您只关心用户何时登录,请将其放在共享的启动文件夹中,以便为每个用户启动。
答案 2 :(得分:3)
如何在安装中将程序添加到启动文件夹?创建设置项目时,只需将主程序输出的快捷方式添加到目标PC的启动文件夹中。
答案 3 :(得分:0)
您使用的是什么安装应用?它们通常具有内置的功能。
如果您想在c#代码中执行此操作,则必须在注册表中进行编辑。 Read this article.(我想你还需要manifest中的管理员权限才能做到这一点)
答案 4 :(得分:-1)
在OnStart(){......}中使用WindowService,您将编写代码来启动应用程序