دالتي ShellExecuteWait /ShellExecute لفتح وتشغيل الملفات
الدالتين هذي هامه وجميله وكبيرة في عملها .. الفرق بين
ShellExecute و ShellExecuteWait
فقط أن الدالة ShellExecuteWait تنتظر إغلاق الملف حتى يكمل السيكريبت
جميعا تستقبل نفس الوسيطات ..
ShellExecute
الصيغة العامة للدالة ..
كود:
[COLOR=Navy][I]ShellExecute[/I][/COLOR][COLOR=Red]( [/COLOR][COLOR=Silver]"filename"[/COLOR][COLOR=Red] [,[/COLOR] [COLOR=Silver]"parameters"[/COLOR] [COLOR=Red][,[/COLOR] [COLOR=Silver]"workingdir"[/COLOR][COLOR=Red] [,[/COLOR] [COLOR=Silver]"verb"[/COLOR][COLOR=Red][,[/COLOR] showflag[COLOR=Red]]]]] )[/COLOR]
الدالة فيها وسيط واحد إجباري[
filename]البقية إختيارية
filename: مسار الملف ..
الدالة
ShellExecute تشغل جميع صيغة الملفات تنفيذية وغيرها من الصيغ وأيضاً يمكن فتح مجلد أو موقع من خلالها :y:.. بطريقة
مباشرة
على العكس في دالة run
إذا كان الملف تنفيذي .. يمكننا إرسال وسيطات له من خلال الوسيط التالي للدالة ..
ليس مثل الدالة run نرسله في نفس الوسيط :d:
إذا لم يكن تنفيذي ... فالدالة هنا لها علاقة وثيقه بسجل النظام ..
بمعنى لدي ملف text .. ولدي برنامجين .. لتحرير الملفات النصية ..
فالدالة تنظر إلى سجل النظام إلى القيمة ألي تحدد البرنامج الافتراضي..للتعامل مع هذا الملف ..
parameters:هنا نضع الوسيطات للبرنامح في الغالب نضع نص فارغ ""
إلا إذا أردنا أن نرسل وسيطات للملف مثل سويتش أو غيره
^
راح نشوفها في الامثلة :d:
workingdir : نضع فية نص فارغ ""
verb : هنا نحدد تعامل الدالة مع الملف ..
إذا وضعته نص فارغ "" فراح تنظر الدالة لسجل النظام مره أخرى ..
بمعني .. تنظر لفعل البرنامج ألي يخص هذا الملف..
كيف يتعامل معه بالوضع الافتراضي ..
إذا وضعت :"open"
فهنا نعني فتح الملف ..
مثلا الوضع الإفتراضي لدى المستخدم في تشغيل ملفات reg
هو برنامج regedit.exe
فعند وضعنا في هذا الوسيط كلمه "open"
فهنا راح ندمج ملف الريجستري بسجل النظام ..
أما إذا وضعنا "edit"
فهنا راح نحرر الملف من خلال Notepad
أما إذا كان البرنامج المسؤول عن هذي الصيغه هوNotepad
فعندها "open","edit"
راح يكون عملها واحد ؟؟ <<لخبطه صح :hh::hh:
وأخيراً : إذاكان الملف لايقبل التحرير فلا تفكر تستخدم "edit"لأن هذا راح يسبب خطأ للسيكريبت
الموضوع موضوع نسبي على حسب الصيغه ألي تتعامل معها إنت ..
في بعض الاحيان تضطر إنك تقرأ كمبرمج القيمة المسؤوله عن تحديد البرنامج الي يتعامل مع الملف..
وتعدل فيها حيب رغبت قبل إستخدام الداله shell
وهذا راح نأخذه في دوال التعامل مع سجل النظام إن شاء الله :d:
أو تستخدم طرق أخرى مثل تشغيل البرنامج ألي تريده يتعامل مع الملف وترسل الملف كوسيط له
مثل ماعملنا في دالة run سابقاً
showflag : مرت علينا سابقاُ في دالة run
وهي تحدد شكل ضهور البرنامج قيمها عباره عن ماكرو..
@SW_HIDE = إخفاء النافذة
@SW_MINIMIZE = تصغير النافذ
@SW_MAXIMIZE = تكبير النافذة
القيم الراجعه للدالة :
في حالة النجاح 1
في حالة الفشل 0
ShellExecuteWait
الصيغه العامة للدالة :
كود:
[COLOR=Navy][I]ShellExecuteWait[/I][/COLOR][COLOR=Red]([/COLOR] [COLOR=Silver]"filename"[/COLOR] [COLOR=Red][,[/COLOR] [COLOR=Silver]"parameters"[/COLOR] [COLOR=Red][,[/COLOR] [COLOR=Silver]"workingdir"[/COLOR] [COLOR=Red][, [/COLOR][COLOR=Silver]"verb"[/COLOR][COLOR=Red] [,[/COLOR] showflag[COLOR=Red]]]]] )[/COLOR]
نفس وسيطات الدالة الاولى :d:
القيمة الراجعه للدالة/ ..
راح نناقشها لاحقاُ لأنها مثل دالة runwait [
]
:d::d:
الامثلة /
زياره منتدى زيزووم :d:..
كود:
ShellExecute("http://www.zyzoom.org/vb")
زيارة منتدى زيزووم عن طريق الدالة لكن بشكل غير مباشر :d:
بإستخدام ملف دفعي :bleh:
كود:
ShellExecute("1.bat","http://www.zyzoom.org/vb")
هذا كود الملف الدفعي للتجربة :
كود:
[COLOR=Magenta]@[/COLOR][COLOR=Blue]echo [/COLOR]off
[COLOR=Blue]start [/COLOR][COLOR=DarkOrange][COLOR=Orange]%~1[/COLOR] [/COLOR]
[COLOR=Blue]pause [/COLOR][COLOR=Red]>>[/COLOR] [COLOR=Blue]nul[/COLOR]
الهدف من هذا المثال ليس معرفه كيفيه زيارة المواقع أو غيره
الهدف هو طريقة تشغيل الملفات التنفيذية ..وإرسال الوسيطات لها. :d:
المثال الاخير ..
لدينا ملف ريجستري نريد تحريره ودمجه ..
مع ملاحظة إن الملف المسؤول عن التعامل مع ملفاات الريجستري هو regedit >>وهو الغالب :d:
تحرير الملف:
كود:
ShellExecute("registry.reg","","","edit")
فتح الملف ودمج القيم في الريجستري .. :
كود:
ShellExecute("registry.reg","","","open")
بالنسبة لتنصيب الصامت لملف الريجستري نستخدم هذي الطريقه :
كود:
ShellExecute("regedit.exe","/s registry.reg")
:d::d: