您的位置:首页 > 编程语言 > C#

创建桌面快捷方式+设置开机启动代码[C#、WinForm]

2010-03-03 13:38 1036 查看
注意:

1.创建桌面快捷方式需要引用IWshRuntimeLibrary类库

2.设置开机启动需要使用Microsoft.Win32的Registry类

其他不说了,贴代码吧 :)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//-----------------------
using System.IO;
using Microsoft.Win32;
using IWshRuntimeLibrary;
namespace OneApp
{
public partial class FormOption : Form
{
public FormOption()
{
InitializeComponent();
}
private void FormOption_Load(object sender, EventArgs e)
{
//检查是否开机启动
RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE//Microsoft//Windows//CurrentVersion//Run", true);//打开注册表子项
if (key == null)
{
key = Registry.LocalMachine.CreateSubKey(@"SOFTWARE/Microsoft/Windows/CurrentVersion/Run");
}
checkBox1.Checked = (key.GetValue("发货审核") != null);
key.Close();
//检查是否建立桌面快捷方式
bool b = System.IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) +
"//" + "发货审核.lnk");
checkBox2.Checked = b;
}
private void buttonOption_Click(object sender, EventArgs e)
{
//设置为开机启动
RunWhenStart(checkBox1.Checked, "发货审核", Application.ExecutablePath);
//创建桌面快捷方式
CreateDesktopLink(checkBox2.Checked);
}
private void RunWhenStart(bool Started, string name, string path)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE//Microsoft//Windows//CurrentVersion//Run", true);//打开注册表子项
if (key == null)
{
key = Registry.LocalMachine.CreateSubKey(@"SOFTWARE/Microsoft/Windows/CurrentVersion/Run");
}
if (Started == true)//设置开机启动
{
try
{
key.SetValue(name, path);
key.Close();
}
catch (Exception Err)
{
MessageBox.Show(Err.Message);
}
}
else//取消开机启动
{
try
{
if (key.GetValue(name) != null)
{
key.DeleteValue(name, false);
key.Close();
}
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message);
}
}
}
private void CreateDesktopLink(bool Created)
{
if (Created == true)
{
//先判断是否存在
if (!System.IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) +
"//" + "发货审核.lnk"))
{
WshShell shell = new WshShell();
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) +
"//" + "发货审核.lnk"
);
shortcut.TargetPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
shortcut.WorkingDirectory = System.Environment.CurrentDirectory;
shortcut.WindowStyle = 1; //Normal window
shortcut.Description = "发货审核插件";
//shortcut.IconLocation = System.Environment.SystemDirectory + "//" + "shell32.dll, 165";
shortcut.Save();
}
}
else
{
//先判断是否存在
if (System.IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) +
"//" + "发货审核.lnk"))
{
System.IO.File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) +
"//" + "发货审核.lnk");
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: