c#中的启动脚本

时间:2012-07-28 14:07:39

标签: c# c#-4.0 batch-file

我的应用程序需要在Windows启动时启动。所以我写了一个批处理文件来运行应用程序。

这是将批处理文件路径条目写入注册表的代码。

private void RegisterInStartup(bool isChecked)
{
    RegistryKey registryKey = Registry.CurrentUser.OpenSubKey
            ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
    if (isChecked)
    {
        registryKey.SetValue("ApplicationName", Application.StartupPath+"\\autorun.bat");
    }
    else
    {
        registryKey.DeleteValue("ApplicationName");
    }
}

这是我的批处理文件代码。

start File.exe
exit

当我重新启动系统时,批处理文件正在执行,但应用程序File.exe没有执行。

为什么会这样?

2 个答案:

答案 0 :(得分:1)

批处理文件不是从存在的目录启动的。因此找不到File.exe。用exe替换批处理,或者也提供exe的完整路径。

答案 1 :(得分:0)

  1. 手动测试批处理文件。点击它。该应用程序是否启动?
  2. 在注册表中手动输入路径。注册表项是否有效?
  3. 将注册表项导出到文件。删除注册表,然后将其与程序一起重新添加并导出并比较这两个文件。如果1和2在哪里工作,那么注册表项必须有区别,用这种方式你会发现差异