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

Shell و البراميترات في ذكري لأعادة احياء ذكرتها ولأزالة الاتربة من عليها

مغلق
بدأه kindy_ibrahim في 12 يونيو 2007 · 28 رد · 2,732 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

في محاولة احياء القسم بعد الركود اللي حصل فيه بسبب الامتحانات

حبيت انشط ذكراتكم بدرس مهم جداً لكل المبرمجين في لغتي الحبيبة

الدرس يمكن اتعرض من اكثر من الشخص قبل كده بس كل واحد وطريقته بقي :rolleyes:

- الدالة Shell

الوظيفة:

الدالة shell هي دالة زيها زي كل الدول اللي موجود بالفجوال بيسك بس هي ليها اهتمامات حلوة اوي :lol:

اهتمامتها انها تفتح اي تطبيق تاني صحيح هواية غريبة (h)

الصيغة العامة:

 Shell(pathname[,windowstyle])

انا شايف واحد بيقولي shell وعرفناها امال ايه الباقي ده كله

هقولك ياعم صبرك علينا ;)

PathName :ده مسار الملف اللي انت عايز شل تلعب معاه وتشغله

WindowStyle: وده بقي حاجة حلوة خالص وهي طريق اللي عايز اعرض بيها نافذة البرنامج

وده بقي يامااااان بتاخد حاجة من الحاجات اللي جية ده

4051Image.jpg

طبعاً كل اختيار مخصص لحاجة ومفهمين من ترجمتها

واحد بيقولي ياماااان بطل رغي وادينا مثال

تعالي وجرب الكود التالي وشوف ايه اللي هيحصل

 Shell "explorer.exe", vbNormalFocus

الاكسبلورار فتح صح

طيب جرب الكود ده

Shell "explorer.exe /e,C:\", vbNormalFocus

ايه اللي حصل فتح السي صح

ليه ؟؟؟!

من هنا يبدأ مشاورنا الممتع مع البراميترات

فقد قمنا بفتح برنامج explorer.exe مررنا له براميتر /e,C:\

استراحة ونواصل

تم تعديل هذه المشاركة بواسطة kindy_ibrahim في 12 يونيو 2007 في 19:19

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#2

ما شاء الله أخي الكريم أرجو منك وضع مزيد من الدروس حول هذا الموضوع ولدي سؤال ما هي البراميترات؟

google.gif

spamxk4.gif

petitionbanner17a.gif

Email : sao_-5000@hotmail.com

#3

اخي سعد لا داعي للقلق وابتسم فأنك في منتدي الفجوال بيسك :rolleyes:

اما بخصوص سؤالك عن البراميترات

فأنا هقولك ان shell ده دالة واحنا عارفين لما نستدعي دوال في برامجنا لازم نرسل البراميترات ليها

زي

 Shell "explorer.exe"

الـ explorer.exe ده هو البراميتر زي ما شوفنا في المثال السابق اننا حطينا البراميتر بين دبل كوتيشن

يمكنك الاستعانة بالدرس التالي لكي يساعدك في معرفة الدوال اكثر

تعلم معنا صناعة الدوال بنفسك

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

فاصل و نواصل

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#4
اقتباس
ما شاء الله أخي الكريم أرجو منك وضع مزيد من الدروس حول هذا الموضوع ولدي سؤال ما هي البراميترات؟

بعد اذن الاستاذ ابراهيم

البرامترات قيم يتم تمريرها لوسائط الدالة

اقتباس
في محاولة احياء القسم بعد الركود اللي حصل فيه بسبب الامتحانات

بلاش السيرة دى

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

اعوذ بالله البيسيك لغتك الحبيبة

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#5
اقتباس
اخي سعد لا داعي للقلق وابتسم فأنك في منتدي الفجوال بيسك

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

على العموم انا مشفتش اجابتك الى فى الاول معلش ردينا مع بعض

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#6

بسم الله

