litlmike Posted March 10, 2006 Posted March 10, 2006 (edited) I finished a script, then tried to simplify it...Now it only does about half of the things it used to. I have the original saved, don't worry...haha. It doesn't do any Calls after Call ("EmailCat_Date"), and Call ("GUI_Assistant_Me"). My thinking was that I could make a Function that I can set to a hot key, "Func BasicEmail()" and then it would call the other Functions in order. I must be wrong. I think I have narrowed it down to knowing the problem lies in the functions : EmailCat_Date(), and GUI_Assistant_Me(). I will paste the Full Code in the following post. ************EDIT************** I understand the problem now, see the post at "Posted Today, 03:50 PM". But I don't know how to fix it. ****************************** Edited March 10, 2006 by litlmike _ArrayPermute()_ArrayUnique()Excel.au3 UDF
cdkid Posted March 10, 2006 Posted March 10, 2006 AHHH, why would you us Call? why not just GUI_Assist_me() rather than Call("Gui_Assist_Me") AutoIt Console written in C#. Write au3 code right at the console :D_FileWriteToLineWrite to a specific line in a file.My UDF Libraries: MySQL UDF Library version 1.6 MySQL Database UDF's for AutoItI have stopped updating the MySQL thread above, all future updates will be on my SVN. The svn location is:kan2.sytes.net/publicsvn/mysqlnote: This will still be available, but due to my new job, and school hours, am no longer developing this udf.My business: www.hirethebrain.com Hire The Brain HireTheBrain.com Computer Consulting, Design, Assembly and RepairOh no! I've commited Scriptocide!
litlmike Posted March 10, 2006 Author Posted March 10, 2006 (edited) ;*****************UPDATED CODE**************** 3:54 P.M. #cs ;;;Left to Do: Make sure it can change category in email #ce ; Press Esc to terminate script, Pause/Break to "pause" #include <IE.au3> #include <Date.au3> #include <GUIConstants.au3>t Global $Paused, $email, $contact, $company HotKeySet("{PAUSE}", "TogglePause") HotKeySet("{ESC}", "Terminate") HotKeySet("+!d", "ShowMessage") ;Shift-Alt-d HotKeySet("^1","BasicEmail") HotKeySet("^2","AssistantEmail") ;HotKeySet("^2","JustInf") Opt("WinWaitDelay",100) Opt("WinTitleMatchMode",4) Opt("WinDetectHiddenText",1) Opt("MouseCoordMode",0) ;;;; Body of program would go here ;;;; While 1 Sleep(100) WEnd ;;;;;;;; ; Pause and Escape Functions Func TogglePause() $Paused = NOT $Paused While $Paused sleep(100) ToolTip('Script is "Paused"',0,0) WEnd ToolTip("") EndFunc Func Terminate() Exit 0 EndFunc Func ShowMessage() MsgBox(4096,"","This is a message.") EndFunc ;****************************************HOT KEY 1***************************************** Func BasicEmail() ;Func to add in basic info for emails EmailCat_Date () GUI_Assistant_Me () ACT () ACT_Copy () Eudora () Eudora_Change () EndFunc ;*****************************************For Hotkey 2************************************* Func AssistantEmail() ;;; Copy & Paste Email from ACT 'email address' field to 'email' field Call("ACT") Call("ACT_Copy") Call("Eudora") EndFunc Func ACT() ;Activate ACT WinWait("ACT!","") If Not WinActive("ACT!","") Then WinActivate("ACT!","") WinWaitActive("ACT!","") EndFunc Func ACT_Copy() ;Copy Company MouseMove(351,236) MouseDown("left") MouseUp("left") Sleep(500) Send("{END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{CTRLUP}") $company = ClipGet () Sleep(200) ;Copy Name Send("{TAB}") Send("{END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{CTRLUP}") $contact = ClipGet () Sleep(200) ;Copy Email Send("{TAB}{TAB}{TAB}") Send("{END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{CTRLUP}") $email = ClipGet () EndFunc ;;; Paste Contact Info from ACT into Stationary Email Func Eudora() ;Goto Eudora WinWait("Eudora","") If Not WinActive("Eudora","") Then WinActivate("Eudora","") WinWaitActive("Eudora","") EndFunc Func Eudora_Change() ;Focus on ComboBox with <none>, Assistant, Gordon's Guide-Signature I think ControlCommand ("Eudora","","ComboBox3", "SetCurrentSelection", 0) ;ControlFocus ( "Eudora", "", "ComboBox3") ;Send("{UP}{UP}{UP}") ;, set it to none ControlSetText("Eudora", "", "Edit1", $email) ControlSetText("Eudora", "", "Edit3", "ATTN: " & $contact) ControlFocus("Eudora", "", "EudoraEdit1") $email_body = ControlGetText ( "Eudora", "","EudoraEdit1" ) $AddNotes_New = StringReplace ( $email_body, "NNNNN", $contact) $AddNotes_NewA = StringReplace ( $AddNotes_New, "XXXXX", $company) ;$AddNotes_NewB = StringReplace ( $AddNotes_NewA, "ZZZZZ", $cat_1A) ;Put Category in Add Notes ControlSetText ( "Eudora", "", "EudoraEdit1", $AddNotes_NewA ) EndFunc Func GUI_Assistant_Me() ;Make GUI to choose if Email is from Me or Assistant GUICreate("Email From?", 150, 55) GUISetState(@SW_SHOW) ; will display an empty dialog box $email_assistant = GUICtrlCreateButton("Assistant", 15, 10,50,35) $email_me = GUICtrlCreateButton("Me", 75, 10,50,35) Do $msg = GUIGetMsg() If $msg = $email_assistant Then PickAssistant() If $msg = $email_me Then PickMe() Until $msg = $GUI_EVENT_CLOSE EndFunc Func PickAssistant() GUISetState(@SW_HIDE) ControlFocus ( "Eudora", "", "ComboBox3"); do not remove, u need this ControlCommand ("Eudora","","ComboBox3", "SetCurrentSelection", 1) ;Send("{DOWN}") ; do not remove, u need this ControlClick ( "Eudora", "", "Static2") Send("{DOWN}") Send("{DOWN}") Send("{ENTER}") ControlFocus("Eudora", "", "EudoraEdit1"); So that you don't accidentally scroll EndFunc Func PickMe() GUISetState(@SW_HIDE) ControlFocus ( "Eudora", "", "ComboBox3") ; do not remove, u need this ControlCommand ("Eudora","","ComboBox3", "SetCurrentSelection", 2) Send("{DOWN}{DOWN}") ; do not remove, u need this ControlClick ( "Eudora", "", "Static2") Send("{DOWN}") Send("{ENTER}") ControlFocus("Eudora", "", "EudoraEdit1"); So that you don't accidentally scroll EndFunc Func ClickEmail() ;Open 'Just Wants Info Stationary' MouseMove(55,684) MouseDown("left") MouseUp("left") MouseClick("left",39,285,2) sleep(500) EndFunc Call("Eudora_Change") Func Assitant_Or_Me() ;Make GUI to choose if Email is from Me or Assistant GUICreate("Email Sender Options", 150, 55) GUISetState(@SW_SHOW) ; will display an empty dialog box $email_assistant = GUICtrlCreateButton("Assistant", 15, 10,50,35) $email_me = GUICtrlCreateButton("Me", 75, 10,50,35) Do $msg = GUIGetMsg() If $msg = $email_assistant Then PickAssistant() If $msg = $email_me Then PickMe() Until $msg = $GUI_EVENT_CLOSE EndFunc Func EmailCat_Date() ;Make GUI GUICreate("Input Email Info", 225, 350) GUISetState(@SW_SHOW) ; will display an empty dialog box ;Make first Combo Box $cat_1 = GUICtrlCreateCombo("Deleted To Save Room", 10, 35) GUICtrlSetData(-1, "Deleted To Save Room"); Set data in Combo Box ;Second Combo Box $cat_2 = GUICtrlCreateCombo("Deleted To Save Room", 10, 75) GUICtrlSetData(-1, "Deleted To Save Room"); Set data in Combo Box ;Third Combo Box $cat_3 = GUICtrlCreateCombo("Deleted To Save Room", 10, 115) GUICtrlSetData(-1, "Deleted To Save Room"); Set data in Combo Box ;Label for Category GUICtrlCreateLabel ("Does Email Need A Category?", 10, 10,200,20) ;Make Buttons $done = GUICtrlCreateButton("Create Email", 35, 275, 150, 50) ;Creates a date control for the GUI ; Also, sets the incentive date/expiration date for the last day of the current week, and last day of current month. $date1 = _DateToDayOfWeek (@YEAR, @MON, @MDAY) $date2 = 6 - $date1 $date3 = _DateAdd ( "d", $date2, _NowCalcDate()) ;Label for the Dates GUICtrlCreateLabel ("Appointment Date", 10, 210,70,12) $date_a = GUICtrlCreateDate ($date3, 10,225,200,20 ) GUISetState() ; will display an empty dialog box ; Run the GUI until the dialog is closed Do $msg = GUIGetMsg() If $msg = $done Then GUISetState(@SW_HIDE) GUI_Assistant_Me() EndIf If $msg = $cat_1 Then GUICtrlRead($cat_1); get the value $cat_2 = $cat_1 $cat_3 = $cat_1 EndIf If $msg = $cat_2 Then GUICtrlRead($cat_2); get the value $cat_1 = $cat_2 $cat_3 = $cat_2 EndIf If $msg = $cat_3 Then GUICtrlRead($cat_3); get the value $cat_1 = $cat_3 $cat_2 = $cat_3 EndIf If $msg = $date_a Then GUICtrlRead($date_a) EndIf Until $msg = $GUI_EVENT_CLOSE EndFunc Edited March 11, 2006 by litlmike _ArrayPermute()_ArrayUnique()Excel.au3 UDF
litlmike Posted March 10, 2006 Author Posted March 10, 2006 AHHH, why would you us Call? why not justGUI_Assist_me() rather thanCall("Gui_Assist_Me")Because I am an idiot! That's why! Can't you get that straight! So I will try changing that and see if it works. What is the difference in using Call? _ArrayPermute()_ArrayUnique()Excel.au3 UDF
litlmike Posted March 10, 2006 Author Posted March 10, 2006 I still doesn't work, it looks like it is kinda skipping something. I think the problem is with my If statements in the GUI, should they be different? EmailCat_Date ; save the data until Eudora Change GUI_Assistant_M ;; save the data until Eudora Change ACT ; save the data until Eudora Change ACT_Copy ; save the data until Eudora Change Eudora Eudora_Change _ArrayPermute()_ArrayUnique()Excel.au3 UDF
cdkid Posted March 10, 2006 Posted March 10, 2006 (edited) add () to the end of your function calls like rather than 'Eudora' use 'Eudaora()' I dont think there really is a diff between call & just calling a func Edited March 10, 2006 by cdkid AutoIt Console written in C#. Write au3 code right at the console :D_FileWriteToLineWrite to a specific line in a file.My UDF Libraries: MySQL UDF Library version 1.6 MySQL Database UDF's for AutoItI have stopped updating the MySQL thread above, all future updates will be on my SVN. The svn location is:kan2.sytes.net/publicsvn/mysqlnote: This will still be available, but due to my new job, and school hours, am no longer developing this udf.My business: www.hirethebrain.com Hire The Brain HireTheBrain.com Computer Consulting, Design, Assembly and RepairOh no! I've commited Scriptocide!
litlmike Posted March 10, 2006 Author Posted March 10, 2006 I dont think there really is one... i just dont like it Lol, check out the posts above, and see what u think. Thanks! _ArrayPermute()_ArrayUnique()Excel.au3 UDF
litlmike Posted March 10, 2006 Author Posted March 10, 2006 I see where the problem lies, but don't know how to fix it. So I get the logic of it, but not the solution. After, PickAssistant(), and PickMe(), I need the script to go back to Func BasicEmail() to complete the other 4 functions, ACT (), ACT_Copy (), Eudora (), Eudora_Change (). Why doesn't that happen? Func GUI_Assistant_Me() ;Make GUI to choose if Email is from Me or Assistant GUICreate("Email From?", 150, 55) GUISetState(@SW_SHOW) ; will display an empty dialog box $email_assistant = GUICtrlCreateButton("Assistant", 15, 10,50,35) $email_me = GUICtrlCreateButton("Me", 75, 10,50,35) Do $msg = GUIGetMsg() If $msg = $email_assistant Then PickAssistant() If $msg = $email_me Then PickMe() Until $msg = $GUI_EVENT_CLOSE EndFunc Func PickAssistant() GUISetState(@SW_HIDE) ControlFocus ( "Eudora", "", "ComboBox3"); do not remove, u need this ControlCommand ("Eudora","","ComboBox3", "SetCurrentSelection", 1) ;Send("{DOWN}"); do not remove, u need this ControlClick ( "Eudora", "", "Static2") Send("{DOWN}") Send("{DOWN}") Send("{ENTER}") ControlFocus("Eudora", "", "EudoraEdit1"); So that you don't accidentally scroll EndFunc _ArrayPermute()_ArrayUnique()Excel.au3 UDF
Valuater Posted March 10, 2006 Posted March 10, 2006 maybe Func PickAssistant() GUISetState(@SW_HIDE) ControlFocus ( "Eudora", "", "ComboBox3"); do not remove, u need this ControlCommand ("Eudora","","ComboBox3", "SetCurrentSelection", 1) ;Send("{DOWN}"); do not remove, u need this ControlClick ( "Eudora", "", "Static2") Send("{DOWN}") Send("{DOWN}") Send("{ENTER}") ControlFocus("Eudora", "", "EudoraEdit1"); So that you don't accidentally scroll GUISetState(@SW_SHOW);<-------------- EndFunc
litlmike Posted March 11, 2006 Author Posted March 11, 2006 maybe Func PickAssistant() GUISetState(@SW_HIDE) ControlFocus ( "Eudora", "", "ComboBox3"); do not remove, u need this ControlCommand ("Eudora","","ComboBox3", "SetCurrentSelection", 1) ;Send("{DOWN}"); do not remove, u need this ControlClick ( "Eudora", "", "Static2") Send("{DOWN}") Send("{DOWN}") Send("{ENTER}") ControlFocus("Eudora", "", "EudoraEdit1"); So that you don't accidentally scroll GUISetState(@SW_SHOW);<-------------- EndFunc Thanks for the response, but I actually want the GUI to disappear. The Script asks the user for 3 bits of information: Once the user has sent a msg for EmailCat_Date (), then GUI_Assistant_Me (), should occur, then according to the answer for GUI_Assistant_Me (), either PickAssistant() or PickMe() happens. BUT, after either PickAssistant() or PickMe() happens I want the script to finish the Func BasicEmail(). Which would leave: ACT (), ACT_Copy (), Eudora (), Eudora_Change (). My thinking was that it would complete these functions in order (below). One of the posts above I try to explain the logic that I see is wrong. But don't know how to fix. Func BasicEmail();Func to add in basic info for emails EmailCat_Date () GUI_Assistant_Me () ACT () ACT_Copy () Eudora () Eudora_Change () EndFunc _ArrayPermute()_ArrayUnique()Excel.au3 UDF
Valuater Posted March 11, 2006 Posted March 11, 2006 Do $msg = GUIGetMsg() If $msg = $email_assistant Then PickAssistant() Return EndIf If $msg = $email_me Then PickMe() Return EndIf Until $msg = $GUI_EVENT_CLOSE EndFunc 8)
litlmike Posted March 11, 2006 Author Posted March 11, 2006 (edited) Do $msg = GUIGetMsg() If $msg = $email_assistant Then PickAssistant() Return EndIf If $msg = $email_me Then PickMe() Return EndIf Until $msg = $GUI_EVENT_CLOSE EndFunc 8)It didn't fix it. I really don't know what 'Return' does, but it sounds like the idea. I want the script to 'Return' to finishing the Func BasicEmail() in the order I set it. Where does this 'Return' Make it return to? Any other ideas? Edited March 11, 2006 by litlmike _ArrayPermute()_ArrayUnique()Excel.au3 UDF
Valuater Posted March 11, 2006 Posted March 11, 2006 (edited) geeze.... Do $msg = GUIGetMsg() If $msg = $email_assistant Then PickAssistant() ExitLoop EndIf If $msg = $email_me Then PickMe() ExitLoop EndIf Until $msg = $GUI_EVENT_CLOSE EndFunc return - returns to the last place the function was called from 8) Edited March 11, 2006 by Valuater
litlmike Posted March 11, 2006 Author Posted March 11, 2006 geeze.... Do $msg = GUIGetMsg() If $msg = $email_assistant Then PickAssistant() ExitLoop EndIf If $msg = $email_me Then PickMe() ExitLoop EndIf Until $msg = $GUI_EVENT_CLOSE EndFunc return - returns to the last place the function was called from 8) Dang it! Its not working! Oh how I love and hate programming!....... .........wait a minute! Oh wait!!! Nevermind! I got it!! ALL THE FUNCTIONS NEED "Return"!!!! SWEET!! Thanks everyone! _ArrayPermute()_ArrayUnique()Excel.au3 UDF
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now