WinForm开发控制应用程序自启动功能

本文主要讲述WinForm开发应用程序需要设置自启动功能,这个也是在实际开发中经常涉及到的,非常实用,所讲到的是通过注册表来控制程序是否自行启动,具体功能实现上两张图,更直观。

如下图:

程序设置保持界面实现代码

using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Tools.App
{
    public partial class AutoRun : Form
    {
        public string KeyName = "Tools数据导出服务程序";
        public AutoRun()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            try
            {
                string strName = Application.ExecutablePath;
                //string strnewName = strName.Substring(strName.LastIndexOf("\\") + 1);

                if (AutoMenu.Checked)
                {
                    this.AutoMenu.Checked = true;
                    if (!File.Exists(strName))//指定文件是否存在
                        return;
                    Microsoft.Win32.RegistryKey Rkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
                    if (Rkey == null)
                    {
                        Rkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
                    }
                    Rkey.SetValue(KeyName, strName + " -s");//修改注册表,使程序开机时自动执行。
                    MessageBox.Show("程序已设置自启动,重新启动计算机后即可生效!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }
                else
                { //修改注册表,使程序开机时不自动执行。
                    this.AutoMenu.Checked = false;
                    RegistryKey Rkey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
                    if (Rkey == null)
                    {
                        Rkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
                    }
                    Rkey.DeleteValue(KeyName, false);
                    MessageBox.Show("程序已取消自启动设置!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }
            }
            catch//没有权限会异常
            {
                MessageBox.Show("请您使用管理员权限打开应用程序!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void AutoRun_Load(object sender, EventArgs e)
        {
            try
            {

                string strName = Application.ExecutablePath;
                if (!File.Exists(strName))//指定文件是否存在
                    return;
                Microsoft.Win32.RegistryKey Rkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
                if (Rkey != null)
                {
                    string val = Rkey.GetValue(KeyName).ToString();
                    if (val == (strName + " -s"))
                    {
                        this.AutoMenu.Checked = true;
                    }
                    else
                    {
                        this.AutoMenu.Checked = false;
                    }
                }
            }
            catch (Exception ex)//没有权限会异常
            {
                //MessageBox.Show(ex.Message);
                MessageBox.Show("请您使用管理员权限打开应用程序!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }
    }
}

希望以上分享对初学朋友有些帮助,谢谢!

更多关注付义方技术博客:http://blog.csdn.net/fuyifang

或者直接用手机扫描二维码查看更多博文:

时间: 2024-12-22 20:59:37

WinForm开发控制应用程序自启动功能的相关文章

通过启动项设置实现应用程序自启动功能

上一篇通过WinForm+C#代码实现控制应用程序自启动功能,这篇讲下在不用代码情况下是如何利用电脑启动项来设置开机自启动,这也是一个很实用的技巧哦.我这里主要通过截图展示如何添加QQ自启动实现,当然我这里只是举例说明,其他应用程序设置同理. 具体实现步骤如下图: 开始菜单栏找到启动目录 右键菜单打开启动项文件夹 在 启动项文件夹添加需要启动快捷方式 添加自启动启动完成 以上步骤设置完成,小伙伴快快重启电脑看看效果吧~ 下次电脑重启就可以看到你设置的程序自启动了~ 希望以上分享对初学朋友有些帮助

小程序云开发实现小程序支付功能

收集了一些小程序云开发中关于支付功能的案例 注意!小程序支付功能只有企业类型的开发者才能在上线后调用,个人开发者无法测试!!! 借助小程序云开发实现小程序支付功能(含源码) https://www.jianshu.com/p/ddccf5f95e8c 云开发支付的代码 https://developers.weixin.qq.com/community/develop/doc/000620ec5acb482103b7bf41d51804 原文地址:https://www.cnblogs.com/

10行代码实现小程序支付功能!丨实战

前面给大家讲过一个借助小程序云开发实现微信支付的,但是那个操作稍微有点繁琐,并且还会经常出现问题,今天就给大家讲一个简单的,并且借助官方支付api实现小程序支付功能. 传送门: 借助小程序云开发实现小程序支付功能 老规矩,先看本节效果图 我们实现这个支付功能完全是借助小程序云开发实现的,不用搭建自己的服务器,不用买域名,不用备案域名,不用支持https.只需要一个简单的云函数,就可以轻松的实现微信小程序支付功能. 核心代码就下面这些: 一.创建一个云开发小程序 关于如何创建云开发小程序,这里我就

SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework

9.1运行效果: 9.2开发实现: 1.首先配置服务器端,把“SNFAutoUpdate2.0\服务器端部署“目录按网站程序进行发布到IIS服务器上. 2.粘贴语句,生成程序 需要调用的应用程序的Load事件或者Program入口的Main方法第一行代码加上如下代码: 注意:是主程序的 Load事件要加上调整自动更新程序的代码.要以模式打开窗口.如果没有差异会自动关闭升级窗口显示主窗口. 3.把下面目录里的文件拷贝到 应用程序的同级目录下: 4.配置WINFORMS应用程序目录下Updateli

微信小程序支付功能 C# .NET开发

微信小程序支付功能的开发的时候坑比较多,不过对于钱的事谨慎也是好事.网上关于小程序支付的实例很多,但是大多多少有些问题,C#开发的更少.此篇文档的目的是讲开发过程中遇到的问题做一个备注,也方便其他开发的同学作为参考! 1.首先建议把官方文档支付部分看上三遍,每个细节都不要放过,因为任何一个点和微信要求不符都会导致支付不成功.https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=3_1 2.经过验证的微信支付功能,会需要一些商

【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库完成一个法律咨询管理系统.本系统要求类似网页后台管理效果,并且基于局域网内,完成多客户端操作同一数据库,根据权限不同分别执行不同功能模块.核心模块为级联统计类型管理.数据库咨询数据扇形统计.树的操作.咨询数据的管理.手写分页.Excel数据的导出.多用户操作服务器数据等.并支持多用户同时操作,远程连

Java进击C#——应用开发之WinForm开发

本章简言 上一章笔者介绍了关于WinForm环境.这一章笔者将继续讲WinForm.只不过更加的面向开发了.事实就是在学习工具箱里面的控件.对于WinForm开发来讲,企业对他的要求并没有那么高.但是如果是游戏相关的话,不好意思!笔者觉得你可能选错语言了.C++可能更合适你.有一点希望读者们明白.下列讲到的内容是笔者在开发用的.只能辅助你学习,却不能成为教材.上一章讲到WinForm开发就是JAVA的Awt和Swing编程.笔者在做Awt和Swing已经过去四年多了.如果记得没有错的话,在设计窗

基于BindingSource的WinForm开发

BindingSource控件介绍 BindingSource控件介绍 BindingSource控件是.NET Framework 2.0提供的新控件之一.BindingSource控件与数据源建立连接,然后将窗体中的控件与BindingSource控件建立绑定关系来实现数据绑定,简化数据绑定的过程. BindingSource控件即是一个连接后台数据库的渠道,同时又是一个数据源,因为BindingSource控件即 支持向后台数据库发送命令来检索数据,又支持直接通过BindingSource

在远程系统上开发 SharePoint 应用程序

适用范围: apps for SharePoint | Office 365 | SharePoint Foundation 2013 | SharePoint Server 2013 使用远程安装的 SharePoint 创建 SharePoint 相关应用程序 利用 Visual Studio 中以前版本的 SharePoint 工具,开发人员在 Visual Studio 中生成 SharePoint 解决方案之前,必须在本地安装 SharePoint Foundation 或 Share