ما شاء الله عليك يا اخ kindy_ibrahim

كمل وربنا معاك

فنحن فعلا في منتدى اجمل لغة برمجة في العالم

#7

لأ يا مان فيه دقيقتين بحلهم فرق :lol:

بس ميهمكش وابتسم فأنت في قسم الفجوال بيسك

وعايز ققولك مهما كانت الاتربة علي حبيبي الفجوال بيسك 6 فهو حبيبي الي الابد ومش هسيبه برده وهروح للفجوال بيسك دوت نت اهه كله فجول

بس نورت موضوعي يا حريف الفراعنة

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#8

شكراً اخي امير ويارب تستفيد

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#9

خلاص خليك مع البيسيك لحد لما تغرق

وفى الاخر تقول احمد قالى

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#10

يا محمد تخيل حبيبك هيموت بعد كام شهر احساسك ايه :^)

في الاخر برده هقولك اصحي الساعة اربعة الفجر

وقوم من علي السرير وده اصعب مرحلة

افتح شباك الاودة

وقول بصوت عالي

بحبك

هيجي صوت من تعيد بيقولك

نام يا اهبل

:lol: :lol:

بهزر يا قرة عيني

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#11

واهلاً بكم من جديد اعزائي مشاهدي منتدي الفريق العربي للبرمجة

لاحظنا في المثال السابق لأرسال البراميتر لبرنامج بواسطة shell

يتبع اسم البرنامج مسافة ثم باقي البراميتر مثل

Shell "explorer.exe /e,C:\Windows", vbNormalFocus

فبواسطة shell يمكن فتح اي برنامج وطلب منه القيام بعمل معن من خلال ارسال البراميتر الخاص بكل وظيفة داخل البرنامج

مثلاً ابسط الاشياء والتعامل البسيط جداً في حياتك مع البرامج مشغل الام بي ثري

في حين الضغط علي اي ملف صوتي يتم تشغيله في البرنامج

فأن الملف الصوتي يرسل الي البراميتر المسمي بـ command [البراميتر الافتراضي] مسار الملف لتشغيله داخل البرنامج

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

ازاي يعني

يعني ممكن افتح اي ملف اي صورة و تحريرها بالفوتوشوب[كما سألني احد الاصدقاء من قبل]

حاول جرب الكود ده

Shell "C:\Program Files\Adobe\Photoshop CS\Photoshop.exe C:\kindy.jpg", vbNormalFocus

ايه اللي حصل اللي حصل الوتوشوب فتح كأنك دوست كليك يمين وقلت تعديل بواسطة الفوتوشوب

شرح الكود

Shell

مفهومة طبعاً

C:\Program Files\Adobe\Photoshop CS\Photoshop.exe

مسار برنامج الفوتوشوب الملف التنفيذي اللي بيشغل البرنامج

لاحظ الاول لما كنا بنشغل الاكسبلورار مكناش بنكتب مساره لأنه من البرامج المعروفة داخل الويندوز والويندوز بيكون عارف مساره

زيه زي الـ Notepad.exe و Control.exe و calc.exe

لكن برنامج الفوتوشوب برنامج اضافي فالوندوز لا يعرفة وبالتالي لا يعرف مسارة فيجب كتابة مسار الملف التنفيذي للبرنامج كاملاً

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

ثم ارسلت له الملف الذي اريد التعديل عليه

اللي هو

C:\kindy.jpg

اما عن

vbNormalFocus

فتم معرفتها مسبقاً

يمكنك الآن تفسير هذا الكود تلقائياً

 Shell "Notepad.exe C:\kindy.txt", vbNormalFocus

فاصل ونواصل

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#12

عدنا اليكم من جديد بالرغم من انتهائي من شرح الدرس بس في جعبة مكتبتي التعليمية درس عن هذا القبيل كان الدرس طويلاً ولكنني اقتصصته كله الا ثلاثة امثال فهذا الدرس شرح صديق لنا جميعاً اتهفنا و امتعنا بدروسه البرمجية هو الصديق رغيد الطيب

