ABA


"מדריך לאוטואיט - פרק 1"
גירסת הדפסה   אשכול נעול - לקריאה בלבד
 
   
קבוצות דיון מדריכים, טריקים וטיפים נושא #10753 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10753
UnlimiteD

   16:08   22.10.04   
אל הפורום  
  מדריך לאוטואיט - פרק 1  
 
   מדריך לאוטואיט - פרק 1


שלום, פה אני יסביר קצת על שפת התיכנות אוטואיט, או באנגלית AutoIt.
מה זה AutoIt? זה שפת תכנות אשר מדמה לחיצות עכבר ולחיצות על המקלדת.
בעיקרון אתם יכולים בסביבות ה15 דקות לבנות תוכנה אוטומטית לחלוטין אשר יכול לעשות המון דברים.
דוגמאות: בתקופה של ה ג'ימייל משין, בניתי בוט (ככה קוראים לתוכנות שעושות דברים שהמשתמש אמור לעשות.)
שיקליק על הכפתור של ההגרלה עד שאני יזכה בהזמנה. לא זכיתי בכלום בגלל שיום אחרי זה סגרו את ההגרלה בגלל רמאות מהסוג הזה (;
יש לאוטואיט המון אפשרויות שימושיות כמו קריאה מקובץ INI. זה לדעתי שפה הכי קלה שיש, אני למדתי אותה רק (כן רק) מהקובץ help
שבא איתה.
אוקיי בוא נתחיל בדברים הרגילים:
משיגים את הבסיס פה
http://www.autoitscript.com/autoit3
פשוט כותבים את הקוד בקובץ טקסט, משנים את הסיומת לau3 וזהו. כמובן שצריך את ההתקנה של האוטואיט כדי להריץ קבצי au3,
ויש גם קומפיילר שמקמפל את הקוד לקובץ EXE כך שגם מי שאין לו אוטואיט יוכל להריץ את התוכנות שלכם.
אוטואיט בא גם עם משהו שנקרא AutoItSpy, זה תוכנה שמראה לך את הקוארדינטות (המיקום על המסך בפיקסלים) של הסמן שלך כדי
שאם תרצה שהתוכנה שלך תלחץ על כפתור כלשהו, אתה תדע איזה קוארדינטות לרשום בקוד.
הנה דוגמא של קוד שבניתי באוטואיט שמטרתו הייתה לשלוח אל הכתובת שבחרת הרבה מאוד דיסקים של SP2. וויתרתי באמצע,
כי אני יצטרך לפחות עוד 800-900 שורות קוד, וזה רק בשביל לבחור את הstate/province הנכון. זה לא חל על ישראל, אז תצפו
לתוכנה שעושה את זה רק לישראל בקרוב .


;Version 0.1b of my Microsoft CD SP2 Spammer!
;Made by NinjaTaiken! Do not steal motherfuckers! www.blizzhackers.com if you wanna meet the almighty NinjaTaiken!
;or spam me at [email protected]
;works only with IE!!
Opt("MouseClickDelay", 3000)
AutoItSetOption("MouseCoordMode", 0)
AutoItSetOption("PixelCoordMode", 0)
AutoItSetOption("RunErrorsFatal", 0)
Dim $country,$Lang , $EmailNum, $FirstName, $LastName, $Address1, $Address2, $PostalCode, $City, $Phone
IniRead ( $country, "settings.ini", "general", "Country" )
IniRead ( $Lang, "settings.ini", "general", "Language" )
IniRead ( $EmailNum, "settings.ini", "general", "EmailNum" )
IniRead ( $FirstName, "settings.ini", "address", "FirstName" )
IniRead ( $LastName, "settings.ini", "address", "LastName" )
IniRead ( $Address1, "settings.ini", "address", "Address1" )
IniRead ( $Address2, "settings.ini", "address", "Address2" )
IniRead ( $PostalCode, "settings.ini", "address", "PostalCode" )
IniRead ( $City, "settings.ini", "address", "City" )
IniRead ( $Phone, "settings.ini", "address", "Phone" )
$Site="http://www.microsoft.com/windowsxp/downloads/updates/sp2/cdorder/en_us/default.mspx"

;Start of actions
Run("C:\Program Files\Internet Explorer\IEXPLORE.EXE", "", @SW_MAXIMIZE)
sleep(5000)
ClipPut( $Site )
sleep(1000)
MouseClick("left", 140, 106, 1, 0)
sleep(1000)
Send( "^V" )
sleep(1000)
Send( "{ENTER}" )
sleep(5000)
MouseClickDrag( "left", 1016, 262, 1016, 313)
sleep(1000)
MouseClick("left", 685, 595, 1, 0)
Select
Case $country=0
MouseClickDrag( "left", 685, 150, 685, 295)
MouseClick("left", 353, 525, 1, 0)
Case $country=1
MouseClickDrag( "left", 685, 150, 685, 546)
MouseClick("left", 407, 402, 1, 0)
Case $country=2
MouseClickDrag( "left", 685, 150, 685, 169)
MouseClick("left", 421, 526, 1, 0)
EndSelect
sleep(500)
MouseClick("left", 645, 635, 1, 0)
Select
Case $lang=0
MouseClick("left", 535, 580, 1, 0)
Case $lang=1
MouseClick("left", 520, 670, 1, 0)
Case $lang=2
MouseClick("left", 500, 690, 1, 0)
Case $lang=3
MouseClick("left", 435, 325, 1, 0)
Case $lang=4
MouseClick("left", 500, 670, 1, 0)
EndSelect


בוא נסביר חלק אחרי חלק

Opt("MouseClickDelay", 3000)
AutoItSetOption("MouseCoordMode", 0)
AutoItSetOption("PixelCoordMode", 0)
AutoItSetOption("RunErrorsFatal", 0)
Dim $country,$Lang , $EmailNum, $FirstName, $LastName, $Address1, $Address2, $PostalCode, $City, $Phone

שורה ראשונה קובעת בעצם את הרווח של הזמן בין קליק לקליק (במשחקים מסוימים, כמו דיאבלו 2, אם אתה מקליק יותר מדי מהר, זורקים אותך מהמשחק. בכל מקרה כדאי לעשות רווח בין ההקלקות)
שורה שניה, שלישית ורביעית הם אפשרויות שלא צריך לדאוג לגביהם בינתיים.
שורה 5 היא בעצם הכרזה של הרבה משתנים שבהם אני ישתמש במהלך הקוד.
תזכרו את המשתנים country וlang. בקובץ INI בעצם קובעים במספר בין אחד ל4 ואחד 3 את המדינה ואת השפה, ודרך זה מקליקים במקום הנכון

IniRead ( $country, "settings.ini", "general", "Country" )
IniRead ( $Lang, "settings.ini", "general", "Language" )
IniRead ( $EmailNum, "settings.ini", "general", "EmailNum" )
IniRead ( $FirstName, "settings.ini", "address", "FirstName" )
IniRead ( $LastName, "settings.ini", "address", "LastName" )
IniRead ( $Address1, "settings.ini", "address", "Address1" )
IniRead ( $Address2, "settings.ini", "address", "Address2" )
IniRead ( $PostalCode, "settings.ini", "address", "PostalCode" )
IniRead ( $City, "settings.ini", "address", "City" )
IniRead ( $Phone, "settings.ini", "address", "Phone" )
$Site="http://www.microsoft.com/windowsxp/downloads/updates/sp2/cdorder/en_us/default.mspx"

מה שעשיתי פה בעצם זה לשים בכל המשתנים שהגדרתי בחלק קוד הקודם כל מיני פרטים שהמשתמש מגדיר בקובץ INI מחוץ לתוכנה.
בשורה האחרונה הכנסתי בעצם את הכתובת של האתר לתוך משתנה. טיפ - תמיד כדאי לשים כל פרט במשתנים. חוסך הרבה מאוד זמן ומאמץ

;Start of actions
Run("C:\Program Files\Internet Explorer\IEXPLORE.EXE", "", @SW_MAXIMIZE)
sleep(5000)
ClipPut( $Site )
sleep(1000)
MouseClick("left", 140, 106, 1, 0)
sleep(1000)
Send( "^V" )
sleep(1000)
Send( "{ENTER}" )
sleep(5000)
MouseClickDrag( "left", 1016, 262, 1016, 313)
sleep(1000)

שורה ראשונה אני מריץ את התוכנה אקספלורר במצב של maximize, כלומר, בגודל הכי גדול של החלון. חשוב מאוד לעשות את זה ככה!
שורה שנייה זה בעצם השהייה של חמש שניות (היחידות הם של אלפיות השניה, כלומר 1000=שנייה אחת)
ואז אני מעתיק לתוך הקליפבוארד את המשתנה site. זה בעצם אפקט של בחירה של התוכן של המשתנה ואז כמו ללחוץ ctrl+c, להעתיק אותו.
אחרי זה יש השהייה של 1000 שניות ואז לחיצה על הקוארדינטות 140 על 106 פעם אחת. הקוד של הלחיצה של העכבר
הוא
 MouseClick("button - left or right on the mouse",x coordinate, y coordinate, number of clicks, speed of mouse movement - 0 is instant)

חשוב!
באוטואיט ספיי, אתם תראו שני סטים של קוארדינטים, אחד desktop, אחד window, תמיד תקחו את הקוארדינטות של window.
שורה אחרי זה יש שוב פעם השהייה של שנייה ואז התוכנה שולחת את הלחיצה ctrl+v, בעצם מדביקה את מה שהעתקנו לקליפבוארד
קודם.^ זה קונטרול.
אחרי זה שוב פעם השהייה קטנה, ואז שליחה של אנטר. למי שכבר הצליח לנחש, מה שקורה פה זה בעצם הרצה של האקספלורר,
לחיצה על הaddress bar ואז הדבקה של האתר שאנחנו רוצים להגיע אליו ואז שליחה של אנטר, מה שבעצם יביא אותנו אל האתר.
לאחר מכן אני בעצם גולל קצת למטה בעזרת אפשרות הדראג, אני פשוט תופס את הגולל, ומושך אותו למטה.
ואז שוב פעם תנומה קצרה.

MouseClick("left", 685, 595, 1, 0)
Select
Case $country=0
MouseClickDrag( "left", 685, 150, 685, 295)
MouseClick("left", 353, 525, 1, 0)
Case $country=1
MouseClickDrag( "left", 685, 150, 685, 546)
MouseClick("left", 407, 402, 1, 0)
Case $country=2
MouseClickDrag( "left", 685, 150, 685, 169)
MouseClick("left", 421, 526, 1, 0)
EndSelect
sleep(500)
MouseClick("left", 645, 635, 1, 0)
Select
Case $lang=0
MouseClick("left", 535, 580, 1, 0)
Case $lang=1
MouseClick("left", 520, 670, 1, 0)
Case $lang=2
MouseClick("left", 500, 690, 1, 0)
Case $lang=3
MouseClick("left", 435, 325, 1, 0)
Case $lang=4
MouseClick("left", 500, 670, 1, 0)
EndSelect

החלק האחרון של הקוד.
שורה ראשונה אני לוחץ על מיקום כלשהו, הפעם זה חץ של תפריט דרופדאון(התפריטים שאתה לוחץ עליהם והוא פותח מן חלון כזה אם אפשרויות.
ואז מגיעה הפונקציה סלקט. מי שיודע קצת C++ מכיר את הפונקציה הזו טוב.
מה שבעצם קורה פה זה שהתוכנה בודקת במשתנה country שאותו לקחנו מהקובץ INI קודם, איזה מספר יש בתוכו.
במקרה הזה, אם אני זוכר טוב (אין לי את הקובץ INI פה.) אם בקובץ INI הגדירו 0, אז הוא בוחר את ישראל, אם הגדירו 1, הוא בוחר את ארצות הברית, אם הגדירו 2, הוא בוחר את קנדה.
אז במקרה שהמשתנה country שווה לאפס, הוא יגלול מקוארדינטה ככה וככה, עד לקוארדינטה ככה וככה ואז יקליק על הקוארדינטה בא נמצאת האפשרות של הארץ הנכונה.
שימו לב שאי אפשר לקרוא את הכיתוב על המסך אבל יש אפשרות לאיתור פיקסלים, כלומר אם אתה רוצה שהוא יקליק על כפתור
עד הופעתו של פיקסל בצבע X במיקום Y יש אפשרות כזו, ואני יסביר עליה פעם הבאה.
וככה אפשר לבחור את הארץ הנכונה.
אותוו הדבר קורה בפונקציית הסלקט השנייה, רק שפה הוא בודק את השפה שהוגדרה.

זהו לפרק הזה, בפרק הבא אני יסביר כמה פונקציות חשובות לעומק, בינתיים תדפדפו לכם בקובץ עזרה של האוטואיט, יש שם פירוט מצוין על השפה.

נ.ב. : עכשיו יש גירסאת בטא של אוטואיט חדש אשר מאפשר לכם ליצור GUI כמו בויזואל בייסיק, רק בלי תוכנה, הכל כותבים בקוד.


        שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תודה רבה אח שלי מדריך תותח! תמשיך כך ! :) Maor-D 22.10.04 16:08 1
  מעולה !! תודה רבה ! OmerBa  22.10.04 18:46 2
  תודה רבה AMIRla 22.10.04 21:00 3
  מדריך מעולה !! כל הכבוד lord1  22.10.04 23:00 4
  רב תודות! ohadeytan 23.10.04 21:23 5
  תודה רבה כל הכבוד Aviv_Shriki  23.10.04 22:44 6
  תודה אחי - שאלה - מה זה עוזר השפת תכנות אם היא לא נפוצה? onissan  23.10.04 22:51 7
     מכתב UnlimiteD 09.11.04 14:09 12
  מגניב אחי , תודה רבה נשמע מאוד מעניין TB 23.10.04 23:45 8
  תודה רבה D1winner 03.11.04 12:12 9
  תודה רבה אחי!!! gogoo 03.11.04 00:16 10
  כל הכבוד ! תודה רבה ! BJack 04.11.04 16:28 11
  התחלתי לכתוב מדריך שיסכם את כלהפקודות אני מקווה שאני אסיים בעתיד הקרוב assafshilo 09.11.04 18:11 13
     כל הכבוד... UnlimiteD 09.11.04 19:42 14

       
Maor-D

   16:08   22.10.04   
אל הפורום  
  1. תודה רבה אח שלי מדריך תותח! תמשיך כך ! :)  
