Запись в Регистр при установке программы - VB

Узнай цену своей работы

Формулировка задачи:

Подскажите, как записать какие-то данные в Регистр при установке программы (так что потом, когда программа-сервис стартует, она эти данные прочитает)? Мое приложение ( NT service) при работе читает некоторые параметры из Регистра, куда сам я их предварительно и записываю (вручную). Использую MS Package and Deployment Wizard для создания пакета установки программы (на клиенте, например). Знаю, что для Windows Installer это не проблема, а вот как без него обойтись? Спасибо

Решение задачи: «Запись в Регистр при установке программы»

textual
Листинг программы
'Для работы с реестром:
'----------------------
Private Const HKEY_CURRENT_USER = &H80000001
Private Const KEY_ALL_ACCESS = &H3F
Private Const REG_SZ As Long = 1
 
Private Declare Function RegOpenKeyEx Lib 'advapi32.dll' Alias 'RegOpenKeyExA' _
 (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _
 ByVal samDesired As Long, phkResult As Long) As Long
 
Private Declare Function RegCloseKey Lib 'advapi32.dll' (ByVal hKey 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 Declare Function RegDeleteValue Lib 'advapi32.dll' Alias 'RegDeleteValueA' _
 (ByVal hKey As Long, ByVal lpValueName As String) As Long
 
Вот, например, добавление в автозагрузку (не мое :)):
 
Public Sub AddToAutostart()
Dim Result As Long
Dim Retval As Long
Dim sPath As String
    
    'Путь к проге:
    If Right(App.Path, 1) = ' ' Then
        sPath = App.Path & App.EXEName & '.exe'
    Else
        sPath = App.Path & ' ' & App.EXEName & '.exe'
    End If
    
    sPath = sPath + ' /tray'
    
    '// Манипулятор ключа:
    Retval = RegOpenKeyEx(HKEY_CURRENT_USER, 'SoftwareMicrosoftWindowsCurrentVersionRun', 0, KEY_ALL_ACCESS, Result)
    
    '// Запись:
    RegSetValueEx Result, App.Title, 0, REG_SZ, ByVal sPath, Len(sPath)
    
    RegCloseKey Result '// Закрыть ключ
    
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы