1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 73
1

Создание универсального автозагрузчика

28.03.2014, 02:00. Показов 623. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нашёл код на данном форуме для программы, которая добавляет сама себя в автозагрузку. Но, надо было сделать его универсальным т.е. пользователь указывает программу/файл который надо добавить в автозагрузку.Подшаманив код получил следующее:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Reg As System.Object
       
        On Error Resume Next
        Reg = CreateObject("WScript.Shell")
        Reg.RegWrite("HKLM\Software\Microsoft\Windows\CurrentVersion" & _
        "\Run\" + OpenFileDialog1.SafeFileName, OpenFileDialog1.FileName()) 
        Reg = Nothing
 
 
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Reg As System.Object
        On Error Resume Next
        Reg = CreateObject("WScript.Shell")
        Reg.RegDelete("HKLM\Software\Microsoft\Windows\CurrentVersion" & _
        "\Run\" & OpenFileDialog1.SafeFileName)
        Reg = Nothing
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
 
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        OpenFileDialog1.ShowDialog()
        TextBox1.Text = OpenFileDialog1.FileName
    End Sub
End Class
Результат выполнения кода я(чтобы было быстрее) просматриваю в Msconfig-е. После долгой борьбы часть файлов добавляются нормально, например lusrmgr.msc и perfmon.msc . Остальные добавляются с именем OpenFileDialog1.SafeFileName и командой OpenFileDialog1.FileName .Как правильно указать путь к программе и название?Название должно браться из названия выбранного файла в OpenFileDialog но без расширения, а путь в точности повторять поле TextBox1 в котором он собственно и указывается.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2014, 02:00
Ответы с готовыми решениями:

Создание универсального шаблона
Не понимаю програмную реализацию задания. Создайте класс MyClass<T>, содержащий статический...

Создание универсального окна с календарем.
Простая ситуация: Есть поле на форме с датой и кнопкой рядом. По нажатии на кнопку вызываеться...

Создание универсального обработчика форм
Есть задача сделать универсальную обработку форм, то есть - есть набор функции которые обрабатывают...

Создание универсального метода выборки из БД и прикрепления в качестве источника данных к комбобоксу
Подскажите пожалуйста! Я в DataSet ResultData гружу данные из БД. А затем выбираю их в массив,...

2
Администратор
Эксперт .NET
17481 / 13714 / 5288
Регистрация: 17.03.2014
Сообщений: 28,157
Записей в блоге: 1
28.03.2014, 23:25 2
Для получения имени файла без расщирения используй метод GetFileNameWithoutExtension() класса System.IO.Path.

Для доступа к реестру вместо COM лучше использовать классы Registry/RegistryKey из пространства имен Microsoft.Win32:
VB.NET
1
2
3
4
5
6
7
8
9
10
Sub CreateAutoRunEntry(ByVal progPath As String)
    Dim keyName As String = Path.GetFileNameWithoutExtension(progPath)
    Registry.SetValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run", keyName, progPath)
End Sub
 
Sub DeleteAutoRunEntry(ByVal keyName As String)
    Using regKey As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
        regKey.DeleteValue(keyName, False)
    End Using
End Sub
Еще я бы посоветовал, вместо записи в системный реестр, создавать ярлык в папке автозапуска меню "Пуск". Это немного сложнее для программиста, но зато удобнее для пользователя. На stackoverflow есть пример как это сделать - Creating application shortcut in a directory.
0
1485 / 580 / 106
Регистрация: 26.03.2012
Сообщений: 1,028
29.03.2014, 18:24 3
Цитата Сообщение от OwenGlendower Посмотреть сообщение
На stackoverflow есть пример как это сделать - Creating application shortcut in a directory.
Зачем так далеко ходить? Вот тут есть на VB6 Программно создать ярлык к программе , перевести на VB.NET не составит трудности.
1
29.03.2014, 18:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2014, 18:24
Помогаю со студенческими работами здесь

Создание файла- автозагрузчика
Доброго состояния Вам и Вашим компам! Как можно создать на флешке такой файл, который при...

Создание автозагрузчика содержимого папки с FTP-сервера
Надо сделать программу, которая при запуске скачивала бы содержимое папки по ftp в папку с...

Создание универсального стека
Прошу помощи в создании универсального стека. Вообще в реализации стека хранящего определенный тип...

Создание универсального триггера
Добрый вечер. Есть вопрос по Transact-SQL Итак, есть задание написать триггер на некоторую...

Создание универсального конвертора!!
Здраствуйте все, я разработал конвертер. Но мне нужно ваша помощь!!! ...

Создание универсального класса для таблиц
Из бд в JTable Всем привет! Возникла проблема в создании универсального класса для подстановки из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru