C#程序自动启动与停止源码解析

需积分: 9 0 下载量 43 浏览量 更新于2024-08-26 收藏 867B TXT 举报
"C#自启动源码 (已使用正确版).txt" 在IT行业中,C#是一种常用的编程语言,尤其在开发Windows桌面应用程序时。这个文件提供的代码片段展示了如何使用C#来创建一个程序,使其在Windows启动时自动运行。这种方法通常用于需要后台服务或者希望用户在每次开机时都能自动启动的应用程序。 `RunWhenStart` 是一个静态方法,接受三个参数:一个布尔值 `Started` 表示是否开启自启动,一个字符串 `name` 用于在注册表中的键值名称,以及一个字符串 `path` 代表要启动的程序路径。此方法的核心是通过操作Windows注册表来实现程序的自启动功能。 首先,代码获取到本地机器的注册表根键 `Registry.LocalMachine`,然后创建或打开 `SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run` 子键。这个子键是Windows系统用来存储开机启动项的位置。 如果 `Started` 为真,说明我们要设置程序为自启动。这时,尝试调用 `SetValue` 方法,在 `registryKey`(即"Run"子键)中设置一个键值对,其中键名为 `name`,键值为 `path`。这样,当系统下次启动时,会执行路径中指定的程序。 如果 `Started` 为假,表示要取消程序的自启动。这时,使用 `DeleteValue` 方法删除注册表中对应的键值,从而移除开机启动项。 在异常处理部分,如果在设置或删除注册表值时发生错误,代码会捕获异常并显示一个消息框,提供错误信息给用户。如果没有异常,注册表键会被关闭以释放资源。 在提供的代码示例中,`Form1.RunWhenStart(true, Application.ProductName, Application.ExecutablePath);` 和 `Form1.RunWhenStart(false, Application.ProductName, Application.ExecutablePath);` 分别用于开启和关闭当前运行的程序作为自启动项。`Application.ProductName` 获取的是应用程序的产品名,`Application.ExecutablePath` 则是可执行文件的完整路径。 这段C#代码演示了如何通过操作注册表实现程序的开机自启动和取消自启动功能,对于理解Windows自启动机制和C#操作注册表的方法具有一定的学习价值。