نمایش نتایج: از شماره 1 تا 5 , از مجموع 5

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45308
    Array

    پیش فرض

    فرض کنید که میخواهیم توسط AutoIT اعداد 3 و 8 را بهم ضرب کنیم ، چگونه AutoIT اینکار را انجام میدهد؟
    چشم بندی که نیست.

    در داخل برنامه AutoIT یک سری بسته های از پیش ساخته شده وجود دارند.هرکدام از این بسته ها فقط بلدند
    یک سری کار ها را انجام دهند. فرضا" یکی فقط کار های محاسباتی ریاضی را انجام میدهد و دیگری فقط پنجره
    های پیغام را نشان میدهد و الی آخر.

    در این مثال پس از درخواست ما ، AutoIT اعداد داده شده توسط ما را به بسته ایکه اعمال ریاضی را انجام
    میدهد تحویل داده و آن بسته است که درخواست ما را انجام میدهد.

    بیشتر کار هاییکه با AutoIT یا هر زبان برنامه نویسی دیگر انجام میدهیم توسط این بسته ها انجام میگیرند
    که در اصطلاح برنامه نویسی آنها را تابع ( Function) مینامند.

    قبلا" در قسمتی از بحث های قبلی با تابع MsgBox آشنا شده ایم و دیدیم چگونه کار میکند.بازهم به همان
    مثال در سطر زیر توجه کنید تا ببینیم یک تابع چه ساختاری دارد:

    کد:
    MsgBox(0,"shirin zaban","Hello My Friend")
    شکل کلی یک تابع به این صورت است که اول نام تابع نوشته شده (در این مثالMsgBox ) و پشت سر آن پارامتر
    های تابع داخل پرانتز های باز و بسته قرار میگیرند.

    بعضی تابع ها پارامتری ندارند پس بصورت مثلا" ( )
    xxx نوشته میشوند. و بعضی دیگر ممکن است 1 یا 2 و یا
    بیشتر پارامتر داشته باشند که در مثال بالا ، تابع ما دارای تعداد 3 پارامتر است.
    پارامتر ها بایستی با علامت (,) از هم جدا شوند.هروقت میخواهیم در مورد یک تابع حرف صحبت کنیم باید در جلوی
    آن علامت پرانتز باز و بسته را قرار دهیم مثلا" ()MsgBox

    پارامتر هایی که میتوانیم در برنامه AutoIT بکار ببریم نیز مشخصات مخصوصی دارند که باید رعایت شود و گرنه
    برنامه حاصل اجرا نخواهد شد.که در اینجا فقط به یک نکته مهم اشاره میکنم و در حین بحث هایمان اگر به مواردی
    بربخوریم باز هم توضیح خواهم داد. و آن اینکه موقعیک میخواهیم یک عبارت را بعنوان پارامتر بکار ببریم باید عبارتمان
    را بین علایم " " و یا ' ' قرار دهیم که نمونه اش را در مثال بالا (مثال صفحه پیغام ) دیدیم.

    حال دوباره بحثمان را ادامه دهیم .قبلا" با دستور زیر برنامه ماشین حساب را اجرا کردیم:

    کد:
    Run("calc.exe")
    ما با بکار بردن دستور فوق برای اجرای ماشین حساب ، در حقیقت از تابع ()Run استفاده نمودیم.
    این تابع برای به کار انداختن برنامه ها کاملا" خوب عمل میکند ولی یک اشکالی دارد.فرض کنید که میخواهید با
    اجرای یک اسکریپت AutoIT دو تا برنامه را اجرا نمایید، مثلا" میخواهیم با اجرای یک دستور autoit اول برنامه
    ماشین حساب و بعد برنامه notepad اجرا شوند. برای اینکار دستور زیر را میدهیم:

    کد:
    Run("calc.exe")
    Run("notepad.exe")
    اگر دستور بالا را اجرا کنید خواهید دید که هردو برنامه تقریبا" همزمان و با هم اجرا میشوند.
    اشکال تابع ()Run همینجاست که دستورات اسکریپت را پشت سرهم اجرا میکند یعنی در این مثال بمحض اینکه
    اولین برنامه (ماشین حساب ) اجرا شد فوری دومی (یعنی Notepad ) را هم اجرا مینماید.
    و این در این مثال ما اشکال هست. چون ما میخواهیم اجرای برنامه طوری باشد که اول برنامه ماشین حساب اجرا
    شود و بعد به محض بسته شدن ماشین حساب ، پشت سرش برنامه Notepad اجرا شود.

    بنابر این تابع ()Run کار ما را در این مثال نمیتواند انجام بدهد و ما باید از روش دیگری استفاده کنیم.

    تابع دیگری بنام ()RunWait داریم که میتواند خواسته ما را انجام دهد.این تابع برنامه اول را اجرا کرده و صبر میکند تا
    برنامه اول بسته شود سپس برنامه بعدی را اجرا مینماید.(دستور زیر را اجرا کنید تا بهتر متوجه شوید.):

    کد:
    RunWait('Calc')
    RunWait('Notepad')
    MsgBox(64, 'Functions', 'I started Calculator and Notepad')
    با اجرای مثال بالا اول ماشین حساب اجرا میشود ،بعد از اینکه ماشین حساب را بستید برنامه notepad اجرا شده
    و پس از بستن notepad صفحه پیغام ظاهر خواهد شد. یعنی برنامه سه تا کار مختلف را بترتیب اجرا کرد.

    دو تا تابع دیگر هم قبلا" در بحث هایمان با آن ها آشنا شدیم ()WinWait و ()Send که الان بیشتر دلیل استفاده از
    آن ها را متوجه میشویم
    تابع ()WinWait تا وضعیت مشخصی دستور اسکریپت را منتظر نگهمیدارد. و پس از پیش آمدن آن وضعیت مشخص
    دستور بعدی را اجرا میکند.
    تابع ()Send کار مورد نظر ما را در جاییکه میخواهیم انجام میدهد.برای مثال با دستورات زیر ، اول Notepad اجرا شده
    و بعد دستور ()WinWait صبر میکند تا برنامه Notepad کاملا" آماده تایپ کردن بشود و سپس کار را به سطر بعدی
    دستور محول میکند.
    در سطر بعد اولین تابع ()Send عباراتی را در Notepad تایپ کرده و بعد بقیه کار را به سطر بعدی محول میکند
    در سطر بعد دومین تابع ()Send عباراتی دیگر را در Notepad تایپ میکند
    و بعد دیگر دستوری نداده ایم مثلا" میتوانیم دستور بدهیم برنامه Notepad بسته شود و و و ............

    کد:
    Run('Notepad')
    WinWait('Untitled - Notepad')
    Send('AutoIt is typing text{ENTER}into this window.')
    Send('{ENTER} {ENTER}aaaaaaaaaa {ENTER}xxxxxxxxxxxx{ENTER}ddddddddd')
    ===================
    خوب ، عزیزان من ، در اینجا به پایان بحث های بنده در مورد autoitدر انجمن های دیگر رسیدیم
    و همانطور که در شروع بحث عرض کردم ، ادامه مطلب را به دوستان دیگر می سپارم

    موفق باشید

    [SIGPIC][/SIGPIC]

  2. 6 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


علاقه مندی ها (بوک مارک ها)

علاقه مندی ها (بوک مارک ها)

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

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

http://www.worldup.ir/