اضافة برنامجك لقائمة ويندز تظهر عند النقر Right-Click

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

اضافة برنامجك لقائمة ويندز تظهر عند النقر Right-Click

مُساهمة من طرف المبرمج الطموح في الأربعاء ديسمبر 25, 2013 11:12 am

بسم الله الرحمن الرحيم 

المثال مرفق مع صورة


العمليه ستكون في هذا المفتاح HKEY_CLASSES_ROOT

في البدايه سنحتاج الى دوال API التي تتعامل مع الريجستري
الرمز:

Read And Write to the Registry
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 RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" ( _
ByVal hKey As Long, ByVal lpSubKey As String, phkResult 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 Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long


ثم سنقوم بانشاء بعض التعاريف

الرمز:

Const lngKeyDataType = 1 ''HnHn REG_SZ = 1
Const lngRegKeyROOT = &H80000000
Const strRegKeyName = "Directory\Shell" 'HnHn : اسم المجلد في الريجستر
'HnHn : بعض التعاريف

Dim strKeyValueName As String
Dim strOtherKeyValueName As String
Dim KeyDataValue1, KeyDataValue2
Private Const KEY_ALL_ACCESS = &H2003F



ثم سنقوم بانشاء اجرء لتنفيذ عملية انشاء مفتاح
الرمز:

Private Sub SetKeyDataValue(RegKeyRoot As Long, RegKeyName As String, RegOtherKeyName As String, KeyDataType As Long, KeyValueName As String, KeyValueDate1 As Variant, KeyValueDate2 As Variant)
   
   Dim OpenKey As Long, SetValue As Long, hKey As Long
   'HnHn : التأكد من وجود المجلد
   OpenKey = RegOpenKeyEx(RegKeyRoot, RegKeyName & "\" & KeyValueName, 0, KEY_ALL_ACCESS, hKey)
   If (OpenKey <> 0) Then
   'HnHn قرءة القيم
      Call RegCreateKey(RegKeyRoot, RegKeyName & "\" & KeyValueName, hKey)
      SetValue = RegSetValueEx(hKey, "", 0&, KeyDataType, ByVal CStr(KeyValueDate1 & Chr$(0)), Len(KeyValueDate1))
   'HnHn انشاءها
      Call RegCreateKey(RegKeyRoot, RegKeyName & "\" & KeyValueName & "\" & RegOtherKeyName, hKey)
      SetValue = RegSetValueEx(hKey, "", 0&, KeyDataType, ByVal CStr(KeyValueDate2 & Chr$(0)), Len(KeyValueDate2))
   End If
   'HnHn : انهاء العمليه
   SetValue = RegCloseKey(hKey)
      MsgBox "تم انشاء المفتاح" & Space(2) & KeyValueName, vbInformation + vbOKOnly, App.Title
End Sub

ثم سنقوم بادراج العملية تحت زر امر لتنفيذه
الرمز:

Sub Command1_Click()
   strKeyValueName = "HnHn" 'HnHn ' اسم المجلد الذي سيحوي اسم الاختصار للبرنامج
   strOtherKeyValueName = "Command" ' HnHn  ' المجلد الذي سيحوي مسار البرنامج
   KeyDataValue1 = "&" & strKeyValueName 'HnHn : اسم القيمة المرجعيه للأسم الاختصار
   KeyDataValue2 = App.Path & "Key.exe"
   If strKeyValueName <> "" And KeyDataValue1 <> "" And KeyDataValue2 <> "" Then
   Call SetKeyDataValue(lngRegKeyROOT, strRegKeyName, strOtherKeyValueName, lngKeyDataType, strKeyValueName, KeyDataValue1, KeyDataValue2)
  Else
  Unload Me
  End If




المقال منقول للفائدة ..
أسم الكتاب / هاني الشايب
المصدر / شبكة أكواد للبرمجة
المرفقات
SetKeyWin.zip لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات.(5 Ko) عدد مرات التنزيل 18

المبرمج الطموح
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 117
النقاط : 213
التقيم : 6
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اضافة برنامجك لقائمة ويندز تظهر عند النقر Right-Click

مُساهمة من طرف end.sub في الأحد يونيو 08, 2014 11:34 am

شكر لك

end.sub
.....
.....

تاريخ التسجيل : 15/08/2013
المساهمات : 70
النقاط : 131
التقيم : 9
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: اضافة برنامجك لقائمة ويندز تظهر عند النقر Right-Click

مُساهمة من طرف qadar في الإثنين يونيو 09, 2014 4:28 pm

شكرا لك


الله يبارك فيك

qadar
.
.

تاريخ التسجيل : 30/03/2014
المساهمات : 2
النقاط : 2
التقيم : 0
الدولة : لبنان
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى