سرگرمي های مايکروسافت

(( سرگرمي هاي مايکروسافت))

Microsoft Agent يكي از سرگرم كننده ترين فن آوريهاي Microsoft مي باشد كه تا كنون توانسته بسيار مورد علاقه كاربران قرار بگيرد. Agentها به برنامه هاي شما جذابيت زيادي مي دهند و امكان ارتباط بهتر و جالبتري را با كاربر ايجاد ميكنند.اولين باري که از اين تکنولوژي استفاده شد در برنامه Office 97 بود که خيلي مورد علاقه کاربران قرار گرفت. من اون موقع خيلي گشتم تا بتونم از اين امکان استفاده کنم ولي خوب نتونستم ): اما بعدها با پيشرفت کردن علم برنامه نويسي اين تکنولوژي در اختيار ديگران هم قرار گرفت. براي همين در اوايل فقط در Office بود که از اين امکان استفاده مي شد
حالا اينا رو گفتم اما ببينيم اصلاً
Agent چي هست؟
شما اگه از
Office استفاده ميکنيد حالا هر کدوم از برنامه هاش که باشه (Word ،Excel،FrontPage...) يک شکلکي رو ميبينيد که هميشه نسبت به کارهايي که انجام ميدين يک سري حرکات از خودش نشون ميده که هم سرگرم کننده هست هم آموزنده. حالا حتماً متوجه شدين که در مورد چي صحبت ميکنيم (هر چند که ميدونم ميدونستيد (; ) خوب حالا مي خواهيم ببينيم که چطور ميشه از اين امکان تو برنامه هاي خودمون استفاده کنيم مثلاً وقتي برنامه داره کار ميکنه يه شکلکي بياد براي کاربر ادا در بياره تا طرف نفهمه که برنامه چيکار ميکنه (: يا مثلا موقع ذخيره کردن و بازيابي کردن و يا جستجو و... يک سري حرکات مربوط به آن عمل انجام بده.اينکار خيلي ساده است و فقط کافي هست شما يک Agent رو انتخاب کنيد و در برنامتون تعريفش کنيد و بعد هر کاري که خواستين رو بهش دستور بدين تا براتون انجام بده. ضمنا شما لازم نيست اصلاً غصه درست کار کردن اون رو بخورين چون خود Windows اونو کنترل ميکنه که يه وقت کار بدي

 نکنه ((: شما نميتونيد که Agent رو داخل يک جعبه مکالمه (Dialog Box) قرار بدين و فقط ميتونيد جاي اوليه اون رو انتخاب کنيد بعد نمايش بدين و کاربر ميتونه اونو به دلخواه خود تغيير مکان بده با Drag کردن اينکار رو انجام ميده. خوب حالا براي شروع کار به يک سري Agent نياز داريم که البته همراه ويندوز هميشه يک سري همراه هستند بهترين اونها که ميتونه کارهاي زيادي انجام بده (منظور حالتهاي زيادي براش تعريف شده) Merlin هست که يک جادوگر پير مي باشد. براي Download کردن اينها ميتونيد به سايتهايي که معرفي ميکنم يک سري بزنيد. ضمناً شما خودتون هم ميتونيد يک Agent طراحي بکنيد که براي اينکار بايد از يک سري نرم‌افزار استفاده کنيد.براي اينکه کاربر بتونه از Agent برنامه شما استفاده کنه بايد حتماً Microsoft Agent Server‌ رو نصب کنه. که البته من تا حالا تو هر ويندوزي که برنامم رو اجرا کردم نصب شده بوده فکر کنم اين برنامه همراه خود ويندوز هست (; ولي اگه نبود شما ميتونيد يک سري به آدرس زير بزنيد اونجا چيزهاي جالبي در اين مورد داره که يکم مطالعه کنيد بد نيست:
http://www.microsoft.com/msagent
اين مطالب تحت عنوان
Microsoft Agent Software Development Kit هست که در اونجا شما همچنين ميتونيد نرم افزار Microsoft Agent Character Editor رو براي درست کردن Agent دريافت کنيد. در اين مقاله ما در مورد Voice Command‌ (فرمان‌هاي صوتي) و طراحي Agent صحبت نميکنيم و فقط طرز استفاده از اين امکان رو شرح ميدم که خودتون بعداً ميتونيد در موردش بيشتر جستجو کنيد. ما براي کارمون فقط احتياج به Agent Server و يک کاراکتر داريم.خوب حالا ميريم سر اصل مطلب. بعد از اينکه مطمئن شدين روي ويندوزتون AgentServer رو دارين دلفي رو اجرا کنيد و مراحل زير رو مو به مو انجام بدين:

1.           Component | Import ActiveX Control رو انتخاب کنيد.2.           Microsoft Agent Control رو از تو ليست پيدا کنيد و رو ي دکمه Install کليک کنيد.3.           خوب حالا بايد تو قسمت ActiveX يک آيکوني شبيه به MenInBlack داشته باشيد.

خوب تا يادم نرفته اينو بگم که براي پيدا کردن يک کاراکتر روي ويندوزتون بايد براي acs.* جستجو کنيد که البته به طور عادي اگر Agent Server نصب باشه توي شاخه Windows يک msagent بايد وجود داشته باشه و داخل اون هم يک شاخه ديگه به نام Char هم هست که توش يک يا چند کاراکتر وجود داره که اگر از XP استفاده ميکنيد حتماً يکيش Merlin.acs هست (که من خيلي بهش علاقه دارم (: ) براي همين ما بايد تو برنامه مون چک کنيم که آيا اين شاخه وجود داره يا نه اگه وجود داشت ميدونيم که Agent Server روي ويندوز کاربر نصب هست و ما مي تونيم از Agent استفاده کنيم.
خوب براي اينکار بايد اول
ActiveX رو به روي فرم منتقل کنيم با اينکار يک type با نام TAgent به تعاريف فرم اضافه ميشه. بعد بايد يک متغيير تعريف کنيم که از نوع Boolean باشه تا با اون چک کنيم که آيا Agent Server نصب هست يا نه براي اينکار ميشه از Code زير استفاده کرد:

TYourObject

   private

     AgentInstalled: Boolean;

     function AgentIsInstalled: Boolean;

     procedure CreateAndLoadAgentIfInstalled;

     function GetColorDepth: Word;

     function GetWinDir: String;

     procedure SetFormColor;

     function AgentWasClicked

شما ميتونيد روي ويندوز کاربر به دنبال اون شاخه و کاراکتري که مي خواهيد از او استفاده کنيد بگرديد و اگه بود کار رو باهاش شروع کنيد اگه هم نبود خوب ديگه کاربر بايد محيط خشک برنامتون رو تحمل کنه (;

حالا مثلاً ما مي خواهيم از
Merlin استفاده کنيم:

function TYourObject.AgentIsInstalled: Boolean;

begin

   Result := (FileSearch('Merlin.acs', Format('%s\MSAGENT\CHARS', [GetWinDir]))<>'');

end;

 function TYourObject.GetWinDir : string;

var

   WinDirZ : array[0..256] of Char;

         begin

   GetWindowsDirectory(WinDirZ, SizeOf(WinDirZ));

   Result := StrPas(WinDirZ);

end;


نکته: در بالا براي بدست آوردن نام شاخه اي که ويندوز در آن نصب هست از
API استفاده شده که مسير کامل ويندوز را به ما ميدهد
حال که فهميديم کاربر امکان استفاده از
Agent رو داره مي تونيم کار رو شروع کنيم. در ادامه بايد يک Object براي Agent خودمون بسازيم تا از اين به بعد از اون استفاده کنيم و مجبور نباشيم از ActiveX استفاده کنيم. براي اينکار از کد زير ميشه استفاده کرد:

implementation

 uses

   AgentDemoConsts,

   Registry,

   OLECtrls, AgentObjects_TLB;

 procedure

   TYourObject.CreateAndLoadAgentIfInstalled;

const

   RightBias = 80;

   TopBias   = 70;

var

   tp: TPoint;

 begin

   if (AgentInstalled) and not (Assigned(RobotAgent)) then begin

      RobotAgent := TAgent.Create(Application);

      RobotAgent.Characters.Load('Merlin','Merlin.acs');

            { Move the Agent to the center of the screen }

      tp.x := (Screen.Width div 2)-(Width div 2);

      tp.y := (Screen.Height div 2)-(Height div 2);

       with RobotAgent.Characters.Item['Merlin'] do begin

         MoveTo(tp.x+RightBias, tp.y+TopBias, 0);

         Show(0);

         Play('Greet');

         Play('Explain');

         Speak(SDemoIntro, '');

         Play('Pleased');

         Play('RestPose');

         Speak(SWhisper, '');

         Speak(SMonotone, '');

         Speak(SMap, '');

      end;

   end;

end;

چند خط اول که مشخص هست چه کار ميکنه. اما بعد از اينکه کاراکتر تعريف شد (RobotAgent) اونو به Merlin نسبت ميديم وبعد هم اونو به وسط صفحه نمايش منتقل ميکنيم و حالا ميرسيم به مهمترين قسمت کار که دستور دهي به Merlin هست.
با استفاده از
Play شما ميتونيد به Agent دستور بدين اما براي هر Agnet دستورات متفاوت هست يعني ممکن هست که دستوارتي که براي Merlin کار ميکنه براي Robby (که يکي ديگر از Agent ها هست) کار نکنه. شما اگه کاراکترتون رو خودتون درست ميکنيد خوب پس ليست دستوراتش رو داريد اما اگه اونو از جايي Download ميکنيد حتما ليست دستوراتش هم همراش هست. مثلا شما ميتونيد در مورد Merlin و يا Robby و يا چند Agent ديگه از تو همون آدرسي که در بالا دادم ليست دستوارتش رو بگيريد.
حالا در کد بالا ميبينيد که در ابتدا از دستور
Show استفاده شده اين دستور براي به نمايش در آوردن Agent هست و در تمامي آنها کار ميکنه. بعد با استفاده از Play کارهاي مورد نظرمون رو به Agent‌ ميگيم. مثلاً من در ابتدا با استفاده از دستور Greet از Agent خواستم که سلام کنه و بعد هم با استفاده از Explain خواستم که شروع کنه به گفتن يک سري مطالب که با دستور Speak اونها رو که در متغيير SDemoIntro قرار داده ام به صورت يک بالون که بالاي سرش باز ميشه ميگه. شما براي اينکه بگين مطالب رو با چه حالتهايي بخونه مي تونيد از دستواراتي که در جدول زير آوردم استفاده کنيد:

Addition

Resulting capability

\Chr="Whisper"\

The Agent will whisper the following text.

\Pau=N\

The Agent will pause for the designated number of milliseconds.

\Emp\

The Agent will give special emphasis to the following phrase.

\Chr="Montone"\

The Agent will emphasize nothing at all.

\Map=<spoken text>

The Agent will say one thing, and =<spoken text> "think" another.

خوب حالا براي اينکه بيشتر متوجه بشين در زير يک سري مثال آوردم که ميتونيد اونها رو در برنامه استفاده کنيد و نقش هر کدوم از دستوارت رو ببينيد:

SFuzzyWuzzy = 'Fuzzy wuzzy was a bear;\Pau=500\ ' +

   'fuzzy wuzzy had no hair;\Pau=500\  ' +

   'fuzzy wuzzy wasn't very \Emp\fuzzy, \Emp\was he?';

 SWhisper = '\Chr="Whisper"\Now I will whisper: ' +

   'Whisper whisper whisper.';

 SMonotone = '\Chr="Monotone"\Now I will speak in a ' +

   'monotone. Pat Paulsen for President.';

SMap = '\Map="I will now continue to speak in ' +

   'English, but you will see my words ' +

   'translated into German in the balloon above ' +

   'my head. How are you today? I am just ' +

   '\Emp\dandy!"="Jetzt werde ich zwar immer ' +

   'noch in Englisch reden, sie werden  ' +

   'aber meine Woerte im Balloon obenauf ins ' +

   'Deutsch uebersetzt sehen. Wie geht es  ' +

   'Ihnen heute? Mir geht es ganz gut!"\';

 Ehsanelaye_1366@yahoo.com                                                                                      

 
  صفحه اصلیمقدمهمناجات با قاضی الحاجاتروز تجلی آرمانهای خداييهجوم کرمهای رايانه ای Yahoo massengerبرنامه در آوردن پسورد ياهو از رجيستردر آوردن پسورد از رجيسترليست خطاهای مودمشعر حافظساخت ديسک راه اندازswenشيوع ويروس اينترنتيانتقال فايل با حجم زيادDAPدانلود کردن فايل با سرگرمی های مايکروسافتحق رایبروشور مشاوره ایتبديل متن به فايلهای تصويری(AMD)افزايش سرعت سِستم لطيفهسخنی با مولفانمنابع    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

   Design by : Hashemi_wg@yahoo.com

   copyright © 2005 Shekari All rights reseved.