בתגובה להודעה מספר 0
 
  


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
OmerBa 
חבר מתאריך 1.11.03
828 הודעות
   18:46   22.10.04   
אל הפורום  
  2. מעולה !! תודה רבה !  
בתגובה להודעה מספר 0
 
  



                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AMIRla

   21:00   22.10.04   
אל הפורום  
  3. תודה רבה  
בתגובה להודעה מספר 0
 
  


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
lord1 
חבר מתאריך 18.3.02
19137 הודעות
   23:00   22.10.04   
אל הפורום  
  4. מדריך מעולה !! כל הכבוד  
בתגובה להודעה מספר 0
 
  




                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ohadeytan לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.8.06
617 הודעות, 3 פידבק
   21:23   23.10.04   
אל הפורום  
  5. רב תודות!  
בתגובה להודעה מספר 0
 
  


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Aviv_Shriki 
חבר מתאריך 22.9.04
400 הודעות
   22:44   23.10.04   
אל הפורום  
  6. תודה רבה כל הכבוד  
בתגובה להודעה מספר 0
 
  


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
onissan  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 13.4.03
47790 הודעות, 10 פידבק
   22:51   23.10.04   
אל הפורום  
  7. תודה אחי - שאלה - מה זה עוזר השפת תכנות אם היא לא נפוצה?  
