在启动时启动应用程序,使用错误的路径加载
我正在使用注册表项将我的应用程序设置为在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