طریقه استفاده از Microsoft Agent در دلفی
نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: طریقه استفاده از Microsoft Agent در دلفی

  1. Borna66_TAHA آواتار ها
    Borna66_TAHA
    مدیر سابق
    Feb 2009
    9,903
    390
    تشکر شده : 3,688

    Thumbs up طریقه استفاده از Microsoft Agent در دلفی

    .wysiwyg { BACKGROUND: #f5f5ff; FONT: 10pt tahoma,tahoma,tahoma; COLOR: #000000 } P { MARGIN: 0px } .inlineimg { VERTICAL-ALIGN: middle } با سلام
    Microsoft Agent یکی از سرگرم کننده ترین فن آوریهای Microsoft می باشد که تا کنون توانسته بسیار مورد علاقه کاربران قرار بگیرد. Agentها به برنامه های شما جذابیت زیادی می دهند و امکان ارتباط بهتر و جالبتری را با کاربر ایجاد میکنند. در اینجا من می خواهم شما را با Microsoft Agent و طریقه بکار گیری آن در برنامه های خودتان را آموزش بدهم که امیدوارم مفید باشد. از آنجایی که من این امکان را در دلفی استفاده کرده ام برای شما هم مثالهای دلفی آورده ام …
    اولین باری که از این تکنولوژی استفاده شد در برنامه Office 97 بود که خیلی مورد علاقه کاربران قرار گرفت. من اون موقع خیلی گشتم تا بتونم از این امکان استفاده کنم ولی خوب نتونستم ): اما بعد ها با پیشرفت کردن علم برنامه نویسی و همچنین با پیشرفت کردن عقل Microsoft (که از نظر من بزرگترین کلاه بردار قرن هست) این تکنولوژی در اختیار دیگران هم قرار گرفت… برای همین در اوایل فقط در Office بود که از این امکان استفاده می شد.
    حالا اینا رو گفتم اما ببینیم اصلاً Agent چی هست؟؟!!!
    شما اگه از Office استفاده میکنید حالا هر کدوم از برنامه هاش که باشه (Word,Excel,FrontPage,…) یک شکلکی رو میبینید که همیشه نسبت به کارهایی که انجام میدین یک سری حرکات از خودش نشون میده که هم سرگرم کننده هست هم آموزنده. حالا حتماً متوجه شدین که در مورد چی صحبت میکنیم (هر چند که میدونم میدونستید (; ) خوب حالا می خواهیم ببینیم که چطور میشه از این امکان تو برنامه های خودمون استفاده کنیم مثلاً وقتی برنامه داره کار میکنه یه شکلکی بیاد برای کاربر ادا در بیاره تا طرف نفهمه که برنامه چیکار میکنه (: یا مثلا موقع ذخیره کردن و بازیابی کردن و یا جستجو و … یک سری حرکات مربوط به آن عمل انجام بده…
    اینکار خیلی ساده است و فقط کافی هست شما یک Agent رو انتخاب کنید و در برنامتون تعریفش کنید و بعد هر کاری که خواستین رو بهش دستور بدین تا براتون انجام بده . ضمنا شما لازم نیست اصلاً غصه درست کار کردن اون رو بخورین چون خود Windows اونو کنترل میکنه که یه وقت کار بدی نکنه ((:
    شما نمیتونید که Agent رو داخل یک جعبه مکالمه (Dialog Box) قرار بدین و فقط میتونید جای اولیه اون رو انتخاب کنید بعد نمایش بدین و کاربر میتونه اونو به دلخواه خود تغییر مکان بده با Drag کردن اینکار رو انجام میده. خوب حالا برای شروع کار به یک سری Agent نیاز داریم که البته همراه ویندوز همیشه یک سری همراه هستند بهترین اونها که میتونه کارهای زیادی انجام بده (منظور حالتهای زیادی براش تعریف شده) Merlin هست که یک جادوگر پیر می باشد. برای Download کردن اینها میتونید به سایتهایی که معرفی میکنم یک سری بزنید. ضمناً شما خودتون هم میتونید یک Agent طراحی بکنید که برای اینکار باید از یک سری نرم افزار استفاده کنید.
    برای اینکه کاربر بتونه از Agent برنامه شما استفاده کنه باید حتماً Microsoft Agent Server‌ رو نصب کنه. که البته من تا حالا تو هر ویندوزی که برنامم رو اجرا کردم نصب شده بوده فکر کنم این برنامه همراه خود ویندوز هست (; ولی اگه نبود شما میتونید یک سری به آدرس زیر بزنید اونجا چیزهای جالبی در این مورد داره که یک مطالعه کنید بد نیست.
    فقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ]
    در این آدرس اخرین باری که رفتم مطالب زیر بود حالا اگه تا حالا بیلی جون حوصله اش از اونا سر نرفته باشه و عوض نکرده باشد باید باشه:

    - The Agent Server
    - The Characters/Agents
    - A Text-to-Speech pices
    - A Voice command (input) pices



    این مطالب تحت عنوان Microsoft Agent Software Development Kit هست که در اونجا شما همچنین میتونید نرم افزار Microsoft Agent Character Editor رو برای درست کردن Agent دریافت کنید. در این مقاله ما در مورد Voice Command‌ (فرمان های صوتی) و طراحی Agent صحبت نمیکنیم و فقط طرز استفاده از این امکان رو شرح میدم که خودتون بعداً میتونید در موردش بیشتر جستجو کنید. ما برای کارمون فقط احتیاج به Agent Server و یک کاراکتر داریم که اگه روی ویندوزتون ندارین میتونید از اینجا Download بکنید.
    خوب حالا میریم سر اصل مطلب:
    بعد از اینکه مطمئن شدین روی ویندوزتون AgentServer رو دارین دلفی رو اجرا کنید و مراحل زیر رو مو به مو انجام بدین:
    ۱- Component|Import ActiveX Control رو انتخاب کنید.
    ۲- Microsoft Agent Control رو از تو لیست پیدا کنید و رو ی دکمه Install کلیک کنید.
    ۳- خوب حالا باید تو قسمت 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=
      The Agent  will say one thing, and = “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!”\’;


    خوب دیگه همین بود تمام ماجرا حالا شما اگه می خواهین بیشتر در این مورد کار کنید من در مقالات بعدی یکی سری سایت و مطلب دیگه هم براتون میزارم البته به زبون اصلی خودشون حتماً خیلی مفید خواهد بود.
    ضمنا شما میتونید از Event ها هم در Agent استفاده کنید و مثلا برای رویداد OnClick روی Agent‌ یک چیزی تعریف کنید.

    خوب در آخر از شما که تا اینجا آمدید متشکرم و یک سری نکات رو هم باید ذکر کنم :
    ۱- این مطالب حاصل تجربه خودم و همچنین برگرفته از یک سری مقالاتی بوده که در این مورد مطالعه کردم.
    ۲- در مورد استفاده از این کدهایی که در این مقاله آورده ام و همچنین در پایان این مقاله ضمیمه کرده ام هیچ گونه مسئولیتی بعهده من نخواهد بود که درست کار کنه یا بزنه کامپیوتر شما رو بسوزونه !!!!!
    ۳- استفاده از این مقاله به شرط ذکرنام و آدرس اصلی مقاله در سایتها و جاهای دیگر آزاد است .
    ۴- اگه در این مورد نظری دارین یا حتماً برای من ایمیل کنید خوشحال خواهم شد بشنوم.



    موفق باشید
    فقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ]
    هميشه خود باشيم نه كسي ديگر!
    فقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ]
    فقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ]
    #1 ارسال شده در تاريخ 13th March 2010 در ساعت 19:22

  2. یک کاربر از این پست تشکر کرده است :


موضوعات مشابه

  1. مقالات مفید و تخصصی شبکه
    توسط secret در انجمن مسایل مربوط به شبکه
    پاسخ ها: 93
    آخرين نوشته: 11th December 2011, 12:29
  2. کانال های ارتباط با اینترنت
    توسط Aremahi در انجمن ADSL(اینترنت پر سرعت)
    پاسخ ها: 0
    آخرين نوشته: 5th January 2010, 15:40
  3. آموزش ویژوال بیسیک 6
    توسط Borna66_TAHA در انجمن Visual Basic ویژوال بیسیک
    پاسخ ها: 43
    آخرين نوشته: 30th October 2009, 22:26
  4. پروژه(بتن های ویژه)
    توسط tohid در انجمن عمران ،معماری و شهرسازی
    پاسخ ها: 0
    آخرين نوشته: 14th February 2009, 23:55

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •