Добавление программы в автозапуск

dim2603

Пишу программу. Необходимо добавить ее в реестр для автозапуска. Попытался использовать данный код:
Dim Start As Microsoft.Win32.RegistryKey = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
Start.SetValue("Моя программа", Application.ExecutablePath)
, но мне выбивает ошибку InvalidOperationException ( Ошибка при создании формы. См. Exception.InnerException. Ошибка: Значения для этого имени не существует. )Что делать?
14 ответов

dim2603

Было:
My.Computer.Registry.SetValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\", "Моя прога", Application.ExecutablePath)


dim2603

Памирыч, А удалить?


dim2603

В кучу:
Dim Start As Microsoft.Win32.RegistryKey = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Start.SetValue("MyProgramm", Application.ExecutablePath) 'Создаем ключ и пишем в него значение - полный путь к исполняемому файлу, пусть даже если он был переименован
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Start.DeleteValue("MyProgramm") 'Удаляем ключ с записью об автозапуске, неважно, был ли переименован файл
    End Sub


dim2603

Памирыч, Ошибка


dim2603

dim2603, работает хоть бы хны. Может у темя Семерка и она ругается на то, что прога лезет в реестр?


dim2603

Памирыч, Не. У меня XP. Пишет вот ее
выбивает ошибку InvalidOperationException ( Ошибка при создании формы. См. Exception.InnerException. Ошибка: Значения для этого имени не существует.


dim2603

dim2603, значит, что то создается до появления формы, например, недопустимые объявления в классе. К коду автозапуска вряд ли как-то относится


dim2603

Памирыч, Не. Относится, так как когда я удаляю код автозапуска с формы, то работает все ОК


dim2603

dim2603, в новом проекте работает?


dim2603

Памирыч, Не тестил. Сейчас пойду тестить


dim2603

А что делать, если моя программа использует сторонние файлы, у меня при запуске прога не какие файлы ИЗ СВОЕЙ папки использовать не может-не находит...У меня прога лежит в определённом месте, а файлы он почему-то пытается вытащить из C:\Windows\SysWOW64, почему он пытается их именно оттуда вытащить, а не из своей папки? Это происходит именно в автозапуске, а если просто запустить прогу, то всё норм.


dim2603

Kaylan,
использует сторонние файлы,
как путь прописываете?


dim2603

Application.ExecutablePath


dim2603

Kaylan, наверное, Вы хотели сказать StartupPath. У меня несколько прог в автозапуске, и все они дергают файлы со своей директории.