بسم الله الرحمن الرحيم
تشغيل برنامجك عند بداية تشغيل النظام (رجستري)
اكتب الكود التالي في القسم العام General
Option Explicit ' Reg Key Security Options... Const READ_CONTROL = &H20000 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 + KEY_SET_VALUE + _ KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL ' Reg Key ROOT Types... Const HKEY_LOCAL_MACHINE = &H80000002 Const ERROR_SUCCESS = 0 Const REG_SZ = 1 ' Unicode nul terminated string Const REG_DWORD = 4 ' 32-bit number Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData 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 RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
ثم بعد ذلك اكتب الكود التالي في زر أو في ال Form_Load
Dim gREGKEYOwner Dim rc As Long ' Return Code Dim KeyName Dim hKey As Long ' Handle To An Open Registry Key Dim tmpVal As String ' Tempory Storage For A Registry Key Value Dim KeyValSize As Long ' Size Of Registry Key Variable Dim Owner gREGKEYOwner = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" KeyName = "اسم البرنامجك" rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, gREGKEYOwner, 0, KEY_ALL_ACCESS, hKey) ' Open Registry Key If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Error... tmpVal = App.Path If Right(tmpVal, 1) <> "\" Then tmpVal = tmpVal & "\" tmpVal = tmpVal & App.EXEName & ".exe" rc = RegSetValueEx(hKey, KeyName, 0, _ REG_SZ, ByVal tmpVal, Len(tmpVal)) ' Get/Create Key Value If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Errors rc = RegCloseKey(hKey) ' Close Registry Key Exit Sub GetKeyError: rc = RegCloseKey(hKey)
أرجوا ان يكون الكود واضحا