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

نسخة كاملة : كيفية عمل امتداد خاص بك و جعل برنامجك الافتراضي لهذا الامتداد-ادخل وشوف المزيد بالصور
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم
في البداية أحب أوضح إن هذا الموضوع منقول من منتدى vb4arab القديم و هو في الأصل للعضو أنس محمود. و تم نقله نظراً لسهولة الشرح..
سنقوم بشرح كيفية عمل امتداد خاص بك و جعل برنامجك الافتراضي لهذا الامتداد في هذا الموضوع وسوف نقوم بعمل مثال على ذلك بمشيئة الله تعالى
=================================
نبدا الشرح
=================================
افتح مشروع جديد بالفيجوال و اضف اليه الأداه RichTextBox ( كمثال لعمل امتداد لملفات نصية ذات تنسيق ) كما في الصورة:-

الان قم بتعديل الكود كما في الصورة

عرف الاجراء التالي الذي نستخدمه فيما بعد ( لتغير قيم الريجيستي ) :-

الان قم باضافة 3 ازرار وغير الخاصية text لكل منهما كالتالي :-

الان في الحدث load للنموذج أكتب الكود التالي :-

الآن يتوجب عليك الحصول على أيقونة للامتداد ، هذه كمثال :-

الان أذهب الى الحدث click الخاص بزر التسجيل وأكتب به هذا الكود :-

والان الى زر الحفظ ( لاحظ كتابة امتدادك ) :-

كود تغيير لون الخط المحدد ( طبعا ده برة الموضوع ولكن علشان نتأكد أن الملف سيحتفظ بتنسيقه ) :-

الان شغل البرنامج واضغط على تسجيل البرنامج :-

تم صنع الامتداد بنجاح !!
الان قم بعمل اي حاجة في المثال ده وغير اللون ( للتأكد من حفظ التنسيق ):-

الان اضغط على حفظ واكتب اسماً لما قمنا بعمله واحفظه في اي مكان ( على سطع المكتب مثلاً ) :-

الان اذهب الى المكان الي حفظت فيه الملف ، وشوف الملف :-

في حالة عدم ظهور الايقونة اعد تشغيل الجهاز
طيب شغل الملف كده ( أضغط على الملف مرتين ) :-

تلاحظ تم فتح الملف ، وبذلك أصبح البرنامج أفتراضي للامتداد ( ans ) ،
تعالو نفتح الملف بالوورد كدة !!! ( زيادة في التأكيد !!!! ) :-
أختار الوورد من قائمة open with :-

تلاحظ تم فتح الملف كما في الصورة :-

هذا هو كود البرنامج عشان مسحت المثال :-
كود :
Option Strict Off
Option Explicit On
Imports VB = Microsoft.VisualBasic
Public Class Form1
    Inherits System.Windows.Forms.Form
    Sub NewFileType(ByRef ProgramPath As String, ByVal Extension As String _
    , ByRef FileIcon As String, ByRef Description As String)
        Dim W As Object
        Dim E As String
        W = CreateObject("Wscript.shell")
        If VB.Left(Extension, 1) <> "." Then
            E = "." & Extension & "\"
        Else
            E = Extension & "\"
            Extension = Mid(Extension, 2)
        End If
        W.regwrite("HKCR\" & E, Extension & " File")
        W.regwrite("HKCR\" & Extension & " File\", Description)
        W.regwrite("HKCR\" & Extension & " File\DefaultIcon\", FileIcon)
        W.regwrite("HKCR\" & Extension & " File\Shell\Open\Command\", ProgramPath & " %1")
        W.regwrite("HKCR\" & Extension & " File\Shell\", "Open")
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim co As New ColorDialog
        If co.ShowDialog = Windows.Forms.DialogResult.OK Then
            Me.RichTextBox1.SelectionColor = co.Color
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim s As New SaveFileDialog
        s.Filter = " ملفات مفكرة أنس(ans)|*.ans"
        If s.ShowDialog = Windows.Forms.DialogResult.OK Then
            Me.RichTextBox1.SaveFile(s.FileName)
        End If
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        NewFileType((Application.ExecutablePath), ("ans") _
, ("F:\أيقونات\1.ico"), (" ملفات أنس "))


        MsgBox("تم الاعداد بنجاح")

    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Trim(VB.Command()) <> "" Then
            If VB.Right(Trim(VB.Command()), 3) = "ans" Then
                If Dir(Trim(VB.Command())) <> "" Then
                    Try
                        RichTextBox1.LoadFile(Trim(VB.Command()))
                    Catch ex As Exception
                        Try
                            RichTextBox1.LoadFile(Trim(VB.Command()))
                        Catch eh As Exception
                            Me.RichTextBox1.Text = My.Computer.FileSystem.ReadAllText(Trim(VB.Command()))
                        End Try
                    End Try
                End If
            End If
        End If
    End Sub
End Class
هذا كل شئ !!
بقلم العضو : أنس محمود
ملاحظة: في Windows 7/Vista ستحتاج لتشغيل برنامجك كمسؤول لتنفيذ كود التسجيل/الإعداد و يمكنك الإطلاع على كيفية عمل ذلك بالضغط هنا
والسلام عليكم ورحمة الله وبركاته
موضوع رائع وانا كنت احتاجه بصراحة

شكراً لك Big Grin

تم التقييم Heart
شكرا لك اخي على الموضوع القيم

لكن باين عليه الموضوع قديم وحق الvb6 والسبب :-

PHP كود :
CreateObject("Wscript.shell")
...
...
...
        
W.regwrite("HKCR\" & E, Extension & " File")
        W.regwrite("
HKCR\" & Extension & " File\", Description)
        W.regwrite("
HKCR\" & Extension & " File\DefaultIcon\", FileIcon)
        W.regwrite("
HKCR\" & Extension & " File\Shell\Open\Command\", ProgramPath & " %1")
        W.regwrite("
HKCR\" & Extension & " File\Shell\", "Open") 



وين راحت مكتبات الرجستري الحلوة تبع الdot net :-

Microsoft.Win32.Registry Big Grin
والله أنا نقلت الموضوع زي ما هو و الموضوع أصلاً من 2009 Tongue Smile
السلام عليكم

تم نقل الموضوع الى القسم المناسب

شكرا للجميع

يعطيكم العافية
مشكورورورورورورور على الموضوع الرائئئععع <3 ;-)
مشكووووووووووور
ممتاز جدا على الموضوع الراع كما أنني كنت بحاجة لموضوع مثله Big Grin