בתגובה להודעה מספר 0
 


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
UnlimiteD

   14:09   09.11.04   
אל הפורום  
  12. מכתב  
בתגובה להודעה מספר 7
 
   אין בעיקרון בעיה אם זה שהיא לא נפוצה, היא לא דורשת שום תמיכה אחרי שמקמפלים את הקוד.
ותתפלא, היא דווקא יותר נפוצה ממה שאנשים חושבים.
היא השפה היחידה שיכולה לעשות דברים כאלו.


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TB

   23:45   23.10.04   
אל הפורום  
  8. מגניב אחי , תודה רבה נשמע מאוד מעניין  
בתגובה להודעה מספר 0
 
  


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
D1winner
חבר מתאריך 21.4.02
4480 הודעות
   12:12   03.11.04   
אל הפורום  
  9. תודה רבה  
בתגובה להודעה מספר 0
 


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
gogoo

   00:16   03.11.04   
אל הפורום  
  10. תודה רבה אחי!!!  
בתגובה להודעה מספר 0
 
  


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
BJack לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.11.03
22979 הודעות, 15 פידבק
   16:28   04.11.04   
אל הפורום  
  11. כל הכבוד ! תודה רבה !  
בתגובה להודעה מספר 0
 
  


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
assafshilo

   18:11   09.11.04   
אל הפורום  
  13. התחלתי לכתוב מדריך שיסכם את כלהפקודות אני מקווה שאני אסיים בעתיד הקרוב  
בתגובה להודעה מספר 0
 
  


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
UnlimiteD

   19:42   09.11.04   
אל הפורום  
  14. כל הכבוד...  
בתגובה להודעה מספר 13
 
   קשה לי להאמין שעשית על כל הפקודות כי יש אלפים, אבל אני מבין שאתה
מתכוון על כל הפקודות העיקריות שאי פעם יצא למישהו להשתמש בהם


                                    (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
_________________________________________________________________________
למנהלים:  שחרר | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול | עריכת אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net