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

الكائن Command و مثال هام عليه

مغلق
بدأه غسان الجزار في 23 أغسطس 2005 · 20 رد · 6,871 مشاهدة · في قسم برامج الأعضاء
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الكائن Command و مثال هام عليه

الرجاء من السادة مشرفي المنتدى تثبيت الموضوع إذا أستحق ذلك لتعم الفائدة على الجميع.

عند التحدث عن Command يذهب ذهننا إلى الأداة Command Button لكن الفرق بينه و بين الكائن Command أظنه واضح و لا يوجد حاجة إلى عرضه حتى لا ينزل من قدر هذا الموضوع المتقدم.

أخوتي الأعزاء كيف يمكننا أن نتحكم بالبرنامج في لحظة الضغط عليه

الأمر ليس سهل ولا معقد لدرجة كبيرة.

سأضرب لكم مثال و اقعي في بيئة Windows و هو الملف Notepad.exe الموجود في مجلد Windows وهو المسؤول عن عرض صفحات الـ TXT في الجهاز لكن ليست هنا النقطة النقطة هي عندما نفتح مستند نصي فنلاحظ أن Windows يفتح لنا الـ Notepad و في داخلها النص الموجود في ملف الـTXT كيف حدث ذلك ؟

الجواب هو أننا عندما نفتح الملف الـTXT على سبيل المثال فإن مسار الملف ينحفظ في الذاكرة فوراً و من هذا المنطلق نسطيع من خلال الدالة Command جلب مسار الملف المطلوب.

مثال:

نريد أن نصنع برنامج مثل الـ Notepad .

نصنع Module و نكتب ما يلي:

Option Explicit

Sub Main()
Dim FileNum As Integer
Dim XString As String
If FileLen(Command$) = 0 Then End
FileNum = FreeFile
XString = Space$(FileLen(Command$))
Open Command$ For Binary As #FileNum
Get #FileNum, , XString
Close #FileNum

Form1.Text1.Text = XString
End Sub

الاّن من القائمة Project أختر Project Properties ثم التبويب General  و من ثم غير الـ Combo الموجود تحت الـStartup Object  من Form1 إلى Sub Main ثم OK .

الاّن أصبح البرنامج المتواضع جاهز لأستقبال الملفات الخاصة به .

لكن أنتظر ما هي الملفات التي ستقوم بقراءتها, لابأس سنقوم نحن بصناعته:

أصنع ملف ذو لاحقة TST مثلاً بالطريقة التي تفضله أما على Visual Basic إو الـDOS  أو الـ Notepad.

من بعد صناعة الملف المطلوب أكتب بداخله النص الذي تريد.

الاّن صنعنا البرنامج الخاص بأستعراض الملفات ذات اللاحقة TST

و صنعنا الملفات ذات اللاحقة TST ماذا بقي لدينا.

بقي لدينا أن نعرف الملفات لدى Windows أي عند قيام المستخدم بصناعة الملفات ذات اللاحقة TST يقوم الـ Windows بأعطائها الرمز المطلوب و يفعلها لكي تشتغل على برنامجنا.

الأمر بغاية السهولة بل بغاية الذكاء .

أدخل إلى محرر النظام Registry من Run مثلاً من ثم أدخل إلى المفتاح HKEY_CLASSES_ROOT و أضغط بالزر الأيمن للماوس و من ثم أختر New و بعدها Key و سمه أسم اللاحقة المراد صنعها لكن لاتنسى النقطة أي يصبح أسم المفتاح .TST وفي داخل المفتاح عدل قيمة الـ (Default) إلى Test File .

الخطوةالأولى تمت و الشكل التالي سيوضح.

ماذا بعد.. حسننا؟

أرجع إلى HKEY_CLASSES_ROOT و New  مرة أخرى و أصنع مفتاح و سمه Test Files و أيضاً عدل قيمة الـ (Default) إلى Test File و من ثم أصنع في المفتاح Test Files مفتاح أخر وسمه DefaultIcon و في دا خله عدل قيمة الـ (Default) إلى مو قع الايقونة المراد و ضعها للبرنامج و لتكن C:\TST Reader\Icon.ico ,

و بعدها عد إلى المفتاح Test Files و أنشئ مفتاح أخر و سمه Shell و انشئ فيه مفتاح أخر وسمه Open و أنشئ فيه مفتاح أخر وسمه Command و في داخله عدل قيمة الـ (Default) إلى موقع البرنامج الذي صنعناه في أول الموضوع و ليكن

