0

我的应用程序需要在 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 没有执行。

为什么会这样?

4

2 回答 2

1

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

于 2012-07-28T14:30:29.333 回答
0
  1. 手动测试您的批处理文件。点击它。应用程序是否启动?
  2. 在注册表中手动输入路径。注册表项是否有效?
  3. 将注册表项导出到文件。删除注册表并再次将其添加到您的程序中,然后将其导出并比较两个文件。如果 1 和 2 在哪里工作,则注册表项必须有所不同,通过这种方式您会发现不同之处
于 2012-07-28T14:16:24.320 回答