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 RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData 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 lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
Private Const HKEY_LOCAL_MACHINE = &H80000002
Public Function SetStartupProgram(ByVal AppName As String, Optional ByVal EXEPath As String = "C:\Windows\System32\Notepad.exe")
Dim hKey As Long
Call RegOpenKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", hKey)
RegSetValueEx hKey, AppName, 0&, 1&, ByVal EXEPath, lstrlen(EXEPath)
End Function
위 코드를 선언하시고
아래처럼 사용합니다.
SetStartupProgram "Startup", App.Path & "\" & App.EXEName & ".exe"
참고로 App.Path & "\" & App.EXEName & ".exe" 이건, 현재 실행 중인 프로그램의 경로와 이름입니다.