Creo que lo más fácil es, leer directamente la clave del registro. Si está presente, marcar el checkbox de "Iniciar con el sistema", si no está presente, dejarlo desmarcado; y crear/eliminar dicha clave de acuerdo a la selección del usuario.
Para leer la clave del registro se puede usar esto:
Código vb:
Ver originalOption Explicit
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) 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 Const ERROR_SUCCESS = 0&
Private Const REG_SZ = 1
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Function GetKeyValue(ByVal hKey As Long, ByVal Path As String, ByVal Value As String) As String
Dim Result As Long
Dim vType As Long
Dim Buffer As String
Dim bSize As Long
Dim subKey As Long
Result = RegOpenKey(hKey, Path, subKey&)
Result = RegQueryValueEx(subKey&, Value, 0&, vType, ByVal 0&, bSize)
If Result = ERROR_SUCCESS And vType = REG_SZ Then
Buffer = String(bSize, Chr(0))
Result = RegQueryValueEx(subKey&, Value, 0&, 0&, ByVal Buffer, bSize)
If Result = ERROR_SUCCESS Then
GetKeyValue = Left(Buffer, InStr(Buffer, Chr(0)) - 1)
End If
End If
Result = RegCloseKey(subKey&)
End Function
Saludos.