Csharp/C#教程:在启动时启动应用程序,使用错误的路径加载分享


在启动时启动应用程序,使用错误的路径加载

我正在使用注册表项将我的应用程序设置为在Windows Startup上加载(用户登录后)。 我的代码:

RegistryKey RegKey = Registry.LocalMachine; RegKey = RegKey.OpenSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionRun", true); RegKey.SetValue("AppName", """ + @"C:UsersNameDesktop" + """); RegKey.Close(); 

因此,使用此代码,我的应用程序在启动时加载,但工作目录是

C: Windows System32下

有谁知道为什么?

这对我不起作用,因为该程序需要在与该操作相同的目录中的几个文件。 如果程序加载在我选择的目录(“C: Users Name Desktop”)上,则问题将不存在。

有人对此有任何建议吗?

Directory.SetCurrentDirectory()可用于在应用程序启动时设置工作目录。 可以使用Application.ExecutablePath检索EXE路径。

把它们放在一起:

 var fi = new FileInfo(Application.ExecutablePath); Directory.SetCurrentDirectory(fi.DirectoryName); 

我已经找到了如何实现这一目标的廉价技巧。 当您的应用程序启动时,请再次阅读注册表以获取应用程序的启动路径(您打算使用的路径)。 例如:Appl1的启动路径为“C: Users Name Desktop App1.exe”。

阅读该路径的注册表后,将其设置为当前目录。 像这样的东西:

  RegistryKey RegKey = Registry.LocalMachine; RegKey = RegKey.OpenSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionRun", false); string Path = RegKey.GetValue("App1.exe").ToString(); Path = Path.Replace(@"App1.exe"", ""); // Now it's a valid directory. Directory.SetCurrentDirectory(Path); 

这对我有用,但如果有人有更好的方法,我很乐意听到他们。

上述就是C#学习教程:在启动时启动应用程序,使用错误的路径加载分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/998241.html

(0)
上一篇 2021年12月26日
下一篇 2021年12月26日

精彩推荐