Try this:

Code:
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 Const HKEY_LOCAL_MACHINE = &H80000002
Private Const ERROR_SUCCESS = 0&
Private Const REG_SZ = 1
Private Const KEY_SET_VALUE = &H2

Private Sub Main()
    Call SetProgramStartup("MyProg", "C:\MyProg.exe")
End Sub

Public Function SetProgramStartup(pProgramName As String, pProgramPath As String) As Boolean
    Dim lKeyHandle As Long
    Dim lRet As Long
    Dim strBuffer As String
    Dim strKey As String
    
    strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
    lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, strKey, 0, KEY_SET_VALUE, lKeyHandle)
    If lRet = ERROR_SUCCESS Then
      lRet = RegSetValueEx(lKeyHandle, pProgramName, 0, REG_SZ, ByVal pProgramPath, Len(pProgramPath))
      RegCloseKey lKeyHandle
    End If
End Function


Private Sub Form_Load()
Dim X
'"ConnectionName" is the name under the icon in Dial-up Networking
X = Shell("rundll32.exe rnaui.dll,RnaDial " & "ConnectionName", 1)
DoEvents
'You can type in your password before the { below.
SendKeys "{enter}", True
DoEvents
Unload Me
End
End Sub
Hope that helps.