%Windows%\TST Reader.exe 1%\ و ضعنا كلمة Windows بين اشارتي % %  عوضاً عن كتابة أسم مجلد Windows قد يكون في بعص الأجهزة WinMe أما أشارة 1% كتبت لتعود بقيمة الـ Command أي مو قع الملف الذي سنفتحه الشكل التالي سيوضح الخطوة الثانية.

أنتهينا و الحمد لله لم يبقى سوى أن تعيد أطلاق كمبيوترك أو تقوم بتسجيل الدخول كي يعيد الـ Windows قراءة ما عدلته في الـ Registry .

ملاحظة: يمكنك أن تضع عدد من الأوامر فقط أصنع مفتاح مثل Open الذي صنعناه منذ قليل و أصنع فيه مفتاح Command و أكتب مكان الأمر الثاني .

لكن إذا أردنا أن نصنع مثل أمر Print في ملفات الـ TXT كيف هل يوجد ملف مثل الـ Notepad مختص بالطباعة طبعاً لا و هنا تكمن فائدة الكائن Command لأنه ليس فقط يمكنه أن يجلب مسار الملف بل يجلب مسار الملف كاملاً أي مع الأوامر التي أسندت له

كمثال تقريبي يمكنك أن تفتح محرر النظام و تفت المفتاح TXTFile

و تلاحظ بالمفتاح Print أنه أعطى للمسار و قبل أشارة %1 الأشارة p/ :

\%Windows%\NOTEPAD.EXE /p %1

ما ذا تعني هل هي أشارة أساسية طبعاً لا فهية أشارة أختارها مبرمج الـ Notepad و سنختار واحدة لنا كما فعل و لتكن /Print و سوف نكتبها في مكان المفتاح الخاص بالطباعة و نضعها ما بين المسار و أشارة %1 و تصبح:

\%Windows%\TSTReader.exe /Print %1

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

Option Explicit

Sub Main()
Dim FileNum As Integer
Dim XString As String
Dim XCommand As String

Select Case Left(Command$, 6)
Case "/Print"
XCommand = Mid$(Command$, 8, Len(Command$))
If FileLen(XCommand) = 0 Then Exit Sub: End
FileNum = FreeFile
XString = Space$(FileLen(XCommand))
Open XCommand For Binary As #FileNum
Get #FileNum, , XString
Close #FileNum

Form1.Text1.Text = XString
Form1.Show
Printer.Print Form1.Text1.Text;
Printer.EndDoc

