In the fourth post of this series I demonstrate how to Login to Gmail / YouTube / Google+ with AutoHotkey.
In this web scraping example we saw how the Google login looks like it is loading a separate page but, in reality, is not. Web scraping is always fun (and can be very frustrating) because HTML developers can think of so many different ways to accomplish their objectives. Check this page for the other scripts I used in the video.
Video demonstrating Login to Gmail / YouTube / Google+
Here is the AutoHotkey script where I automate Login to Gmail / YouTube / Google+
#SingleInstance, Force Browser_Forward::Reload ;RControl:: Browser_Back:: ;************************************************************ Page:="https://accounts.google.com/ServiceLogin?sacu=1&continue=https%3A%2F%2Faccounts.google.com%2FManageAccount&hl=en#identifier" pwb := WBGet() If (pwb.locationURL !=page){ pwb.Navigate(page) ;Navigate to URL while pwb.busy or pwb.ReadyState != 4 ;Wait for page to load Sleep, 100 } pwb.document.GetElementsByName("Email")[0].Value :="Cathy@the-Automator.com" ;Object Name- Set array value pwb.document.GetElementsByName("signIn")[0].click() Sleep, 300 pwb.document.GetElementsByName("Passwd")[0].Value :="The_Stupidist_Password!" pwb.document.GetElementsByName("signIn")[0].click() ;************Pointer to Open IE Window****************** WBGet(WinTitle="ahk_class IEFrame", Svr#=1) { ;// based on ComObjQuery docs static msg := DllCall("RegisterWindowMessage", "str", "WM_HTML_GETOBJECT") , IID := "{0002DF05-0000-0000-C000-000000000046}" ;// IID_IWebBrowserApp ;// , IID := "{332C4427-26CB-11D0-B483-00C04FD90119}" ;// IID_IHTMLWindow2 SendMessage msg, 0, 0, Internet Explorer_Server%Svr#%, %WinTitle% if (ErrorLevel != "FAIL") { lResult:=ErrorLevel, VarSetCapacity(GUID,16,0) if DllCall("ole32\CLSIDFromString", "wstr","{332C4425-26CB-11D0-B483-00C04FD90119}", "ptr",&GUID) >= 0 { DllCall("oleacc\ObjectFromLresult", "ptr",lResult, "ptr",&GUID, "ptr",0, "ptr*",pdoc) return ComObj(9,ComObjQuery(pdoc,IID,IID),1), ObjRelease(pdoc) } } }