/// <summary>
/// 开机自动启动
/// </summary>
/// <param name="started">设置开机启动,或取消开机启动</param>
/// <param name="exeName">注册表中的名称</param>
/// <returns>开启或停用是否成功</returns>
public static bool SetSelfStarting(bool started, string exeName)
{
RegistryKey key = null;
try
{
string exeDir = System.Windows.Forms.Application.ExecutablePath;
key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//打开注册表子项
if (key == null)//如果该项不存在的话,则创建该子项
{
key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
}
if (started)
{
try
{
object ob = key.GetValue(exeName, -1);
if (!ob.ToString().Equals(exeDir))
{
if (!ob.ToString().Equals("-1"))
{
key.DeleteValue(exeName);//取消开机启动
}
key.SetValue(exeName, exeDir);//设置为开机启动
}
key.Close(); }
catch (Exception ex)
{
return false;
}
}
else
{
try
{
key.DeleteValue(exeName);//取消开机启动
key.Close();
}
catch (Exception ex)
{
return false;
}
}
return true;
}
catch (Exception ex)
{
if (key != null)
{
key.Close();
}
return false;
}
}
解决方案 »
- DataGrid数据绑定的问题
- 上传下载文件
- 请教一个图形算法的问题
- VS2005 用户控件失色
- 关于AutoPostBack的问题
- 怎么样才能控制让splitter控件在固定范围内上下移动
- ToolStripDropDownButton 绑定菜单名称和值的问题
- 求达人帮忙 c#返回打印机状态,如缺纸、卡纸、缺墨等。
- 当C# 连接SQL Server 2008数据库时,Data Source怎么写
- 请教~~关于TREEVIEW和LISTVIEW显示数据的问题。
- c# webbrowser navigate 就只执行 这一个方法 内存不断增加 。。。。。苦恼啊
- dataTable和dataSet的问题,求不吝赐教!
就是你 debug或者release中的可以执行的exe的名称,它将写入注册表中。
看你的注册表 中有没有,
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run这个路径。
{
RegistryKey HKCU = Registry.CurrentUser;
RegistryKey Run = HKCU.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
bool b = false;
foreach (string i in Run.GetValueNames())
{
if (i == appName)
{
b = true;
break;
}
}
try
{
if (f)
{
Run.SetValue(appName, Application.ExecutablePath);
}
else
{
Run.DeleteValue(appName);
}
}
catch
{ }
HKCU.Close();
}