C# c中的启动脚本#
我的应用程序需要在windows启动时启动。因此,我编写了一个批处理文件来运行应用程序 这是将批处理文件路径项写入注册表的代码C# c中的启动脚本#,c#,c#-4.0,batch-file,C#,C# 4.0,Batch File,我的应用程序需要在windows启动时启动。因此,我编写了一个批处理文件来运行应用程序 这是将批处理文件路径项写入注册表的代码 private void RegisterInStartup(bool isChecked) { RegistryKey registryKey = Registry.CurrentUser.OpenSubKey ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
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
重新启动系统时,批处理文件正在执行,但应用程序文件.exe未执行
为什么会这样
批处理文件不是从其所在的目录启动的。因此,将找不到File.exe。将批处理替换为exe,或提供exe的完整路径。“有人能告诉我为什么会发生这种情况吗?”我们可以猜测,但执行了哪些诊断(如过程监视器跟踪)?我怀疑路径问题,但需要这些诊断来确认.PS。为什么不直接从
Run
键调用应用程序(file.exe
)?PPS。该注册表项与登录的用户有关,而不是与系统启动有关。是的,我知道该注册表项是针对当前用户的,我也尝试将路径直接设置为(file.exe),但我遇到了很多错误,如有关调用即时(JIT)调试而不是此对话框的详细信息,请参阅此消息的结尾。********************异常文本***************System.Data.SQLite.SQLiteException:SQLite错误没有这样的表:t01_schedule
实际上,当我手动运行file.exe时,表就在那里,它工作得很好异常意味着file.exe
正在执行。因此,您需要详细说明该错误消息。您是否尝试过使用windows调试工具捕获异常时的转储?您可能会在应用程序事件日志中看到异常。当我运行批处理文件时,我的应用程序正在工作,并且完成了步骤2,3,没有任何差异。使用“start”[此处的完整路径]\file.exe代替“start file.exe”