منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف أجعل برنامجي يشتغل مباشرة عند اشتغال الوندوز
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3 4 5
السلام عليكم ورحمة الله أحبتي الأكارم

لدي برنامج أريد أن يشتغل مباشرة عند اشتغال الوندوز
فما العمل؟

ألف شكر وتقدير لكل مساعدة Heart
السّلام عليكم و رحمة الله و بركاته
أخي الكريم لم أجرّب هذا الكود لذلك لست متأكدا منه ..
إحتراماتي
كود :
Public Function Start()
Dim HKey As Long, DataSize As Long
Dim Data As String
If RegOpenKeyEx(&H80000001, "Software\Microsoft\Windows\CurrentVersion\Explorer\shelll Folders", 0, &H1, HKey) = 0 Then
Data = String(256, Chr(0))
DataSize = 255
If RegQueryValueEx(HKey, "Startup", 0, 0, ByVal Data, DataSize) = 0 Then
Data = Left$(Data, DataSize - 1)
CopyFile App.Path & "\" & App.EXEName & ".exe", Data & "\" & App.EXEName & ".exe", 0
End If
End If
RegCloseKey HKey
End Function

شكرا أخي الحبيب البسكري

أين يجب كتابة الكود ؟ هل في module  أم في الكود العادي
جربت الكود في صفحة الكود العادي وعند محاولة إنشاء الملف التنفيذي EXE فإن البرنامج
يظهر رسالة مفادها أن هذا الإجراء أو الدالة غير معرفة عند العبارة   (  )if RegOpenKeyEx
تفضل اخي
جرب المشروع بالمرفقات
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك أخي الفاضل " عبد الله الصّافي "
في الواقع لم أجرّب هذا النّوع من الأكواد .. و هذا كود إضافي تكملة للسّابق إن لم يفد فأرجو المعذرة
بالموديل :
كود :
Private 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
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 CopyFile Lib "Kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Public Function Start()
Dim HKey As Long, DataSize As Long
Dim Data As String
If RegOpenKeyEx(&H80000001, "Software\Microsoft\Windows\CurrentVersion\Explorer\****************l Folders", 0, &H1, HKey) = 0 Then
Data = String(256, Chr(0))
DataSize = 255
If RegQueryValueEx(HKey, "Startup", 0, 0, ByVal Data, DataSize) = 0 Then
Data = Left$(Data, DataSize - 1)
CopyFile App.Path & "\" & App.EXEName & ".exe", Data & "\" & App.EXEName & ".exe", 0
End If
End If
RegCloseKey HKey
End Function

للإستدعاء من خلال الفورم :
كود :
Private Sub Form_Load()
Call Start
End Sub

إحتراماتي
السلام عليكم ورحمة الله وبركاته

شكرا جزيلا لأخوي عبد الله و عبد العزيز على المساعدة السريعة والقيمة
استخدمت المرفق الذي وضعه أخي عبد الله  في البداية لم يشتغل لكنني وضعت اسم
البرنامج بين " "  أي  " App.EXEName "وأعدت المحاولة وكانت النتيجة إيحابية 100%
حيث تأكدت من اسم البرنامج في الرحيستر ثم بإعادة تشغيل الحاسوب وبعدها مباشرة اشتغل البرنامج

أكرر شكري لكليكما وأدعوا لكما ولكل من قدم خدمة للبشرية وخاصة لأخيه حبا في الله
والدعاء بظهر الغيب إن شاء الله مستجاب Heart
الحمد لله أنّه إشتغل معك كود أخي الغالي " عبد الله الصافي " جزاه الله خير الجزاء
و الحمد لله الذّي بنعمته تتمّ الصالحات
ملاحظة : حبّذا أخي لو وضعت الكود التام الذي إشتغل معك بوضعك اسم البرنامج
ولو بكتابتك اسم مزيّف للبرنامج فقط للإطّلاع لو تكرّمت
إحتراماتي
[attachment=13351]
السلام عليكم ورحمة الله

الكوذ هو نفسه الذي وضعه أخونا الفاضل عبد الله الصافي مشكورا
مع وضع اسم البرنامج بين " " ويجب أن يكون البرنامج في نفس المجلد حيث
يوجد هذا الملف
وضعت برنامج من إنجازي إسمه الاحتكاك       frottement  ويتم التنفيذ command
بعد التنفيذ يمكنكالدخول إلى السجل أو الريجيستر حيث ترى اسم البرنامج فيه
وعند إعادة تشغيل الحاسوب سوف يشتغل البرنامج مباشرة عند اشتغال الويندوز مباشرة

كود :
Private 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
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, lpData As Any, ByVal cbData As Long) As Long

Private Sub Command1_Click()
Dim hregkey As Long
Dim subkey As String
Dim stringbuffer As String
Const HKEY_CURRENT_USER = &H80000001
Const KEY_WRITE = &H20006
Const REG_SZ = 1
subkey = "Software\Microsoft\Windows\CurrentVersion\Run"

retval = RegOpenKeyEx(HKEY_CURRENT_USER, subkey, 0, KEY_WRITE, hregkey)

stringbuffer = App.Path & "\" & "frottement" & ".exe" & vbNullChar
retval = RegSetValueEx(hregkey, "frottement", 0, REG_SZ, ByVal stringbuffer, Len(stringbuffer))
RegCloseKey hregkey
End Sub
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و جزاك الله خير الجزاء عزيزي جورج على الشّرح و التّوضيح
أنت تعرف أخي الكريم المبتديء منّا لا يفهم حتى يمارس و يقلّب يمينًا و شمالاً و على رأيك الاحتكاك بالمعلومة عن قرب
أكرّر شكري واحترامي و تقديري رغم أنّه بقيت لي غصّة بالحلق في هذه النّقطة بالذات .. ألا يمكن وضع الكود بمشروعي بأي فورم لودْ منه و فقط  !!؟؟
إحتراماتي
(28-02-17, 03:44 AM)عبد العزيز البسكري كتب : [ -> ]
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و جزاك الله خير الجزاء عزيزي جورج على الشّرح و التّوضيح
أنت تعرف أخي الكريم المبتديء منّا لا يفهم حتى يمارس و يقلّب يمينًا و شمالاً و على رأيك الاحتكاك بالمعلومة عن قرب
أكرّر شكري واحترامي و تقديري رغم أنّه بقيت لي غصّة بالحلق في هذه النّقطة بالذات .. ألا يمكن وضع الكود بمشروعي بأي فورم لودْ منه و فقط  !!؟؟
إحتراماتي

اخي العزيز ضع الكود مثلا في حدث تحميل الفورم(form1_load) او اي حدث اخر تراه مناسبا لعملك
الصفحات : 1 2 3 4 5