بسم الله الرحمن الرحيم
أحبائي و زملائي في الفريق العربي للبرمجة
السلام عليكم و رحمة الله و بركاته
كل سنة و حضراتكم طيبين
ياااااااه من زمان الواحد معملش موضوع جديد :D
حدث ان رأيت الكثير يتسائل عن كيفية تسجيل المكتبات و الأدوات في الويندوز، و هو شيء مهم اذا ما أردت أن تقوم بعمل ملف SetUp بدون رسالة الخطأ الشهيرة التي تخبرك بعدم وجود المكتبة أو الأداة
و بالطبع عملية تسجيل الادوات و المكتبات الي حد ما تعتبر عملية مرهقة، فغير انك يجب ان تنسخ الاداة الي ملف النظام الخاص بك و وقتها قد لا تعلم هل هو system ام system32 حيث يختلف وجود هذان المجلدان كمجلد النظام حسب نوع النظام الذي تعمل به سواء كان 9x او احد انظمة NT
هذا بالاضافة الي الاوامر التي يجب ان تكتبها و كتابة مسار الاداة بالكامل و اسمها و امتدادها .. طبعا عملية متعبة
ناهيك عن فرض أنك أردت أن تلغي تسجيل مكون ما!!
و هذا ما دفعني لأصنع لكم هذا البرنامج الصغير و البسيط و هو مسجل الادوات و المكتبات
حيث يمكنك من:
(1) تسجيل الادوات و المكتبات
(2) الغاء تسجيل الأدوات و المكتبات
و الطريف انه لالغاء تسجيل اداة او مكتبة لست بحاجة ان تذهب لتبحث عنها داخل مجلد ال system بل يمكنك بكل سهولة ان تختار الاداة من اي مكان هي متواجدة به حتي ولو من داخل مشروعك و سوف يتولي هو الباقي نيابة عنك
البرنامج مجاني و يمكنك توزيعه و نشره الا انه لا يمكنك بيعه او استخدامه بأي شكل تجاري.
سوف أضع لكم البرنامج كامل بالكود و كذلك سأضع معه الكود للاستفادة منه
وهو ان شاء الله يعمل علي جميع نظم تشغيل الويندوز
ولا تنسي أن تخبرتي رأيك و تقييمك
و أرجوا أن تدعوا لي بالشفاء في هذه الأيام الكريمة لأنني مريض
و كل عام و انتم بخير و صحة و سلامة
أخوكم ........ أحمد شلبي
الكود
-----
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Dim fsource As String
Dim fname As String
Dim fdest As String
Dim msgrep As Integer
Dim msgdr As Integer
Dim winpath As String
Dim sysdir As String
Dim buffer As String
Dim ret As Integer
Dim filedir As String
Dim regstring As String
'برنامج مسجل الادوات و المكتبات لأحمد شلبي
' جميع الحقوق محفوظة
Private Sub cmdreg_Click()
buffer$ = Space(255)
ret% = GetSystemDirectory(buffer, 255)
sysdir = Left(buffer, ret%)
1:
dlg.DialogTitle = "اختر ملف لتسجيله"
dlg.ShowOpen
fsource = dlg.FileName
fname = dlg.FileTitle
If fsource = "" Then
msgrep = MsgBox("اسم ملف او مسار غير صحيح، من فضلك اخترملف للتسجيل", vbCritical _
+ vbMsgBoxRight + vbMsgBoxRtlReading + vbOKCancel, "خطأ في اختيار الملف")
If msgrep = vbOK Then
GoTo 1
Else
Exit Sub
End If
End If
filedir = sysdir & "\" & fname
If Dir(filedir, 0) <> "" Then
msgdir = MsgBox("هذا الملف موجود من قبل في ملفات النظام هل تريد استبداله؟", vbYesNo _
+ vbMsgBoxRight + vbMsgBoxRtlReading + vbExclamation, "هل تريد استبدال الملف الحالي بهذا الملف؟")
If msgdir = vbYes Then
On Error GoTo errdesc
SetAttr filedir, vbNormal
Kill filedir
GoTo nextreg
errdesc:
MsgBox Err.Description, vbCritical, "error processing your request!"
Exit Sub
Else
MsgBox "تم التراجع عن تسجيل الملف", vbInformation, "لم يتم التسجيل"
Exit Sub
End If
End If
nextreg:
fdest = filedir
FileCopy fsource, fdest
regstring = "regsvr32" & " " & fdest
Shell regstring
End Sub
Private Sub cmdunreg_Click()
buffer$ = Space(255)
ret% = GetSystemDirectory(buffer, 255)
sysdir = Left(buffer, ret%)
1:
dlg.DialogTitle = "اختر ملف لإلغاء تسجيله"
dlg.ShowOpen
fsource = dlg.FileName
fname = dlg.FileTitle
If fsource = "" Then
msgrep = MsgBox("اسم ملف او مسار غير صحيح، من فضلك اختر ملف لإلغاء التسجيل", vbCritical _
+ vbMsgBoxRight + vbMsgBoxRtlReading + vbOKCancel, "خطأ في اختيار الملف")
If msgrep = vbOK Then
GoTo 1
Else
Exit Sub
End If
End If
filedir = sysdir & "\" & fname
If Dir(filedir, 0) = "" Then
MsgBox "هذا الملف غير موجود في مجلد النظام يرجي اختيار ملف موجود بالفعل!", vbCritical, "خطأ في اختيار الملف"
Exit Sub
End If
regstring = "regsvr32 /u" & " " & filedir
Shell regstring
End Sub
Private Sub Form_Load()
dlg.Filter = "Tools Files(*.Ocx)|*.Ocx| Dll Files(*.Dll)|*.Dll"
End Sub
Private Sub cmdend_Click()
End
End Sub
Private Sub mnuabout_Click()
frmAbout.Show vbModal
End Sub
Private Sub mnuexit_Click()
End
End Sub
Private Sub mnureg_Click()
cmdreg_Click
End Sub
Private Sub mnuunreg_Click()
cmdunreg_Click
End Sub
