Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Прогу в Автозагрузку? Добавлено: 02.01.04 14:09  

Автор вопроса:  Keen | ICQ: 284-467-526 

Как добавить программу в автозагрузку? Причем не известно, какая языковая версия Windows. Только не надо писать пример, который использует Setup Kit, пожалуйста.

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
 Профиль | | #1 Добавлено: 02.01.04 14:43

Вообще суть в следующем: просто надо создать ключ в реестре (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

"Лично я всегда использую второй вариант

Ответить

Номер ответа: 2
Автор ответа:
 ZoomerSD



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #2 Добавлено: 02.01.04 20:18

а чем вам не нравиться такая тема:

Private Sub Command1_Click() 'Запись в реестр
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

Ну да. Создал переменную и работай с реестром 1й командой. По крайней мере для понимания лучше.

Ответить

Номер ответа: 5
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #5
Добавлено: 03.01.04 20:53

Нужно 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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам