Ayuda con registro
Publicado por Roberto Navarro (16 intervenciones) el 11/09/2004 00:54:16
Hola, quiero saber como correr una aplicacin junto con windows cuando este inicie, por aqui vi un texto donde le decian a una persona como hacerlo pero puse el codigo en un modulo, y en el form y al momento de cargarlo me mandaba un mensaje que decia, Argumento no Opcional,el texto es el siguiente:
Option Explicit
DefLng A-Z
Public Const HKEY_CURRENT_USER As Long = &H80000001
Public Const HKEY_LOCAL_MACHINE As Long = &H80000002
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition 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, ByVal lpData As String, ByVal cbData As Long) As Long
Private Const REG_SZ = 1
Private Const REG_OPTION_NON_VOLATILE = 0
Private Const STANDARD_RIGHTS_ALL = &H1F0000
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_LINK = &H20
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_NOTIFY = &H10
Private Const SYNCHRONIZE = &H100000
Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Private Const ERROR_SUCCESS = 0&
Public Function ColocarProgramaEnElRun(ByVal NombrePrograma As String, ByVal RutaPrograma As String) As Boolean
Dim hdlHandle As Long, lngCreada As Long, strBuffer As String, lngBuffer As Long, Clave As String, hKey As Long
Clave = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
hKey = HKEY_CURRENT_USER '(Usuario corriente) HKEY_LOCAL_MACHINE (Todos los usuarios, la máquina)
strBuffer = RutaPrograma & vbNullChar
lngBuffer = Len(RutaPrograma) + 1
If RegCreateKeyEx(hKey, Clave, 0, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, hdlHandle, lngCreada) <> ERROR_SUCCESS Then GoTo NoReg
If RegSetValueEx(hdlHandle, NombrePrograma, 0, REG_SZ, strBuffer, lngBuffer) <> ERROR_SUCCESS Then GoTo NoReg
RegCloseKey hdlHandle
ColocarProgramaEnElRun = True
Exit Function
NoReg:
RegCloseKey hdlHandle
ColocarProgramaEnElRun = False
End Function
Si alguien pudiera ayudarme se los agradecceria.Saludos
Option Explicit
DefLng A-Z
Public Const HKEY_CURRENT_USER As Long = &H80000001
Public Const HKEY_LOCAL_MACHINE As Long = &H80000002
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition 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, ByVal lpData As String, ByVal cbData As Long) As Long
Private Const REG_SZ = 1
Private Const REG_OPTION_NON_VOLATILE = 0
Private Const STANDARD_RIGHTS_ALL = &H1F0000
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_LINK = &H20
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_NOTIFY = &H10
Private Const SYNCHRONIZE = &H100000
Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Private Const ERROR_SUCCESS = 0&
Public Function ColocarProgramaEnElRun(ByVal NombrePrograma As String, ByVal RutaPrograma As String) As Boolean
Dim hdlHandle As Long, lngCreada As Long, strBuffer As String, lngBuffer As Long, Clave As String, hKey As Long
Clave = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
hKey = HKEY_CURRENT_USER '(Usuario corriente) HKEY_LOCAL_MACHINE (Todos los usuarios, la máquina)
strBuffer = RutaPrograma & vbNullChar
lngBuffer = Len(RutaPrograma) + 1
If RegCreateKeyEx(hKey, Clave, 0, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, hdlHandle, lngCreada) <> ERROR_SUCCESS Then GoTo NoReg
If RegSetValueEx(hdlHandle, NombrePrograma, 0, REG_SZ, strBuffer, lngBuffer) <> ERROR_SUCCESS Then GoTo NoReg
RegCloseKey hdlHandle
ColocarProgramaEnElRun = True
Exit Function
NoReg:
RegCloseKey hdlHandle
ColocarProgramaEnElRun = False
End Function
Si alguien pudiera ayudarme se los agradecceria.Saludos
Valora esta pregunta


0