So müsste es funktionieren:
-------------------------------------------------------------------------
Deklaration:
'---------------------------------------------------------
Public 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
Public Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long
Public Declare Function RegSetValueEx_String 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
Public Declare Function RegDeleteValue Lib _
"advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As _
Long, ByVal lpValueName As String) As Long
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_ALL_ACCESS = KEY_QUERY_VALUE Or KEY_SET_VALUE _
Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or _
KEY_NOTIFY Or KEY_CREATE_LINK
Const ERROR_SUCCESS = 0&
Const REG_NONE = 0
Const REG_SZ = 1
Public Function SetAutoRun(sDescr As String, _
sPath As String) As Boolean
Dim lResult As Long
Dim KeyHandle As Long
Dim Key As String
Const root = HKEY_CURRENT_USER
Key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
lResult = RegOpenKeyEx(root, Key, 0, KEY_ALL_ACCESS, _
KeyHandle)
If lResult <> ERROR_SUCCESS Then
SetAutoRun = False
Exit Function
End If
'+1 für die Null am Ende
lResult = RegSetValueEx_String(KeyHandle, sDescr, 0, _
REG_SZ, sPath, Len(sPath) + 1)
RegCloseKey KeyHandle
SetAutoRun = (lResult = ERROR_SUCCESS)
End Function
Aufruf:
dim b as boolean
b = SetAutoRun("Titel des Eintrags", App.Path + "\Datei.exe")
--------------------------------------------------------------------------------
cu
Gabriel3