启动时使用错误的路径启动应用程序

e e*_*e e 5 c# registry visual-studio-2010 winforms

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

RegistryKey RegKey = Registry.LocalMachine;
RegKey = RegKey.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
RegKey.SetValue("AppName", "\"" + @"C:\Users\Name\Desktop" + "\"");
RegKey.Close();
Run Code Online (Sandbox Code Playgroud)

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

C:\ Windows \ System32

有人知道为什么吗?

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

有人对此有何建议?

Mik*_*sov 6

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

将它们放在一起:

var fi = new FileInfo(Application.ExecutablePath);
Directory.SetCurrentDirectory(fi.DirectoryName);
Run Code Online (Sandbox Code Playgroud)