如何让程序能够开机自动运行?? 这个是应该写注册表么??就30分了,还望不吝赐教啊!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //此方法把启动项加载到注册表中//获得应用程序路径string strAssName = Application.StartupPath + @"\" + Application.ProductName + @".exe";//获得应用程序名string ShortFileName = Application.ProductName;RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);if (rgkRun == null){ rgkRun = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");}rgkRun.SetValue(ShortFileName, strAssName);//此删除注册表中启动项//获得应用程序名string ShortFileName = Application.ProductName;RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);if (rgkRun == null){ rgkRun = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");}rgkRun.DeleteValue(ShortFileName, false); Public static bool Regexe(string filepath,string key){if(file(filepath).Exist){RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);if (rgkRun == null){ rgkRun = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); rgkRun.SetValue(filepath, key);}}}//filepath为exe的完整路径。 key为描述,可以任意。 新建一个 window services 系统服务安装的时候给注册后台的服务让服务带动程序 做守护进程来监控服务 http://blog.csdn.net/adsdassadfasdfasdf/archive/2010/05/05/5560330.aspx 上面那些改注册表的方法,是用户登录以后才运行的,如果需要不登录就能自动开始运行,应该用windows服务 1、使用操作系统的任务计划2、程序采用Windows 服务的形式。3、修改注册表 1.放在启动项里,2.修改注册表Run的键值。 /// <summary> /// 开机启动项 /// </summary> /// <param name="Started">是否启动</param> /// <param name="name">启动值的名称</param> /// <param name="path">启动程序的路径</param> /// <returns></returns> public static bool RunWhenStart(bool Started, string name, string path) { RegistryKey HKLM = Registry.LocalMachine; RegistryKey Run = HKLM.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\"); if (Started) { try { Run.SetValue(name, path); HKLM.Close(); return true; } catch (Exception Err) { MessageBox.Show(Err.Message, @"MUS\", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } } else { try { Run.DeleteValue(name); HKLM.Close(); return true; } catch (Exception) { return false; } } } 不错的分析,专业点只能改注册表了,没有比直接去改变世界更perfect的了 你这个修改服务只能够操作程序,但是却不会出现Windows界面,如果要出现界面的用服务是不行的。 1.run中修改其实和放到电脑的启动文件是一样的,只不过一个是widnows给你进行了界面处理罢了2.至于服务,有个最讨厌的问题,程序运行了,但是如果是应用程序的话不会出现UI,你无法进行鼠标键盘的操作。3.至于直接进行启动很有趣,这个代码我还真心不会写呵呵4.我找过注册表,里面有一个直接启动程序的方法,就是将explorer.exe这个桌面程序直接改成你的程序,这样的结果就是开机就进入你自己的应用程序了。 你说的直接使用杀毒软件不是和explorer这个进程进行交互吧,因为如果要使用桌面我记得都需要让他进行交互。。我本来想要直接不交互就先出来我的程序界面然后再出现桌面explorer,结果发现不成功。服务都是后台运行这句话是不会错的。 C#初级问题 C#中向C中的#define 如何把显示在PictureBox控件图片,另存为?(Winform下)高手赐教! 什么我找不到System.Data.ADO? C# Winform取session值的问题?? textBox与datagrid的问题(winform) 。net三大核心技术是什么呀?知道的说一下,很急的。 请教有繁体版软件开发经验的老兄 调用wcf报异常The remote name could not be resolved 一个WPF里的奇葩Buge 关于反编译混淆过的代码 急求关于在C#中使用CSGL第三方控件调用OpenGL绘制极慢的问题
string strAssName = Application.StartupPath + @"\" + Application.ProductName + @".exe";
//获得应用程序名
string ShortFileName = Application.ProductName;RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (rgkRun == null)
{
rgkRun = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
}
rgkRun.SetValue(ShortFileName, strAssName);
//此删除注册表中启动项//获得应用程序名
string ShortFileName = Application.ProductName;RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (rgkRun == null)
{
rgkRun = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
}
rgkRun.DeleteValue(ShortFileName, false);
{
if(file(filepath).Exist)
{
RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (rgkRun == null)
{
rgkRun = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
rgkRun.SetValue(filepath, key);
}
}
}//filepath为exe的完整路径。 key为描述,可以任意。
系统服务安装的时候给注册后台的服务让服务带动程序 做守护进程来监控服务
2、程序采用Windows 服务的形式。
3、修改注册表
2.修改注册表Run的键值。
/// <summary>
/// 开机启动项
/// </summary>
/// <param name="Started">是否启动</param>
/// <param name="name">启动值的名称</param>
/// <param name="path">启动程序的路径</param>
/// <returns></returns>
public static bool RunWhenStart(bool Started, string name, string path)
{
RegistryKey HKLM = Registry.LocalMachine;
RegistryKey Run = HKLM.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\");
if (Started)
{
try
{
Run.SetValue(name, path);
HKLM.Close();
return true;
}
catch (Exception Err)
{
MessageBox.Show(Err.Message, @"MUS\", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
else
{
try
{
Run.DeleteValue(name);
HKLM.Close();
return true;
}
catch (Exception)
{
return false;
}
}
}
2.至于服务,有个最讨厌的问题,程序运行了,但是如果是应用程序的话不会出现UI,你无法进行鼠标键盘的操作。
3.至于直接进行启动很有趣,这个代码我还真心不会写呵呵
4.我找过注册表,里面有一个直接启动程序的方法,就是将explorer.exe这个桌面程序直接改成你的程序,这样的结果就是开机就进入你自己的应用程序了。
我本来想要直接不交互就先出来我的程序界面然后再出现桌面explorer,结果发现不成功。服务都是后台运行这句话是不会错的。