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

نسخة كاملة : كيف أجعل البرنامج يفتح نموذج واحد فقط
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3 4
(31-12-20, 02:38 AM)معاند الحظ كتب : [ -> ]اخي قم بتفعيل الخاصية make single instance وهي موجودة ضممن خصائص ملف مشروعك والموجود في نافذة الحل ثاني واحد من الاعلى
اضغط كليك يمين واختر الخيار الذي في الاسفل properties ستفتح لك نافذة خصائص مشروعك اختر التبويب الاول والمسمى Application
ابحث عن الخاصبة make single instance وضع علامة صح امامها

بوركت اخي معاند الحظ
ذلك ما غاب عني
بارك الله بك اخي معاند الحظ بان فهمت السؤال والمطلوب
هذا يسمى منع تشغيل اكثر من نسخة من البرنامج  ببساظة
وشكرا لك اخي asmarsou 
السلام عليكم و رحمة الله و بركاته
بعد اذن اخواني الموضوع بسيط لكن يحتاج لشرح و وقت لعمل مثال و انا رغبت بالمشاركة من الجوال

اول خطوة هي عمل امتدا خاص لملفات برنامجك او ربط امتداد موجود مثل Txt ببرنامجك عن طريق جعله برنامج افتراضي لفتح هذا النوع من الملفات

الموضوع تم شرحه في المنتدى و هو اضافة بعض المفاتيح لسجل ويندوز او الريجيستري
يمكن اختصار هذه الخطوة للتجريب بسحب الملف و افلاته فوق رمز تطبيق البرنامج لتتعامل مع الملف عن طريق برنامجك

هنا تأتي الخطوة الثانية و هي التعامل مع الملف حسب سطر الاوامر الممرر من فتح او طباعة
طبعا لكل عملية يكتب رمز لها في الريجيستري مثل بارامترات نظام دوز
في حال سحب الملف و افلاته فوق البرنامج تكون مصفوفة سطور الاوامر هو اسم الملف فقط

الخطوة الثالثة بمنع تشغيل اكثر من نسخة من برنامجك تم شرحها من الاخوة

لب السؤال هو الاجراء الذي يتم تنفيذه عند فتح ملف مرتبط بالبرنامج و البرنامج مفتوح مسبقا

هنا وجدت ان مراجعة الرابط التالي تفي بالغرض 
https://stackoverflow.com/questions/2883...stance-app

و اعتذر عن عدم ارفاق مثال لضيق الوقت و مشاركتي من الجوال
(31-12-20, 08:37 AM)Mohamad Anan كتب : [ -> ]السلام عليكم و رحمة الله و بركاته
بعد اذن اخواني الموضوع بسيط لكن يحتاج لشرح و وقت لعمل مثال و انا رغبت بالمشاركة من الجوال

اول خطوة هي عمل امتدا خاص لملفات برنامجك او ربط امتداد موجود مثل Txt ببرنامجك عن طريق جعله برنامج افتراضي لفتح هذا النوع من الملفات

الموضوع تم شرحه في المنتدى و هو اضافة بعض المفاتيح لسجل ويندوز او الريجيستري
يمكن اختصار هذه الخطوة للتجريب بسحب الملف و افلاته فوق رمز تطبيق البرنامج لتتعامل مع الملف عن طريق برنامجك

هنا تأتي الخطوة الثانية و هي التعامل مع الملف حسب سطر الاوامر الممرر من فتح او طباعة
طبعا لكل عملية يكتب رمز لها في الريجيستري مثل بارامترات نظام دوز
في حال سحب الملف و افلاته فوق البرنامج تكون مصفوفة سطور الاوامر هو اسم الملف فقط

الخطوة الثالثة بمنع تشغيل اكثر من نسخة من برنامجك تم شرحها من الاخوة

لب السؤال هو الاجراء الذي يتم تنفيذه عند فتح ملف مرتبط بالبرنامج و البرنامج مفتوح مسبقا

