A1VBCode Forums

API:add to startup


http://www.a1vbcode.com/vbforums/Topic21065.aspx

By n00b - 1/5/2007

I need my program to start everytime when widows starts.

How can I add my program to STARTUP ?

any API ? or suggestions ?



thanks.
By Keithuk - 2/23/2007

You need to write to the
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

part of the registry. Wink

Option Explicit

Const REG_SZ = 1
Const HKEY_CURRENT_USER = &H80000001

Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" _
(ByVal hKey As LongByVal lpSubKey As String, phkResult As LongAs Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As LongAs Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal hKey As LongByVal lpSubKey As String, phkResult As LongAs Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _
(ByVal hKey As LongByVal lpValueName As StringByVal Reserved As Long, _
ByVal dwType As Long, lpData As Any, ByVal cbData As LongAs Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" _
(ByVal hKey As LongByVal lpValueName As StringByVal lpReserved As Long, lpType As Long, _
lpData As Any, lpcbData As LongAs Long

Private Sub SaveSettingString(hKey As Long, strPath As String, strValue As String, strData As String)

Dim hCurKey As Long
Dim lRegResult As Long
  
lRegResult = RegCreateKey(hKey, strPath, hCurKey)
lRegResult = RegSetValueEx(hCurKey, strValue, 0, REG_SZ, ByVal strData, Len(strData))
lRegResult = RegCloseKey(hCurKey)

End Sub

Private Sub Form_Load()

Dim sAppEXE As String

sAppEXE = App.Path & IIf(Right$(App.Path, 1) = "\", "", "\") & App.EXEName & ".exe"
SaveSettingString HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run" _
, App.Title, Chr$(34) & sAppEXE & Chr$(34)

End Sub