Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
dasker
-
- Новичок
-
-
- Сообщения: 39
- Зарегистрирован: 01.10.2003 (Ср) 4:37
dasker » 13.03.2005 (Вс) 22:34
граждане есть код добаваления программы в автозагрузку:
- Код: Выделить всё
'Декларация
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
RegSetValueEx lRegKey, sDesc, 1, 1, ByVal sFile, Len(sApp)
RegCloseKey lRegKey
End Sub
Private Sub Command1_Click()
AddToStartup "calc", "c:\calc.exe"
AddToStartup "calc", "c:\calc.exe"
End Sub
но в реестре создается только название ключа, а параметра, в данном случае пути к программе ничего не записывает
windows Xp, sp1, vb6
-
_Hiser_
-
- Начинающий
-
-
- Сообщения: 12
- Зарегистрирован: 28.01.2005 (Пт) 11:34
- Откуда: Барнаул
_Hiser_ » 15.03.2005 (Вт) 17:53
Энто делается вот так.
- Код: Выделить всё
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hkey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition 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 ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hkey As Long) As Long
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const REG_SZ = 1
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_SET_VALUE = &H2
Private Const SUBNAME = "Software\Microsoft\Windows\CurrentVersion\Run"
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Private Function AddToStartup(ByVal sDesc As String, ByVal sFile As String) As Boolean
Dim hkey As Long
Dim secattr As SECURITY_ATTRIBUTES
If CBool(RegCreateKeyEx(HKEY_LOCAL_MACHINE, SUBNAME, 0, "", 0, KEY_CREATE_SUB_KEY Or KEY_SET_VALUE, secattr, hkey, 0)) Then Exit Function
RegSetValueEx hkey, sDesc, 0, REG_SZ, ByVal sFile, Len(sFile)
RegCloseKey hkey
AddToStartup = True
End Function
Private Sub Command1_Click()
Me.Caption = AddToStartup("calc", "c:\calc.exe")
End Sub
-
Andrev
-
- Продвинутый пользователь
-
-
- Сообщения: 108
- Зарегистрирован: 19.01.2005 (Ср) 9:22
- Откуда: Kursk
-
Andrev » 15.03.2005 (Вт) 18:18
Ну да, а можно и так:
- Код: Выделить всё
Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\calc", "c:\calc.exe"
По-моему, так проще.
-
killerb
-
- Новичок
-
-
- Сообщения: 43
- Зарегистрирован: 27.01.2005 (Чт) 23:08
- Откуда: Днепропетровск
-
killerb » 26.03.2005 (Сб) 16:26
Andrev твой код выдает ошибку "Varaable not defined"
Жизнь - это карусель, на которой никому не дано удержаться надолго. Стивен Кинг
-
_Мика_
-
- Гуру
-
-
- Сообщения: 1459
- Зарегистрирован: 24.10.2003 (Пт) 15:05
- Откуда: г. Москва, м.Речной вокзал
-
_Мика_ » 27.03.2005 (Вс) 0:22
Дык в Reference надо галочку поставить
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!
-
Alexander N. Samarin
-
- Постоялец
-
-
- Сообщения: 397
- Зарегистрирован: 05.03.2005 (Сб) 20:59
- Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине
-
Alexander N. Samarin » 27.03.2005 (Вс) 14:02
Какую галочку?
На это не смотрите! Это не подпись!!!!!!
-
|kerish|
-
- Постоялец
-
-
- Сообщения: 831
- Зарегистрирован: 22.10.2004 (Пт) 0:31
|kerish| » 27.03.2005 (Вс) 15:05
Andrev И на хрена нужно таскать с собой лишнюю библиотеку?
На некоторых системах твой код будет работать некорректно.
-
VERITAS
-
- Бывалый
-
-
- Сообщения: 212
- Зарегистрирован: 12.12.2004 (Вс) 20:31
-
VERITAS » 27.03.2005 (Вс) 16:59
А если кроме этого с реестром поработать надо, то вот прекраснейший модуль от
GSerg'a
или же еще один универсальный модуль, который оптимизирован по самое "нехочу"
Ok
- Вложения
-
- modRegistry.zip
- Registry Developer module by GSerg
- (7.72 Кб) Скачиваний: 25
-
- RegMod.zip
- Max Optimized Registry module
- (1.38 Кб) Скачиваний: 28
No comments ...
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 153