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

كيف أمنع ظهور أكثر من نسخة؟؟؟؟!

مغلق
بدأه students في 16 يونيو 2005 · 6 رد · 674 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

كيف يمكنني منع ظهور(أو تشغيل) أكثر من نسخة للبرنامج حيث عندما نقوم بذلك في الـ VB نكتب :

if app.prevInstant then end

ما هو الامر المقابل لة في الـ C# .

شكرا

(h)

سبحان الله وبحمده سبحان الله العظيم

#2

ممكن تستفيد من الكلاس بتاع Diagnostics.Process في بداية برنامجك في معرفة ما اذا كان يوجد نسخه من برنامجك تعمل أم لا ... اذا كان نعم قم بانهاء البرنامج واذا كان لا اجعله يعمل بشكل طبيعي.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#3

طيب كيف اجعله لا يظهر الفورم اكثر من مرة ؟

نموت وتحيا ...................فلسطين .

#4

راجع هذا الرابط:

تشغيل البرنامج لمرة واحدة .

المثال مكتوب بالـ VB.Net، و تحويله للـ #C سهل بإذن الله.

تم تعديل هذه المشاركة بواسطة محمد عبد العليم في 17 يونيو 2005 في 02:33

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

#5

السلام عليكم جميعا

هو ده الي انا فهمته من السؤال ولا ايه

Process aProcess = Process.GetCurrentProcess();
string aProcName = aProcess.ProcessName;
if (Process.GetProcessesByName(aProcName).Length > 1)
{
MessageBox.Show("لا يمكن تشغيل أكثر من نسخة من البرنامج","error",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
put this code in the main function before the line
Application.Run( new ...);

لاتحسبن المجد تمرا انت اكلهوا.... لن تبلغ المجد حتى تلعق الصبرا

ومن يتهيب صعود الجبال ...:::... يعش أبد الدهر بين الحفر

"وَيَا قَوْمِ اسْتَغْفِرُوا رَبَّكُمْ ثُمَّ تُوبُوا إِلَيْهِ يُرْسِلِ السَّمَاءَ عَلَيْكُمْ مِدْرَارًا وَيَزِدْكُمْ قُوَّةً إِلَى قُوَّتِكُمْ وَلَا تَتَوَلَّوْا". (أيه 52 سورة هود)

أَمَرَ بِالِاسْتِغْفَارِ الَّذِي فِيهِ تَكْفِير الذُّنُوب السَّالِفَة وَبِالتَّوْبَةِ عَمَّا يَسْتَقْبِلُونَ وَمَنْ اِتَّصَفَ بِهَذِهِ الصِّفَة يَسَّرَ اللَّه عَلَيْهِ رِزْقه وَسَهَّلَ عَلَيْهِ أَمْره وَحَفِظَ شَأْنه وَلِهَذَا قَالَ " يُرْسِل السَّمَاء عَلَيْكُمْ مِدْرَارًا "

وَفِي الْحَدِيث" مَنْ لَزِمَ الِاسْتِغْفَار جَعَلَ اللَّه لَهُ مِنْ كُلّ هَمّ فَرَجًا وَمِنْ كُلّ ضِيق مَخْرَجًا وَرَزَقَهُ مِنْ حَيْثُ لَا يَحْتَسِب ".

(تفسير ابن كثير)

#6

انظر الى هذا الكود من دلفي

var
  HM: THandle;
function Check: boolean;
begin
  HM := OpenMutex(MUTEX_ALL_ACCESS, false, 'MyOwnMutex');
  Result := (HM=0);
  if HM = 0 then
    HM := CreateMutex(nil, false, 'MyOwnMutex');
end;


 if Check=false then
    Exit;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;

لاحظ الدالتين OpenMutex

CreateMutex دوال API

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#7
علي المصري كتب:
السلام عليكم جميعا

هو ده الي انا فهمته من السؤال ولا ايه

Process aProcess = Process.GetCurrentProcess();
string aProcName = aProcess.ProcessName;
if (Process.GetProcessesByName(aProcName).Length > 1)
{
MessageBox.Show("لا يمكن تشغيل أكثر من نسخة من البرنامج","error",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
put this code in the main function before the line
Application.Run( new ...);

عفوا انا لا افهم #C ولكني(قياسا على كود دلفي ) اعتقد ان الرسالة يجب ان تكون قبل

Application.Run( new ...);

يعني قبل

Application.Initialize

مباشرة

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

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

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