تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تشغيل البرنامج بمجرد تشغيل الويندوز
#1
كاتب الموضوع : AhmedEssawy

تعتمد هذه الدالة على كتابة اسم البرنامج في الريجستري الخاص بالويندوز عن طريق الدالة RegSetValueEx ، وذلك في واحد من المسارات التي تستخدم لكتابة برامج بدء التشغيل مثل المكان التالي
\Software\Microsoft\Windows\Currentversion\run
والموجود في HKEY_LOCAL_MACHINE .

والباقي أوامر مخصصة للتعامع مع مكتبات الريجستري .

module

كود :
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 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, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
Public 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 ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public 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.
Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Const REG_SZ = 1
Public Const KEY_WRITE = &H20006
Public Const KEY_READ = &H20019
Public Const HKEY_LOCAL_MACHINE = &H80000002


code

كود :
Dim hregkey As Long
Dim secattr As SECURITY_ATTRIBUTES
Dim neworused As Long
Dim stringbuffer As String
Dim slength As Long
Dim retval As Long
Dim subkey
subkey = "\Software\Microsoft\Windows\Currentversion\run"
secattr.nLength = Len(secattr)
secattr.lpSecurityDescriptor = 0
secattr.bInheritHandle = True
retval = RegCreateKeyEx(HKEY_LOCAL_MACHINE, subkey, 0, "", 0, KEY_WRITE, secattr, hregkey, neworused)
If retval <> 0 Then
Debug.Print "Error opening or creating registry key ---aborting"
End
End If
stringbuffer = App.Path & "\" & App.EXEName & ".exe" & vbNullChar
retval = RegSetValueEx(hregkey, Trim(App.Title), 0, REG_SZ, ByVal stringbuffer, Len(stringbuffer))
retval = RegCloseKey(hregkey)
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  إيقاف عمل البرنامج بتاريخ و بوقت Ahmad Jawad 4 1,711 16-06-16, 01:29 PM
آخر رد: محمد سالم المحترف
  كود اظهار البرنامج بالنقر على الايقونة masdel 0 665 07-01-15, 03:36 PM
آخر رد: masdel
  طريقة لجعل الفورم او البرنامج في مقدمة البرامج Ahmad Jawad 0 818 28-10-12, 11:39 AM
آخر رد: Ahmad Jawad
  الغاء زر الاغلاق- اخفاء البرنامج من ادراة المهام- الغاء تكرارتشغيل برنامجك بنفس الوقت RaggiTech 0 829 17-10-12, 03:33 PM
آخر رد: RaggiTech
  لفتح البرنامج بطريقة جميلة RaggiTech 0 516 17-10-12, 02:36 PM
آخر رد: RaggiTech
  منع تشغيل أكثر من نسخة (Mutex) RaggiTech 0 516 17-10-12, 02:28 PM
آخر رد: RaggiTech
  لمعرفة الوقت المستغرق منذ بدأ تشغيل الآلة RaggiTech 0 368 17-10-12, 02:22 PM
آخر رد: RaggiTech
  معرفة مستوى الصوت المعرف في الويندوز وتغييره RaggiTech 0 271 17-10-12, 01:09 AM
آخر رد: RaggiTech
  معرفة الوقت المنقضي منذ بدء تشغيل الكومبيوتر RaggiTech 0 348 17-10-12, 01:05 AM
آخر رد: RaggiTech
  لمعرفة اصدار الويندوز المستخدم RaggiTech 0 348 17-10-12, 12:59 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم