powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Автозапуск
7 сообщений из 7, страница 1 из 1
Автозапуск
    #32685292
НЕ СКАЖУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем есть прога(в виде файла exe). При запуске эта програ узнает свою директрию, имя исполняемого файла, и записывает в реестр в автозапуск(HKEY_LOCAL_MACHINE\SOFTWARE....\RUN)
Т.е. если прогу запустили из директории,например, C:\MyProgramDir\ ,а имя файла,например,MyProgram.exe, то в раздел реестра запишется значение вида: C:\MyProgramDir\MyProgram
Но программа записывает эту инфу при каждом запуске.
Я запустил программу, она записала в реестр путь и имя, и теперь эта программа должна запуститься при следующем старте системы. Все хорошо,при следующем старте, программа запускается, но на этот раз прога опять записывает инфу в реестр, и на этот раз она почему-то записывает не ту директорию, из которой запустилась, а она в реестр прописывает значение вида: C:\My Documents\MyProgram
Почему она думает, что запустилась из директории My Documents?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
using System;
using Microsoft.Win32;
using System.Reflection;
namespace SearchAssistantKiller
{
	
	class App
	{
		static void Main()
		{
			
			RegistryKey reg=Registry.LocalMachine;
			reg=reg.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
            reg.SetValue("AssistantKiller",Environment.CurrentDirectory+"\\"+Assembly.GetExecutingAssembly().GetName().Name);			
        }
	}
}
...
Рейтинг: 0 / 0
Автозапуск
    #32685360
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в твоем случае, в реестр прописывается текущая директория

попробуй так
reg.SetValue("AssistantKiller", Assembly.GetExecutingAssembly().Location);
---
Killer - это кого ?
...
Рейтинг: 0 / 0
Автозапуск
    #32685844
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
антивирус???
...
Рейтинг: 0 / 0
Автозапуск
    #32685940
НЕ СКАЖУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кузяв твоем случае, в реестр прописывается текущая директория
Да, но почему, если прогу запустить на прямую, то она правильно вычесляет текущий путь, а если она запускается через автозапуск, то "думает", что запустилась из папки "Мои документы"?
Вобщем сделал так:
Код: plaintext
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
Killer - это кого ?

антивирус???
Вроде того. Находит и убивает некотрые вредные окна.
...
Рейтинг: 0 / 0
Автозапуск
    #32686028
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НЕ СКАЖУДа, но почему, если прогу запустить на прямую, то она правильно вычесляет текущий путь, а если она запускается через автозапуск, то "думает", что запустилась из папки "Мои документы"?CurrentDirectory и директория из которой загружается сборка это две большие разницы (с)Одесса. В первом случае эти директории совпадают, во втором - нет.
...
Рейтинг: 0 / 0
Автозапуск
    #32686119
НЕ СКАЖУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSDNGets and sets the fully qualified path of the current directory; that is, the directory from which this process starts.
By definition, if this process starts in the root directory of a local or network drive, the value of this property is the drive name followed by a trailing slash (for example, "C:\"). If this process starts in a subdirectory, the value of this property is the drive and subdirectory path, without a trailing slash (for example, "C:\mySubDirectory").

Тут сталкивающиеся люди мне подсказали, что CurrentDirectory не всегда работает так как надо.
Например, если вопользоваться в програме диалогом открытия файла, то CurrentDirectory возвращает путь к этому файлу, а не диреторию, из которой запустилась программа,в кторой этот диалог сработал.
...
Рейтинг: 0 / 0
Автозапуск
    #32686388
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более того
В любой момент, ты сам в своей программе с помощью стат. метода Directory.SetCurrentDirectory (или стат. св-ва Environtmen.CurrentDirectory) можешь устанавливать новое значение текущей директории.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Автозапуск
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]