如何获取程序启动位置(路径)?我是要做开机自动启动的代码(C#)

一个c#开发的应用程序,我如何获取他的启动路径。比如a.exe,这个应用程序是在桌面上,我在启动的时候需要获取a.exe的启动路径是在桌面上的,这样我才可以吧这个路径设置到注册表里面去让他开机自动启动。推广开来就是,我的一个已经部署好了的应用程序,他有可能安装在c盘,也有可能安装在d盘,而且还有可能并不是在program files文件夹下面。所以不能直接去这么写死。那我怎么来获得这个应用程序启动时的位置的代码呢?

private void 启用ToolStripMenuItem_Click(object sender, EventArgs e)
{
//获取程序执行路径..
string starupPath = Application.ExecutablePath;
//class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装.
RegistryKey loca = Registry.LocalMachine;
RegistryKey run = loca.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");

try
{
//SetValue:存储值的名称
run.SetValue("kaixin", starupPath);
MessageBox.Show("已启用开机运行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
loca.Close();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
regset();//获取注册表状态
}

private void 停用ToolStripMenuItem_Click(object sender, EventArgs e)
{
//获取程序执行路径..
string starupPath = Application.ExecutablePath;
//class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装.
RegistryKey loca = Registry.LocalMachine;
RegistryKey run = loca.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");

try
{
//SetValue:存储值的名称
run.DeleteValue("kaixin");
MessageBox.Show("已停止开机运行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
loca.Close();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
regset();//获取注册表状态
}
private void regset()
{
//获取程序执行路径..
string starupPath = Application.ExecutablePath;
//class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装.
RegistryKey loca = Registry.LocalMachine;
RegistryKey run = loca.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
string[] subkeyNames;
subkeyNames = run.GetValueNames();
foreach (string keyName in subkeyNames)
{
if (keyName == "kaixin")
{
this.开机运行ToolStripMenuItem.Text = "开机运行(启动中)";
this.启用ToolStripMenuItem.Enabled = false;
this.停用ToolStripMenuItem.Enabled = true;
}
else
{
this.开机运行ToolStripMenuItem.Text = "开机运行(已停止)";
this.启用ToolStripMenuItem.Enabled = true;
this.停用ToolStripMenuItem.Enabled = false;
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-21
这属于编程高手才能回答的问题,你出10分我估计高手连看都不看,都是奔着那100,200分去的
第2个回答  2009-05-21
Application.ExecutablePath 当前可执行文件的全称路径
Application.StartupPath 当前可执行文件所在文件夹路径
第3个回答  2009-05-21
呵呵,去编程区问下吧,对C#不是很了解。

如何获取程序启动位置(路径)?我是要做开机自动启动的代码(C#)
private void 启用ToolStripMenuItem_Click(object sender, EventArgs e){ \/\/获取程序执行路径..string starupPath = Application.ExecutablePath;\/\/class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装.RegistryKey loca = Registry.LocalMachine;RegistryKey run = loca.CreateSub...

C#做的软件如何在代码中设置开机启动
位置:HKEY_CURRENT_USER\\Software\\Microsoft\\WindowsNT\\CurrentVersion\\Windows\\load。Userinit注册键 位置:HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion \\Winlogon\\Userinit。这里也能够使系统启动时自动初始化程序。通常该注册键下面有一个userinit.exe,如图,但这个键允许指定用逗号分隔的多个...

请教:如何用C#编一个电脑开机自动运行的程序
1.复制程序exe到开始菜单的启动栏 1234File.Copy(@"D:\\我的项目\\启动程序.exe", @"C: \\Users\\Administrator\\AppData\\Roaming\\Microsoft \\Windows\\Start Menu\\Programs\\Startup" + @"\\启动程序.exe");2.修改注册表启动项。1234567string path = Application.ExecutablePath;RegistryKey rk =...

C#怎么让程序开机启动,我是要电脑一开机就执行,不要点击什么按钮或者打 ...
直接将快捷方式发送到C:\\Users\\userName\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup 下呢?C# 创建快捷方式方法参考:http:\/\/blog.csdn.net\/testcs_dn\/article\/details\/8674265

C#获取程序所在路径的几种方法?
stringstr1=Process.GetCurrentProcess().MainModule.FileName;\/\/可获得当前执行的exe的文件名。\\x0d\\x0astringstr2=Environment.CurrentDirectory;\/\/获取和设置当前目录(即该进程从中启动的目\\x0d\\x0a录)的完全限定路径。\\x0d\\x0a\/\/备注按照定义,如果该进程在本地或网络驱动器的根目录中启动...

C#如何实现程序开机自动运行
那还不容易!using system .microsoft.win32;\/\/一定要引用 RegistryKey rk = Registry.LocalMachine;RegistryKey rk2 = rk.CreateSubKey(@"Software\\Microsoft\\Windows\\CurrentVersion\\Run");rk2.SetValue( "autorun",这写程序路径);rk2.Close();rk.Close();...

如何用C#添加开机启动项?
C# 可以通过读写注册表来设置开机启动,具体代码如下:\/\/\/ \/\/\/ 开机启动项 \/\/\/ \/\/\/ 是否启动 \/\/\/ 启动值的名称 \/\/\/ 启动程序的路径 public void RunWhenStart(bool Started, string name, string path){ RegistryKey HKLM = Registry.LocalMachine; RegistryKey Run...

c#如何获取其他应用程序的启动参数
{ string stitle2 = p.MainWindowTitle;\/\/ p.StartInfo进程启动参数 \/\/ p.StartInfo.FileName \/\/启动文件 \/\/ p.StartInfo.Arguments \/\/启动参数 } Process[] processes = Process.GetProcessesByName(engineExeName);\/\/在进程列表中查找指定的QQ进程 foreach (Process p in processes){ st...

c#命令行程序如何获取程序的exe文件所在位置?
\/\/获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。string str = System.Environment.CurrentDirectory;\/\/result: X:\\xxx\\xxx (.exe文件所在的目录)

C#如何获取自动开启的服务
通过注册表,里面有记录,服务名字、运行命令、启动模式都有

相似回答