الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن منع تشغيل اكثر من نسخة من نفس البرنامج وارسال قيمة الي البرنامج الاساسي

مغلق
بدأه MohEgy في 14 يناير 2007 · 5 رد · 892 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عند الضغط علي exe في كل مرة يقوم بعمل نسخة جديدة ولكن هذة ليست المشكلة الاساسية

أريد ان اقوم بعمل shortcut علي desktop لفورم معينة وذلك عن طريق اضافة باراميتر لل shortcut وهذا البراميتر هو اسم الفورم وفي دالة main ساقوم بأختبار القيمة المرسلة هكذا

static void Main(params string[] args)
{
//load instance of class which its name=args[0]
}

الي الان لا يوجد مشكلة, فالمشكلة هي

في حالة الضغط عل shortcut اذا كانت هناك نسخة بالفعل شغالة بدلا من ان يقوم exe بفتح نسخة اخري اريدة ان يكتشف وجود نسخة شغالة ويبعت لها قيمة نصية (ستكون البراميتر الخاص بال shortcut ) وبالتالي سيقوم البرنامج (النسخة الاساسية) بفتح هذا الفورم في البرنامج الاساسي

ملاحظة

shortcut عندما يحتوي علي براميتر او argument يكون بهذا الشكل علس سبيل المثال

"c:\Program.exe" Form1

وكلمة Form1 ستستقبلها دالة ال main في args[0]

#2

استخدم هذا الكود قد يساعدك فيما تريد

static void Main(String[] args)

{

if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1)

MessageBox.Show("البرنامج مفتوح مسبقاً");

else {

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1);

}

}

لا تنسونا من صالح دعائكم

#3

اشكرك يا أخي علي هذا الكود فهو يحل الجزأ الاول من المشكلة

ولكن اريد ان يبعث البرنامج الثاني للنسخة المحملة قيمة نصية او variable معين

#4
اقتباس
ولكن اريد ان يبعث البرنامج الثاني للنسخة المحملة قيمة نصية او variable معين

لن يستطيع "البرنامج الثاني" إرسال أي شيء بما أنه غير موجود بالذاكرة، لذا سيكون التعامل مع النسخة المحملة بالذاكرة..

قم بوضوع الكود المكتوب أعلاه في Function تعود بقيمة true أو false ... في حالة true على سبيل المثال قم بإرسال القيمة التي تود إرسالها ..

هذا إن كنت قد فهمتك :unsure:

رأس الحكمة الإيمان بالله

#5

أريد من البرنامج الثاني ان يرسل قيمة نصية للبرنامج المحمل وذلك علي النحو التالي

دالة ال Main تقوم بعمل check اذا كان البرمانج محمل ام لا

اذا كان محمل بالذاكرة ستقةم بأرسال قيمة نصية للبرنامج الأساسي ثم تغلق

واذا كان غير محمل بالذاكرة سيقوم بفتح البرنامج

أرجو أن يكون عرضي للموضوع واضح وإن كان غير ذلك فأخبرني وسأقوم بأعادة صياغتة

#6

هل يوجد حل لهذة المشكلة؟

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…