بارك الله بك اخي معاند الحظ بان فهمت السؤال والمطلوب
هذا يسمى منع تشغيل اكثر من نسخة من البرنامج ببساظة
وشكرا لك اخي asmarsou
السلام عليكم و رحمة الله و بركاته
بعد اذن اخواني الموضوع بسيط لكن يحتاج لشرح و وقت لعمل مثال و انا رغبت بالمشاركة من الجوال
اول خطوة هي عمل امتدا خاص لملفات برنامجك او ربط امتداد موجود مثل Txt ببرنامجك عن طريق جعله برنامج افتراضي لفتح هذا النوع من الملفات
الموضوع تم شرحه في المنتدى و هو اضافة بعض المفاتيح لسجل ويندوز او الريجيستري
يمكن اختصار هذه الخطوة للتجريب بسحب الملف و افلاته فوق رمز تطبيق البرنامج لتتعامل مع الملف عن طريق برنامجك
هنا تأتي الخطوة الثانية و هي التعامل مع الملف حسب سطر الاوامر الممرر من فتح او طباعة
طبعا لكل عملية يكتب رمز لها في الريجيستري مثل بارامترات نظام دوز
في حال سحب الملف و افلاته فوق البرنامج تكون مصفوفة سطور الاوامر هو اسم الملف فقط
الخطوة الثالثة بمنع تشغيل اكثر من نسخة من برنامجك تم شرحها من الاخوة
لب السؤال هو الاجراء الذي يتم تنفيذه عند فتح ملف مرتبط بالبرنامج و البرنامج مفتوح مسبقا
هنا وجدت ان مراجعة الرابط التالي تفي بالغرض
https://stackoverflow.com/questions/2883...stance-app
و اعتذر عن عدم ارفاق مثال لضيق الوقت و مشاركتي من الجوال
(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 وتنظر للاحداث الموجودة فيها وبعدها اي سؤال اسال..
مثل فكرة
حقيبة المشفر اي نص بامتداد معين اخترته لبرنامجي اذا تم نقره يفتح برنامجي واذا تم نقر ملف آخر يفتح بنفس النافذة.
المرفق لقطة فيديو خفيفة للدلالة على اني فهمت الفكرة
