【问题标题】:Ways to autorun my C# app during startup in Windows 8在 Windows 8 中启动期间自动运行我的 C# 应用程序的方法
【发布时间】:2015-06-23 04:16:11
【问题描述】:

我目前在 Windows 8 启动期间使我的应用程序自动运行时遇到问题。我已尝试将应用程序放入注册表。事实上,我已经尝试过本地机器和当前用户的方法:

RegistryKey rkHKLM = Registry.LocalMachine;
RegistryKey rkRun;
RegistryKey rkHKCU = Registry.CurrentUser;
RegistryKey rkRun1;

rkRun = rkHKLM.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkRun1 = rkHKCU.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (checkBox1.Checked)
{
    rkRun.SetValue("MyApp", Application.ExecutablePath);
    rkRun1.SetValue("MyApp", Application.ExecutablePath);
}
else
{
    rkRun.DeleteValue("MyApp");
    rkRun1.DeleteValue("MyApp");
}

此方法在 Windows 8 中不起作用。但我在 Windows 7 或 XP 中没有此问题。 Windows 8 有什么不同吗?有什么新方法吗?

  • 为了您的信息,我已将应用设置为以管理员身份运行,但在启动时仍不会自动运行。

【问题讨论】:

  • 用 regedit 手动算出 reg 键,然后开始编码
  • 你怎么知道你的程序没有运行?也许它会立即运行并崩溃,也许是因为您试图在一个对其尝试执行的操作没有足够权限的帐户下运行它。你的程序实际上是做什么的?事件日志是否给出任何失败的迹象?

标签: c# windows registry autorun


【解决方案1】:

将链接或批处理文件添加到:

c:\Users\(用户名)\AppData\Roaming\Microsoft\Windows\开始菜单\程序\启动

您可以将代码中的c:\Users\ (username) \AppData\Roaming 替换为"%AppData%"

Environment.GetEnvironmentVariable("AppData");

【讨论】:

  • 我已经尝试手动将我的应用程序的快捷方式放入启动文件夹..但它仍然无法在启动过程中自动运行..
  • 嗯。很奇怪。它非常适合我。我知道这听起来很傻,但是在 DOS 提示符下,如果您键入 echo %UserName%,用户名​​是否与您正在使用的 c:\User\ 匹配?
  • 要查看的另一件事转到任务管理器( 然后选择任务管理器)或运行 taskmgr.exe,然后单击“启动”选项卡,看看它是否出现在那里。
【解决方案2】:

添加快捷方式: c:\Users\{login name}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 应该会在您登录时运行该应用程序。

或者,您可以创建任务。您可以在触发器中选择是在登录时运行还是在计算机启动时运行。

Task Scheduler Managed Wrapper”是一个有用的库,用于以编程方式创建任务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2016-07-12
    相关资源
    最近更新 更多