لكنني عدلت الدرس بالقليل لكي يتم الربط علي الامثله وحولت الشرح بالصور

لماذا هذا الدرس بالتحديد

اعيد لكم نفس المقولة انني لم انقل الدرس بالامثلة الا لروعتها واهميتها ولتثبيت المعلومة لديك

فالنبدأ بأول مثال

بسم الله الرحمن الرحيم

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

في هذه الحلقة من حلقات السلسة الذهبية في المواضيع العلمية سنتعرف بإذن الله تعالى على طريقة تمرير البارميترات الى داخل برنامج من برامج الوينذوز !

و لكي نفهم سوياً ما المقصود من ذلك دعني اذكرك بكيفية تمرير الباميترات الى أي إجراء تقوم بتصميمه فمثلاً اذا افترضنا انك تريد ان تقوم بإنشاء إجراء بسيط و ظيفته عرض رسالة معينة يتم تمريرها الى الإجراء ...

من الطبيعي ان تكتب كود كالتالي :



MsgBox Text

End Sub
Sub myMsg(Text As String)

و لكي تستدعي الإجراء السابق ينبغي ان تقوم بتمرير النص الذي تريد عرضه في مربع حوار بالشكل التالي

myMsg "Welcome Brothers"

تجربتنا السابقة كانت جميلة للغاية ... دعنا الآن نغيير تلك التجربة قليلاً :

1 - قم بفتح مشروع جديد

2 - من القائمة Project أختر البند Remove Form1

3 - من القائمة Project أيضاً أختر البند Add Module

4 - في الموديول الجديد قم بكتابة الكود التالي :

تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 14 يونيو 2007 في 10:50 — السبب: تنسيق الكود

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#13

استكمال لأمثلة الاخ رغيد الطيب

في المثال السابق فحبذا لو عدلناه قليلاً كي يصبح اكثر فائدة ... قم فقط بتعديل الكود الذي فيه من :

Sub Main()

Clipboard.Clear

Clipboard.SetText Command

End Sub

التعديل الذي قمت به انا هنا هو فقط تصفية محتويات الحافظة ( ذاكرة الوينذوز ) ثم قمت بنسخ محتويات المتغير Command ( الذي يحتوي على البارميترات الممره للبرنامج ) اليها ...

و الان قم بترجمة هذا المشروع الى ملف exe و اجعل اسمه myPath وضعه في المجلد الرئيسي \:C ...

والان سنقوم بتسجيل البرنامج في الريجستري كي يتم ربطه مع جميع الملفات ... لتسهيل العملية عليك افتح مشروع جديد وضع الكود التالي في زر امر ونفذه :

Private Sub Command1_Click

Dim Shl As Object

Set Shl = CreateObject("Wscript.Shell")

Shl.regwrite "HKCR\*\Shell\مسار الملف\command\", "C:\myPath.exe %1"

End Sub

الكود السابق سوف يسهل عليك بفضل الله تعالى تعديل الريجستري يدوياً

و الان اذا كنت قد اللتزمت بإسم البرنامج myPath.exe وكذلك مساره في السواقة سي ... فيمكنك ان تذهب الى اي ملف في الوينذوز ثم تنقر عيله بالزر الايمن وسوف تجد ان امراً جديداً قد انضاف الى القائمة بإذن الله تعالى ... اسمه ( مسار الملف ) قم بالنقر عليه وسوف يخزن مسار الملف الحالي في الذاكرة بحيث يمكن ان تلصقه بعد ذلك مباشرة في اي برنامج للاستفادة منه

6176Image7.jpg

و بهذا نكون قد عرفنا طريقة بسيطة لمعرفة المسار الكامل لاي ملف في النظام

قبل ان اتركك عزيزي !

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

