Страница: 1 |
Как добавить программу в автозагрузку? Причем не известно, какая языковая версия Windows. Только не надо писать пример, который использует Setup Kit, пожалуйста.
Вообще суть в следующем: просто надо создать ключ в реестре (HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run") c любым именем, а значение ключа это путь к программе, а вот сделать это можно по-разному. '****************************************************************************** Private Const HKEY_LOCAL_MACHINE = &H80000002 Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long 'Вызывать её надо примерно так: AddToStartup "Это Я!", "C:\windows\explorer.exe" Private Sub AddToStartup(ByVal sDesc As String, ByVal sFile As String) Dim lRegKey As Long RegOpenKey HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run",lRegKey If lRegKey Then RegSetValueEx lRegKey, sDesc, 0, 1, ByVal sFile, Len(sApp) RegCloseKey lRegKey End If End Sub Private Function DeleteAtStartup(ByVal strValue As String) Dim keyhand As Long r = RegOpenKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", keyhand) r = RegDeleteValue(keyhand, strValue) r = RegCloseKey(keyhand) End Function '**********************Это был первый способ, весьма громоздкий для такой '**************************микрозадачи, но всё-же способ******************* '**************************Кстати его я взял в примерах на этом сайте!***** А можешь скачать Dll(RAR-34Кб+Help) для работы с реестром с "http://dimm-xxx.narod.ru/DllForReestr.rar" зарегистрировать её и... Private Reg As Registry sub Form_Load() Set Reg = New Registry end sub Public Function AddToStartup(Name As String, PrgPath As String) As Boolean AddToStartup = Reg.UpdateValue(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", Name, PrgPath) End Function Public Function DeleteFromStartup(Name As String) As Boolean DeleteFromStartup = Reg.DeleteValue(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", Name) End Function "Лично я всегда использую второй вариант а чем вам не нравиться такая тема: Private Sub Command1_Click() 'Запись в реестр Ну да. Создал переменную и работай с реестром 1й командой. По крайней мере для понимания лучше. Нужно 2 кнопки. ******************************* Private Const HKEY_LOCAL_MACHINE = &H80000002 Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long Private Sub AddToStartup(ByVal sDesc As String, ByVal sFile As String) Dim lRegKey As Long RegOpenKey HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", lRegKey If lRegKey Then RegSetValueEx lRegKey, sDesc, 0, 1, ByVal sFile, Len(sApp) RegCloseKey lRegKey End If End Sub Private Function DeleteAtStartup(ByVal strValue As String) Dim keyhand As Long r = RegOpenKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", keyhand) r = RegDeleteValue(keyhand, strValue) r = RegCloseKey(keyhand) End Function Private Sub Command1_Click() AddToStartup "Моя программа", "C:\soft\MyProg.exe" End Sub Private Sub Command2_Click() DeleteAtStartup "Моя программа" End Sub Страница: 1 |
Вопрос: Прогу в Автозагрузку?
Добавлено: 02.01.04 14:09
Автор вопроса: Keen | ICQ: 284-467-526
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #1
Добавлено: 02.01.04 14:43
Номер ответа: 2
Автор ответа:
ZoomerSD
ICQ: 148640473
Вопросов: 135
Ответов: 270
Профиль | | #2
Добавлено: 02.01.04 20:18
Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Имя твоей проги", "Путь к твоей проге"
End Sub
Private Sub Command2_Click() 'Удаление из реестра
Set Reg = CreateObject("WScript.Shell")
Reg.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Имя твоей проги"
End Sub
Номер ответа: 3
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #3
Добавлено: 02.01.04 21:01
А что, RAR-34Кб или CreateObject("WScript.Shell") это как-то менее громоздко
Номер ответа: 4
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #4
Добавлено: 02.01.04 21:25
Номер ответа: 5
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #5
Добавлено: 03.01.04 20:53