تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
من المنتدى القديم - السلسلة الذهبية ... تمرير باميترات إلى داخل البرنامج من الويندوز
#2
الى برامج آخرى ..
بعد اللمحة السريعة عن المتصفح قم بكتابة التالي :

كود :
Shell "Notepad.exe", vbNormalFocus

لايخفى على أحد ان هذا سوف يشغل برنامج المفكرة ... و لكي نقوم بتشغيل ملفات باستخدام المفكرة مباشرة اكتب مثلاً :
كود :
[align=left]
Shell "Notepad.exe C:\Autoexec.bat", vbNormalFocus[/align]

سوف يقوم السطر السابق بتشغيل المفكرة مع فتح الملف Autoexec.bat مباشرة لاننا قمنا بتمريره للمفكرة كابراميتر
واذا كنت قد فكرت يوماً بفتح لوحة التحكم بالكود فيكفيك ان تعرف ان لوحة التحكم ماهي إلا عبارة عن برنامج اسمه Control.exe وبالتالي لتشغيله اكتب :
كود :
[align=left]Shell "Control.exe", vbNormalFocus[/align]
و لان لوحة التحكم تتعامل مع ملفات ذوات الاحقة CPL فيمكنك اذاً تجريب السطر التالي :

كود :
[align=left]
Shell "Control.exe Desk.Cpl", vbNormalFocus[/align]

وسوف ترى ان خصائص سطح المكتب قد ظهرت امامك لان الملف المسؤول عنها هو Desk.cpl و الذي يتم فتحه بواسطة لوحة التحكم Control Panel او الـ ( Control.exe كما عرفنا قبل قليل ) ...

دعنا نرجع الى الوراء قليلاً ...
بعيداً عن برامج الوينذوز و بالعودة الى العهد القديم للذوز فأن المبدأ نفسه كان ولازال موجوداً فعندما تكتب في محث الدوز الامر CLS فان الشاشة التي امامك سوف يتم تصفيتها لانه الامر الخاص بمسح الشاشة في الدوز و اذا قمت يكتابة اي امر بعد هذا الامر فان الناتج سوف يكون مجرد مسح الشاشة فقط :

كود :
[align=left]CLS Rgheed Altaib[/align]

فلن تؤثر العبارة Rgheed Altaib على الامر بشيء لانه ببساطة يتجاهل البارميترات الممرة اليه اما اذا كتبت الامر DIR :
كود :
DIR

فانه سوف يقوم بعرض محتويات المجلد الحالي امامك و اما اذا اعدت صياغة الامر DIR ليصبح كالتالي :

كود :
[align=left]DIR /o:-n[/align]
فانك سوف ترى ان النتائج الظاهرة امامك هي بترتيب تنازلي لأن البارميتر O يرمز للترتيب ( Order ) و الحرف n يعني تصاعدي واما اذا سبقتها بعلامة سالبة فيعني ذلك عكس الترتيب
وكذلك الامر اذا كتبت :
كود :
DIR /a:h

هذا الامر سوف يعرض جميع الملفات المخفية لك الان الحرف a اختصار لـ ( Attribute ) و التي تعني صفة الملف و الحرف h يرمز للملفات المخفية Hidden
وينطبق المبدأ على باقي اوامر الدوز و التي ليست الا برامج عادية لا تختلف عن برامجنا في الفجيوال إلا بانها خاصة ببيئة الدوز ... ولذا فينبغي عليك عندما ترى امر مثل :
كود :
[align=left]DEL C:\myFile.txt[/align]

انت تفهم بوضوح ان الامر DEL ماهو إلا برنامج خاص بالدوز و ان اسم الملف c:\myFile.txt ماهو إلا بارمتير ممر الى البرنامج DEL

تلميح للاستفادة
كما سبق ان قلنا ان العديد من البرامج تضع لنفسها بارمتيرات معينة لتفحصها عند الاقلاع و على اساسها تحدد نوع العرض او العمل الذي ستنتهجه فلو انك اطلعت على موضوع شاشات التوقف الذي ناقشه الاخوة ، فستعرف ان شاشة التوقف ( Screen Saver ) ماهي إلا برامج يمكن ان تكييف نفسها للعرض باكثر من طريقة واحدة اعتماداً على البارمترات التي يمررها لها نظام التشغيل.

ودعني اضرب مثالاً اكثر بساطة ... فلو انك مدمن ماسنجر فلربما كنت قد جعلت الماسنجر (MSN Messenger) يعمل بمجرد تشغيل الوينذوز وسوف وينبغي ان تعرف كيف استطاع الماسنجر ان يفرق بين نقرك العادي عليه ( وعندها يفتح مباشرة ) و بين تشغيله عند الاقلاع وعندها يمكث في الخلفية ويظهر فقط رمزه بجوار الساعة دون ان يزعجك ؟ ... لكي تعرف السبب قم بالتاكد من البرامج التي تعمل عند تشغيل جهازك ( اكتب msconfig في القائمة تشغيل و اذهب الى اخر بنذ Startup )
وسوف تجد قائمة بجميع البرامج التي تعمل عند تشغيل الجهاز ابحث عن الماسنجر msnmsgr وانظر الى المسار المكتوب !
سوف تجد انه قد كتب لك مسار الماسنجر متبوعاً ببراميتر اسمه backgound/ يعرف من خلاله الماسنجر انك تريد تشغيله في الخلفية دون ازاعج المستخدم...

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

كود :
Sub MainMsgbox Command

End Sub

ليصبح بالشكل التالي :

كود :
Sub MainClipboard.Clear

Clipboard.SetText Command
End Sub

التعديل الذي قمت به انا هنا هو فقط تصفية محتويات الحافظة ( ذاكرة الوينذوز ) ثم قمت بنسخ محتويات المتغير Command ( الذي يحتوي على البارميترات الممره للبرنامج ) اليها ...
و الان قم بترجمة هذا المشروع الى ملف exe و اجعل اسمه myPath وضعه في المجلد الرئيسي \:C ...
والان سنقوم بتسجيل البرنامج في الريجستري كي يتم ربطه مع جميع الملفات ... لتسهيل العملية عليك افتح مشروع جديد وضع الكود التالي في زر امر ونفذه :
كود :
Private Sub Command1_ClickDim Shl As Object
كود :
Set Shl = CreateObject("Wscript.Shell") [align=left]Shl.regwrite "HKCR\*\Shell\مسار الملف\command\", "C:\myPath.exe %l"End Sub[/align]




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

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




كود :
[align=left]
[FONT=Tahoma][SIZE=2]Private Sub Form_Load [/SIZE][/FONT]
If Command <> "Bye Rgheed" Then






[FONT=Tahoma][SIZE=2]End [/SIZE][/FONT]
End If


[FONT=Tahoma][SIZE=2]End Sub[/SIZE][/FONT]

[/align]


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

كود :
C:\Project1.exe Bye Rgheed

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

كود :
[align=left]
Shell "C:\Project1.exe Bye Rgheed", vbNormalFocus[/align]



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

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

السلام عليكم و رحمة الله و بركاته
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
من المنتدى القديم - السلسلة الذهبية ... تمرير باميترات إلى داخل البرنامج من الويندوز - بواسطة Raggi Tech - 14-10-12, 01:54 PM


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم