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

مشكلة في ارسال مسار الملف الى برنامجي

مغلق
بدأه بشا في 21 ديسمبر 2006 · 9 رد · 903 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كــــــل عام وانتـــم بخيــــــر جميعــــاً

عملت برنامج ينزل في قائمة الوندوز عند ضغط ملف كليك يمين على اى ملف { مثل في قائمة الوندوز Winrar , Winzib }

وارسال مسار الملف الذي اختيره الى برنامجـــي والحمد الله اشتغل 100%

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

سيفتح منه ثلاثة نسخ ؟؟ وانا اريد نسخة واحدة فقط تفتح وارسال اليها مسار ملفات التى اختيرت ؟؟؟ اتمنى ان اتضح ؟

ارجو مساعدتي وشكرا للجميـــــــــــع ....

تم تعديل هذه المشاركة بواسطة بشا في 21 ديسمبر 2006 في 02:36

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

#2

السلام عليكم

الداله Main تسبقل Array of Strings

تمكنك من التعامل مع اكثر من ملف علي التوالي

افضل لو تضع كود داله main

#3

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

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

ام خارجها ...

وهذا كود الذي استخدمته في Main

static void Main(string[] args) 
		{
		foreach(string s in args) 
   		MessageBox.Show(s);

			Application.Run(new Form1());
		}

وشكـــرا اخي وعزيزي م. أحمد على مرورك ومساعدتـــي ويجعله الله إن شاء الله في ميزان حسناتك

تم تعديل هذه المشاركة بواسطة بشا في 22 ديسمبر 2006 في 20:41

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

#4

الكود بيقول ان بيظهر MessageBoxs عدد الملفات المختاره

بس انت بتقول البرنامج نفسه اللي بيفتح نسخه جديده لكل ملف

ممكن توضح اكتر ؟؟

او ارفق الجزء الخاص بالموضوع علي شكل برنامج لعمل test عندي ان شاء الله

#5

طبعاً لو حدد اكثر من ملف واخترت البرنامج فانه سيظهر MessageBoxs على عدد الملفات التى سبق واخترتها ( ومـــع بعضها ) .. بمعنى لو اخترت 3 ملفات وضغط على البرنامج فانه سيطبع 3 MessageBoxs مع بعضها ..

بدون ضغط على زر اوكي ليطبع رسالة ثانية ثم تضغط اوكي ليطبع رسالة الثالثة يعني

يطلعــوا 3 MessageBoxs مع بعض ..

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

#6

فعلا بيفتح اكتر من نسخه حسب عدد اللفات المختاره

بس ممكن يفتح نسخه واحده بغض النظر عن عدد الملفات

بالكود ده بس لست متأكد ان كان كفاءه ولا لأ

 static void Main(string[] args)
		{
			Process p = Process.GetCurrentProcess();
			   Process[] ps = Process.GetProcesses();
			   int count = 0;
			foreach(Process pp in ps)
			{
				if(pp.ProcessName == p.ProcessName)
				{
					count++;
				}
				if(count > 1)
				{
					pp.Kill();
					return;
				}
			}

			foreach (string s in args)
			{
				MessageBox.Show(s);
			}
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new Form1());
		}

بس المشكله انه بيتعامل مع اخر ملف في الملفات المختاره فقط

هحاول ان شاء الله افكر في الحل :)

#7

السلام عليكم...

أخي ما رأيك لو تقوم بهذه التجربة.. أظنها ستنجح...

سأعدل قليلا على الكود الذي وضعته أنت اذا سمحت لي..

static void Main(string[] args) 
		{

		string abc="";
		foreach(string s in args) 
		abc+=s+"\n";


		   MessageBox.Show(abc);

			Application.Run(new Form1());
		}

ان شاء الله تستفيد منه أخي...

بالتوفيق....

تم تعديل هذه المشاركة بواسطة Andalus في 23 ديسمبر 2006 في 15:25

#8

شكرا أخ Andalus لمرورك

الموضوع

ان امتداد ملفات معين يتم فتحه ببرنامج معين مثلا

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

المشكله

لو نشط المستخدم مجموعه من الملفات و قام بفتحهم

يتم فتح نسخه من البرنامج لكل ملف علي حده

المطلوب

كيف يتم فتح نسخه واحده لهم جميعا و يتم تمرير مساراتهم الي البرنامج جميعا ايضا

#9

اعتقد ان هذا ماتريدة

/index.ph...view=getnewpost

مواضيع متنوعة

#10
أحمد طاهر الباز كتب:
شكرا أخ Andalus لمرورك

الموضوع

ان امتداد ملفات معين يتم فتحه ببرنامج معين مثلا

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

المشكله

لو نشط المستخدم مجموعه من الملفات و قام بفتحهم

يتم فتح نسخه من البرنامج لكل ملف علي حده

المطلوب

كيف يتم فتح نسخه واحده لهم جميعا و يتم تمرير مساراتهم الي البرنامج جميعا ايضا

شكرا أخي على التوضيح....

أعتذر عن فهمي الخاطئ للموضوع... :wacko:

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

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