Case Else
If FileLen(Command$) = 0 Then End
FileNum = FreeFile
XString = Space$(FileLen(Command(($
Open Command For Binary As #FileNum
Get #FileNum, , XString
Close #FileNum

Form1.Text1.Text = XString
Form1.Show
End Select
End Sub

و في هذه الحالة يكون برنامجنا أصبح جا هزاً لطباعة ملفاته.

قبل الأنتهاء ما رأيكم بأن نصنع ملف ليعد تلك الصفات في محرر النظام حتي لا يقوم المستخدم عند شراء البرامج بتعديل الخصائص بنفسه مما يجعل برنامجك غير أحترافي.

أفتح محرر النصوص Notepad و أكتب بداخله ما يلي:

REGEDIT4

[HKEY_CLASSES_ROOT\.TST]
@="Test Files"

[HKEY_CLASSES_ROOT\Test Files]
@="Test Files"

[HKEY_CLASSES_ROOT\Test Files\DefaultIcon]
@="C:\\TST Reader\\Icon.ico"

[HKEY_CLASSES_ROOT\Test Files\Shell]

[HKEY_CLASSES_ROOT\Test Files\Shell\Open]

[HKEY_CLASSES_ROOT\Test Files\Shell\Open\Command]
@="\\%Windows%\\TST Reader %1".

و من ثم قم بحفظه بلاحقة .Reg

ملاحظة: لا تنسى أن تضع البرنامج في مجلد Windows .

أنتهينا من المثال الأول لأستخدام الكاثن Command و يو جد مئات الأمثلة على ذلك لكني أخترت هذا المثال لأنه من أهم الأمثلة سأطرح في المرة القادمة مثال عن صنع Screen Saver و تفعيل خصائصها Test و Configure و Install و Setting و Preview .

تم بأ ذن الله كتابة هذا الموضوع بقلم غسان الجزار

تم طرحه للمرة الأولى في منتدى الفريق العربي للبرمجة قسم فيجيوال بيزك /index.php?showforum=1

تقييم الموضوع : متقدم

كلمة الكاتب : قمت يكتابة هذا الموضوع لتأخره في كتاب الأسطورة المبرمج تركي العسيري (فيجيوال بيزك للجميح نحو برمجة كائنية التوجيه OPP)

لأستفساراتكم بريدي : Virussnake_code@yahoo.com

الموقع : www.geocities.com/virussnake_code

أكرر الرجاء من السادة مشرفي المنتدى تثبيت الموضوع إذا أستحق ذلك لتعم الفائدة على الجميع.

ألملفات المرفقة الصور التوضيحية مع مثال تطبيقي مع المقالة الأصلية

الكائن Command.pdf

TST Reader.zip

post-56124-1124748257_thumb.jpg

post-56124-1124748324_thumb.jpg

تم تعديل هذه المشاركة بواسطة غسان الجزار في 23 أغسطس 2005 في 01:17

#2

يعطيك العافية اخي غسان على الشرح

*************************************************

**************************************************

مصطفى زيداني

#3

بالفعل موضوع مميز أخي غسان

جزاك الله خيرا

essam.gif

منتديات كوكب الكمبيوتر

لكل جديد في عالم تكنولوجيا المعلومات والكمبيوتر والأخبار العلمية

http://www.planetss.com/vb

#4

شكراً أخي seaprince46 على الرد

الله يعا فيك يا أخ mostafazidani على مبادرتك

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

و أين م شرفي المندى يجب أن يأ خذو نظرة على و أريد ردودهم

أرجو أن يتم تثبيته لكونه مفيد

تم تعديل هذه المشاركة بواسطة غسان الجزار في 23 أغسطس 2005 في 12:18

#5

40 قراءة ما رد فيهم إلا 2 شيء غريب حقاً لزمن لكتابة الموضوع و قت كثير تعليق فقط يكفي

المقال من كتابتي أريد التنقيح أيضاً؟

#6

اعمل الخير وارميه فى البحر :lol: :lol:

الموضوع ممكن يتنقل لقسم الارشيف والمواضيع المتقدمة لو حبيت :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#7
اقتباس
اعمل الخير وارميه فى البحر

لم أفهم ما ذا تعني.

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

نعم أحب أن ينتقل إلى الأقسام المذكورة

لكن يا أخي مشرف القسم أريد أن أسمع رأيك و رأي الأخ هاني و با قي المشرفين و الأعضاء

#8
اقتباس
اعمل الخير وارميه فى البحر

جملة تقال عندنا فى مصر ومعناها ان تفعل الخير ولاتنتظر الشكر او الجزاء من احد فجزاؤك عند الله

رأيى فى الموضوع

موضوع جميل ومفيد

سأقم بنقل الموضوع الى قسم الارشيف والمواضيع المتقدمة بناءاً على رغبتك :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#9

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

و أريد أيضاً تنقيح الموضوع أي أظها الأخطاء التي فيه حتى نصلحا و جزاك ألف خير

هل يبقى الموضوع في القسم المثبت في الصفحة الأولى؟

#10
اقتباس
نعم أحب أن ينتقل إلى الأقسام المذكورة

انت الذى اخترت

لا استطيع تثبيت الموضوع فى القسم العام لانه مجرد كود , هل رأيت كود مثبت؟

اذا كنت تريد اعادة الموضوع الى القسم العام فأنا فى خدمتك

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#11

لا يا سيد لاأريد نقله إلى القسم العام

#12

السلام عليكم

اخى الكريم

شكرا جزيلا على هذا الموضوع الرائع

الموضوع من اقيم المواضيع التى قرأتها فى المنتدى

فى انتظار باقى دروسك الرائعة :)

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#13

أخي هاني الخبير ممكن

تساعدني على عرض مو ضوع خبير جداً عن الأداة ole

إذا تلاحظ أنا أعرض المواضيع التي لم تكتب في كتاب الأسطورة تركي العسيري

أرجو من الخبراء أن يساعدوني في ذلك

#14

ملاحظة : أخوتي الأعزاء ممكن أن تقترحو على أسم للموضوع حتى أغيره و بهاكذا أكون قد أنهيت النقاش

#15

هذا الموضوع من المواضيع القيمة والجميلة في هذا المنتدى .

بارك الله فيك أخي غسان ووفقك إلى كل خير .

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

#16

شكرا لك يا أخي المبرمج أحمد

وشرف لنا أنك رددت على هذا الموضوع

#17

بارك الله فيك أخي غسان الجزار

موضوع جميل جداً

شكراً لك .

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#19

موضوع جميل ...

الحقيقة قبل مشاهدتى لهذا الموضوع طرحت موضوع له علاقة بهذه النقطة: أستخدام سطر الأوامر

تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 23 ديسمبر 2007 في 19:32

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#20

تسلم على الموضوع الرائع جداً!

#21

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

بس اهميته لما حد يحتاج ويكون بيدور عليه واقولك شكران ليك اوى يابشا اااااااااااااااا

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

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