هنا وجدت ان مراجعة الرابط التالي تفي بالغرض 
https://stackoverflow.com/questions/2883...stance-app

و اعتذر عن عدم ارفاق مثال لضيق الوقت و مشاركتي من الجوال

يا ريت مثال بعد اذنكم
(01-01-21, 09:52 AM)asmarsou كتب : [ -> ]يا ريت مثال بعد اذنكم

المثال في المرفقات

[attachment=26217]
(01-01-21, 04:21 PM)Mohamad Anan كتب : [ -> ]
(01-01-21, 09:52 AM)asmarsou كتب : [ -> ]يا ريت مثال بعد اذنكم

المثال في المرفقات

يعني نفس الشىء فتح فورم داخل فورم
(01-01-21, 05:27 PM)asmarsou كتب : [ -> ]يعني نفس الشىء فتح فورم داخل فورم

تم تعديل المثال لفتح الملفات في نفس النافذة

[attachment=26218]
(01-01-21, 08:22 PM)Mohamad Anan كتب : [ -> ]
(01-01-21, 05:27 PM)asmarsou كتب : [ -> ]يعني نفس الشىء فتح فورم داخل فورم

تم تعديل المثال لفتح الملفات في نفس النافذة
اشكرك اخي محمد على المجهود
ولكن لم استطع تحقيق  سؤالي
سارفق مثال و هل يمكن تعديله كما في نص السؤال
Imports System.IO
Imports Microsoft.VisualBasic.ApplicationServices
Imports System.Collections.ObjectModel
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            If My.Application.CommandLineArgs.Count > 0 Then
                OpenFile(My.Application.CommandLineArgs(0))
            End If
        Catch ex As Exception
        End Try
    End Sub
    Private Sub OpenFile(ByVal strFileName As String)
        Dim srStream As New StreamReader(strFileName)

        AxWindowsMediaPlayer1.URL = strFileName
        AxWindowsMediaPlayer1.Ctlcontrols.play()
        Me.Text = strFileName
        srStream.Close()
    End Sub
End Class
(01-01-21, 10:07 PM)asmarsou كتب : [ -> ]
(01-01-21, 08:22 PM)Mohamad Anan كتب : [ -> ]
(01-01-21, 05:27 PM)asmarsou كتب : [ -> ]يعني نفس الشىء فتح فورم داخل فورم

تم تعديل المثال لفتح الملفات في نفس النافذة
اشكرك اخي محمد على المجهود
ولكن لم استطع تحقيق  سؤالي
سارفق مثال و هل يمكن تعديله كما في نص السؤال
Imports System.IO
Imports Microsoft.VisualBasic.ApplicationServices
Imports System.Collections.ObjectModel
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            If My.Application.CommandLineArgs.Count > 0 Then
                OpenFile(My.Application.CommandLineArgs(0))
            End If
        Catch ex As Exception
        End Try
    End Sub
    Private Sub OpenFile(ByVal strFileName As String)
        Dim srStream As New StreamReader(strFileName)

        AxWindowsMediaPlayer1.URL = strFileName
        AxWindowsMediaPlayer1.Ctlcontrols.play()
        Me.Text = strFileName
        srStream.Close()
    End Sub
End Class

هل من جديد في خصوص الموضوع....ضروري جدا
(05-02-21, 12:10 PM)asmarsou كتب : [ -> ]هل من جديد في خصوص الموضوع....ضروري جدا

المطلوب سهل جدا  وهو جعل البرنامج يعمل نسخة واحدة فقط ثم تقوم بالاطلاع على ملف ApplicationEvents  وتنظر للاحداث الموجودة فيها وبعدها اي سؤال اسال..
مثل فكرة حقيبة المشفر اي نص بامتداد معين اخترته لبرنامجي اذا تم نقره يفتح برنامجي واذا تم نقر ملف آخر يفتح بنفس النافذة.

المرفق لقطة فيديو خفيفة  للدلالة على اني فهمت الفكرةSmileSmile
الصفحات : 1 2 3 4