Я создал приложение с возможностью запуска при запуске Windows. Сначала я сделал это через реестр, как это:Странное поведение при запуске Windows C#
private void RunOnStartup(bool RunOnStartup) {
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (RunOnStartup) {
key.SetValue(ProgramTitle, System.Windows.Forms.Application.ExecutablePath.ToString());
} else {
key.DeleteValue(ProgramTitle, false);
}
}
И это сработало, но не правильно. Он запустил .exe, но с тем же поведением, что и новый, с по умолчанию «config.xml», в котором он нуждается. Это, очевидно, неправильно.
Мне не удалось выяснить, что случилось, поэтому я попробовал это по-другому: создайте ярлык в папке автозагрузки. Не могу пойти не так, как я понял, я имею в виду, что это просто ярлык?
Я использовал этот код:
private void RunOnStartup(bool RunOnStartup) {
string startup = Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\"+ProgramTitle+".url";
if (RunOnStartup) {
using (StreamWriter writer = new StreamWriter(startup)) {
string app = System.Reflection.Assembly.GetExecutingAssembly().Location;
writer.WriteLine("[InternetShortcut]");
writer.WriteLine("URL=file:///" + app);
writer.WriteLine("IconIndex=0");
string icon = app.Replace('\\', '/');
writer.WriteLine("IconFile=" + icon);
writer.Flush();
}
} else {
if (File.Exists(startup)) {
File.Delete(startup);
}
}
}
И это работало, как хорошо, это началось, но с тем же поведением.
Так что мой вопрос: кто-нибудь знает, как это происходит? Любая помощь высоко ценится!
Благодаря
«Он начал EXE-файл, но с таким же поведением, как это был новый один с по умолчанию «config.xml» он нуждается. Это, очевидно, неправильно ». Это совсем не очевидно, поскольку мы не знаем, что должно делать ваше приложение и что влияет на различные файлы config.xml, которые должны быть на нем. –
Единственное, что он делает, - это прочитать XML-файл для его значений, ничего другого кроме этого, так что не думайте, что это может помешать. – FrieK