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

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

مغلق
بدأه صاحبة السمو في 6 أكتوبر 2007 · 8 رد · 1,084 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الكرام

هل يوجد طريقه لاستدعاء برنامج معين (فتحه) عن طريق الويندوز مثل الماسنجر او الاله الحاسبة او الاكسبلورر او غير ذلك

لنفرض مثلا الاله الحاسبة الموجوده في الويندوز

اشر لي احد الاخوه الكرام باستخدام الكود التالي

 Shell(" C:\WINDOWS\system32\calc.exe")

ولكن للاسف لم ينفع معي

1145392391.gif
#2

لايفضل استخدام الأمر Shell في الدوت نيت استخدم محرك البحث في المنتدى وابحث عن Process.start تجد العديد من المواضيع التي تفيدك انظر الموضوع أريد تشغيل ملف تنفيذي للعبة من برنامجي, Shell , Start لا تعملان على سبيل المثال

وسبب عدم عمل الكود معك هو المسافة الموجودة قبل :C والسطر التالي سيعمل

Shell("C:\WINDOWS\system32\calc.exe")

ولكن التنفيذ الأفضل يتم باستخدام Process.start

Process.Start("calc.exe")

راجع الموضوع المذكور ومكتبة MSDN من أجل تفاصيل أكثر عن الأمر Process.start

تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 6 أكتوبر 2007 في 20:35

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#3

يعطيك العافية اخي الكريم

الصراحه انت مبدع كالعاده

ولكن لدي سوال بسيط

اولا

انا استخدمت الامر Shell

لتحديد المسار للملف المطلوب فتحه

بينما الامر الاخر Process

لايحتاج

هل يعني هذا انني لو كان لدي ملف على السيدي هل استطيع ان استدعيه بهذا الامر

فمعني هل الامر Process

يبحث على جهاز الكمبيوتر على هذا الملف التتنفيدي

سوال اخر

لماذا يفضل استخدام الكود الثاني Process

عن الاول

لسرعته مثلا ام لسبب اخر

اعذرني اخي الكريم على الاسئله التى قد ترها لشخص مبتدا

بس حابة اتعلم مما لديك من علم (ازادك الله منه ونفع بك الامه)

1145392391.gif
#4

بالنسبة للأمر Shell فأنا لم أجد له أية فائدة حتى أيام VB6 عندها كنت أستعين بأوامر Windows API لتنفيذ البرامج كما أريد بصورة صحيحة فالأمر Shell يمتلك الكثير من أوجه القصور التي لن أقوم بشرحها هنا

بالنسبة لموضوع Process.start هو الأفضل لأنه لايمتلك أوجه قصور الأمر Shell ولكن شرح هذا الأمر يطول لذلك وجهتك إلى موضوع فيه مثال عملي عنه كما أنه يمكنك معرفة كافة تفاصيله بمراجعة مكتبة MSDN انظر الرابط التالي على موقع مايكروسوفت Process.Start Method

واتبع الروابط في الصفحة لترى الأشكال العديدة للأمر وفوائدها Process.Start() و Process.Start (ProcessStartInfo) و Process.Start (String) ... الخ

والأمر Process.start لم يحتاج لمسار تنفيذ الآلة الحاسبة بسبب أنه موجود في مجلد نظام ولكن عندما تريد تنفيذ ملف موجود خارج مجلدات النظام فستحتاج لتزويده بمسار ذلك الملف ومن فوائد الأمر Process.start أنه إذا مررت له ملف وورد مثلا فيمكنه تشغيل الوورد وفتح الملف بينما الأمر Shell لن يستطيع ذلك

مثلا

process.start("c:\samerfiles\samer.doc")

سينجح في فتح الملف

بينما

shell("c:\samerfiles\samer.doc")

سيفشل حتما في ذلك

تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 19 أكتوبر 2007 في 00:56

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#5

بارك الله فيك استاذنا العزيز وازادك الله منه علمه

بس عندي استفسار صغير

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

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

مثل سيدي البرامج مثلا تاتي كلها في ملف واحد مع البرنامح الاصلي ولكن يختلف عنوانه السوقيه من جهاز كبيوتر الى اخر ( منها ما هو E ومنها ماهو H or F

وهكذا

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

1145392391.gif
#6

استخدم Application.StartupPath للوصول إلى مسار البرنامج الحالي أيا كان... ثم بعد ذلك اسم الملف...

process.start(Application.StartupPath & "\samer.doc")

تم تعديل هذه المشاركة بواسطة Adel_N في 19 أكتوبر 2007 في 07:47

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#7

إذا كان الملف الذي تريد تشغيله موجود في نفس المجلد الموجود فيه الملف التنفيذي أو في أحد مجلدات النظام فإنه لاداعي لوضع المسار الكامل للملف فقط ضع اسمه وسيجده لوحده

أو يمكنك استخدام مسار البرنامج كما قال الأخ Adel_N

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#8
Adel_N كتب:
استخدم Application.StartupPath للوصول إلى مسار البرنامج الحالي أيا كان... ثم بعد ذلك اسم الملف...

process.start(Application.StartupPath & "\samer.doc")

لي ملاحظة بسيطة من واقع التجربة العملية على استخدام Application.StartupPath وقد أتت مناسبتها هنا

أنا لاأحب استخدام Application.StartupPath مباشرة بل أفضل تمريرها عبر إجراء بسيط ثم استخدامها والإجراء مثلا هو

	Private Function CorrectPath(ByVal FPath As String) As String
		If Mid(FPath, FPath.Length, 1) <> "\" Then
			Return FPath & "\"
		Else
			Return FPath
		End If
	End Function

والسبب في ذلك أنه عند وضع البرنامج على المجلد الجذر (المجلد الرئيسي) لقرص ما وليكن في \:D سيصبح اسم الملف d:\\samer.doc وهذا سيولد خطأ عند التنفيذ لذا بدلا من استخدامه مباشرة كـ

process.start(Application.StartupPath & "\samer.doc")

أستخدمه بالصورة التالية لتفادي حدوث ذلك

process.start(CorrectPath(Application.StartupPath) & "samer.doc")

تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 19 أكتوبر 2007 في 11:58

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#9

ألف تحية لك أخي محمد... وإنت عارف طبعاً إنه إحنا مش قدك... معلومة دقيقة جداً ولكن في غاية الأهمية وتشكر عليها...

أخوك في الله.

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

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

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

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

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

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

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