لتنفيذ شيء مشابة قم بفتح مشروع جديد و صمم الواجهة التي تريدها لبرنامج ثم اكتب الكود التالي في الحدث Load للفورم :

Private Sub Form_Load

If Command <> "Bye Rgheed" Then

End

End If

End Sub

والان ترجم المشروع الى ملف تنفيذي وليكن Project1.exe وضعه في اي مكان وليكن السواقة سي للاختصار .... و الان جرب ان تفتح البرنامج فلن يكون بمقدورك ذلك ابداً لانه يقوم بالفحص للتاكد من الباميتر الممر له فان كان مساوياً للعبارة "Bye Rgheed" فسوف يفتح بإذن الله ... ولكي تفتح البرنامج اذهب الى القائمة تشغيل Run واكتب السطر التالي :

5205Image4.jpg

او عن طريق برنامج فيجوال اكتب السطر التالي :

Shell "C:\Project1.exe Bye Rgheed", vbNormalFocus

و حينها فقط سيعمل البرنامج بإذن الله تعالى

6524Image5.jpg

اخيراً اتمنى للجميع تحقيق الفائدة المرجوة

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

تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 14 يونيو 2007 في 11:02 — السبب: تنسيق الكود

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#14

شكراً استاذي راغد علي ما اتحفتنا به

وانا في انتظار استفساراتكم

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#15

جميل ربنا يوفقك لكى تكمل شرحها على اتم وجه شكرا لك وارجو من الاعضاء الاطلاع على هذا الموضوع لانه موضوع مهم

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

"خيركم من تعلم العلم وعلمه"

#16

شكراً ليك lmona وتم انهاء الشرح بأمثلة الاخ رغيد الطيب والحمد لله

وانا في انتظار اسئلتكم

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#17

بسم الله

ما شاء الله عليك

ربنا يزيدك ويوفقك

بس ممكن تشرح الجزء ده علشان مش فاهمه

Shl.regwrite "HKCR\*\Shell\مسار الملف\command\", "C:\myPath.exe %l"
#18
Shl.regwrite "HKCR\*\Shell\مسار الملف\command\", "C:\myPath.exe %l"

عزيزي امير ما قمت به هو اضافة الامر مسار الملف الي الريجيستيري

وهو ليس له اي علاقة بدرسنا فهو تسجيل البرنامج في الريجيستري لكي يظهر في قائمة الكليلك الايمين

هناك الكثير من الدروس للتعامل مع الريجيستري

وسيتم عمل مواضيع كثيرة مني لكي اغطي بعض اجزائها

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#19

جميل جدا ولكن لدي سؤال هل يمكنني الاتصال/قطع بالانترنت بواسطه الامر shell لقد استطعت سابقا ان اشغل ال dialer او ال vbn المسؤول عن الاتصال ولكنه يطلب مني بعد تفعيل ال كوماند (dialer ) ان اكبس على الاتصال بداخله وهذا ما لا اريده لاني اود ان يتم الاتصال بشكل تلقائي دون ان اتدخل بالكبس على اي شيء.

ارجو من ذوي الخبره المساعده وشكرا.

#20

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

ولكن مبدئياً حاول الاستفادة من هذا الدرس

http://www.arabteam2000.com/Default.asp?ID=11&Sec=5

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#21

بسم الله

ما شاء الله عليك

ربنا يزيدك ويوفقك

50610597.gif

68195903.png

43618215.gif

#22

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

#23

مشكور اخي ZERIAB

اخي firass88

ان شاء الله لم ابخل عليك

ومشكور اخي اسامة جداً لمتابعة الوضوع و اجراء التعديل

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#24

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

اشكر الأخ العزيز على كل ما ذكره و وضعه من فوائد وجزاه الله عنا كل الخير

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

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#25

لقد ازداد موضوعي شرفاً بردك استاذي رغيد

تم تعديل هذه المشاركة بواسطة kindy_ibrahim في 15 يونيو 2007 في 19:15

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

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

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