استخدام مساعد أوفس في برنامجك
منقول بتصرف
vbzoom/الإبداع الاسلامي
سنحتاج إلى الأداة Microsoft Agent control
يجب إدراج هذه الأداة في الفورم وذلك عن طريق الضغط على Ctrl + T
واختيار Microsoft Agent control، ثم الضغط على OK، وبعدها بادراجها داخل الفورم.
سنحتاج أيضا الى ملف المساعد وهو يحمل اللاحقة acs تستطيع البحث عنه في جهازك
الآن نقوم بكتابة الكود التالي في قسم التصريحات العامة General_Declarations:
Public Genie As Object
ثم نضع الكود التالي في حدث التحميل للنموذج"formload"
Private Sub Form_Load()
Dim Filename
'مسار ملف المساعد
Filename = App.Path + "genie.acs"
ِAgent1.Characters.Load "Genie", Filename
Set Genie = Agent1.Characters("Genie")
End Sub
هذه العبارات تقوم بتحميل المساعد في الذاكرة، و لكنه لا يظهر أمامك مرئيا... و لاحظ أن المتغير Filename يحمل مسار وجود ملف المساعد، و الذي في مثالنا هذا يكون في المجلد الذي حفظت فيه مشروعك الجديد...
و لاحظ أن اسم ملف المساعد هو genie.acs
و لاحظ أن الإسم الذي يعترف عليه البرنامج لكي تخبره أنك تكتب الأمر الخاص بالمساعد هو اسم Genie الذي عرفناه في قسم التصريحات العام...
أكتب في كود الضغط على زر إظهار ما يلي:
Genie.Show
و اكتب في كود الضغط على زر أخفاء ما يلي:
Genie.Hide
و اكتب كود الضغط على زر القراءة ما يلي:
Genie.Speak Text1.Text
و هذا الكود يجعل المساعد يتكلم و ينطق ما هو موجود في صندوق النص... و لكن يجب أن تكون الكتابة بالإنجليزية فقط، لأنه لا يلفظ العربية...
و يمكنك الأستعاضة عن Text1.Text بأي نص أو جملة تريدها كالتالي:
Genie.Speak "Hi everybody"
إليك بعض الأكواد الخاصة بالمساعد:
لتحريك المساعد إلى مكان معين من الشاشة، اكتب الكود التالي:
Genie.Moveto (200,100,1000)
حيث 200 و 100 حي الإحداثيات السينية و العينية للشاشة و التي تريد الجني أن ينتقل لها.
و 1000 هي السرعة التي تريد الجني أن ينتقل بها..
و يمكنك تغيير هذه القيم كما تشاء..
** لتجعل المساعد يقوم بحركات معينة، اكتب الكود التالي:
Genie.Play "xxx"
حيث xxx هي اسم الحركة... و أليك أسماء الحركات التي يقوم بها:
يعترف Acknowledge
ينبه Alert
الحالة الحيادية قبل التنبيه Alertreturn
يعلن Announce
الحالة الحيادية قبل الإعلان Announcereturn
يغمض عينيه Blink
يحتار Confused
الحالة الحيادية قبل الحيرة Confusedreturn
يهنئ Congratulate
الحالة الحيادية قبل التهنئة Congratulatereturn
يتحسر Decline
الحالة الحيادية قبل التحسر Declinereturn
يتجاهل Dontrecognize
الحالة الحيادية قبل التجاهل Dontrecognizereturn
يشرح Explain
الحالة الحيادية قبل الشرح Explainreturn
يشير للأسفل Gesturedown
الحالة الحيادية قبل الإشارة للأسفل Gesturedownreturn
يشير للأعلى Gestureup
الحالة الحيادية قبل الإشارة للأعلى Gestureupreturn
يشير لليمين Gestureright
الحالة الحيادية قبل الإشارة لليمين Gesturerightreturn
يشير لليسار Gestureleft
الحالة الحيادية قبل الإشارة لليسار Guestureleftreturn
يلفت انتباه Getattention
الحالة الحيادية قبل لفت الإنتباه Getattentionreturn
يلمح للأسفل Glancedown
يلمح لليسار Glanceleft
يلمح لليمين Glanceright
يلمح للأعلى Glanceup
يحيي Greet
الحالة الحيادية قبل التحية Greetreturn
يصغي
Hear-1
Hear-2
Hera-3
Hear-4
يتسكع
Idle1-1
Idle1-2
Idle1-3
Idle1-4
Idle1-5
idle1-6
Idle2-1
Idle2-2
Idle2-3
بتثائب Idle3-2
بتظاهر بالنوم Idle3-1
ينظر للأسفل Lookdown
ينظر للأسفل و يغمز Lookdownblink
الحالة الحيادية قبل النظر للأسفل Lookdownreturn
ينظر للأعلى Lookup
ينظر للأعلىو يغمز Lookupblink
الحالة الحيادية قبل النظر للأعلى Lookupreturn
ينظر لليمين Lookright
ينظر لليمين و يغمز Lookrightreturn
الحالة الحيادية قبل النظر لليمين Lookrightreturn
ينظر لليسار Lookleft
ينظر لليسار و يغمز Lookleftblink
الحالة الحيادية قبل النظر لليسار Lookleftreturn
يبتهج Pleased
الحالة الحيادية قبل الإبتهاج Pleasedreturn
يدور بسرعة Processing
الحالة الحيادية قبل الدوران Processingreturn
يقرأ Read
يقرأ و ينظر للأعلى Readcontinued
الحالة الحيادية للقراءة Readingreturn
يرتاح Resetpose
يحزن Sad
الحالة الحيادية قبل الحزن Sadreturn
يبحث بمنظار البحثing
الحالة الحيادية قبل البحث البحثingreturn
يصغي Startlistening
الحالة الحيادية قبل الإصغاء Startlisteningreturn
يضع يده على أذنيه Stoplistening
الحالة الحيادية قبل وضع يده على أذنيه Stoplisteningreturn
يقترح Suggest
الحالة الحيادية قبل الإقتراح Suggestreturn
يندهش Surprised
يفكر Think
الحالة الحيادية قبل التفكير Thinkreturn
يشك Uncertain
الحالة الحيادية قبل الشك Uncertainreturn
يلوح Wave
الحالة الحيادية قبل التلويح Wavereturn
يكتب Write
يكتب و ينظر للأعلى Writecontinued
الحالة الحيادية قبل الكتابة Writereturn
ملاحظات:
* لاحظ أنني استخدمت عبارة (الحالة الحيادية قبل كذا) و أقصد فيها العملية العكسية... يعني عندما تأمره بالقراءة، فأنه يفتح الكتاب و يقرأ... أما الحالة الحيادية قبل القراءة، فتجعله يغلق الكتاب و يعود لحالته الأصلية..
* لاحظ أنني في بعض الحركات كالتسكع كتبت أكثر من أمر، حيث كل واحد يقوم بحركة تسكع معينة...
* إذا لم تقم بأمر المساعد لفترة معينة، فأنه يقوم بحركات عشوائيى بشكل تلقائي، كأن يكتب أو يغمز أو يقرا....
ماذا لو أردنا معرفة جميع الحركات الخاصة بأي مساعد فما هي الطريقة لذلك:
فقط قم بإدراج أداة قائمة ListBox ، وضع هذا الكود في حدث تحميل الفورم Form_Load:
Dim Animation As Variant
For Each Animation In Genie.AnimationNames
List1.AddItem Animation
Next
وهذا الكود في حدث النقر على القائمة List1_Click:
Genie.Play List1.Text