Opera Library 1.08

   (3 reviews)
Sign in to follow this  
Followers 0

MrCreatoR

1 Screenshot

About This File

Opera Browser Automation UDF Library!

32 (and more to go) adapted functions to manipulate the most common routines for Opera Browser!

Note: This UDF Library tested on Opera versions: 8.54-9.5, 10.63.3516, few critical functions tested also on 11.x-12.x.

Change Log:

v1.08 [21.Jun.2013]

  • Fixed issue with getting opera profile path (mostly related to _OperaGetMailDir).

v1.07 [04.Jun.2013]

  • + Added _OperaGetDownloadsDir function.
  • + Added _OperaGetSessionFiles function.
  • + Added global $i_Opera_SearchAllDrives variable to allow profile dir detection on other drives. Usefull when installed more than one OS.
  • + Added global $s_Opera_ProfileDir variable to specify custom profile dir (this variable should be empty if you need to use _OperaGetProfileDir).
  • Fixed few functions to work better with new Opera versions.
  • Fixed internal __Opera_GetOperaPageHandle function (used in public _OperaScreenCapture function).

v1.06 [12.Jul.2012]

  • Fixed _OperaGetDir function:
    - To be compatible with x64 system.
    - Changed/expanded parameters, now used $iFlag to determine the function behavior, see function header for more details.
  • _OperaIsRuning function renamed to _OperaIsRunning. Old function name still supported.
  • Renamed internal functions to __Opera_*.

v1.05 [08.Jul.2012]

  • Fixed _OperaGetTitle function, the title was incorrect if $sOpDir was specified and $iRet <> 2.
  • Fixed __Correct_Opera_Path internal function to replace back slashes (/).

v1.04 [26.Jun.2011]

  • Fixed following functions to be more compatible with Opera 11.x:
    _OperaGetProfileDir
    _OperaMultiUserModeIsOn
    _OperaGetUserJSDir
    __Correct_Opera_Path
  • Fixed major bugs with recognizing Opera Dir (if $sOpDir parameter is passed as wrong Opera dir path).
  • Fixed _OperaGetUserJSDir function (now working better with relative pathes).
  • Renamed and changed _Opera_Integration_Example function. Now it's considered active function and named _Opera_Integration_Module.
  • Changed _OperaSelectFolder function. Added new optional parameter $hParent.
  • Changed _OperaAddMenuItem and _OperaRemoveMenuItem functions. Added new optional parameter $iBackup.
  • Fixed _OperaAddMenuItem function. Encoding issues.
  • + Added _OperaGetCacheDir function.
  • + Added optional $iGetLastInstallPath parameter to _OperaGetDir function.
    If this parameter is 1, then function will try to detect the last installed Opera path,
    instead of the path that Opera.exe was last time launched from.

v1.03 [16.May.2011]

  • UDF renamed to Opera.au3.
  • Fixed _OperaScreenCapture function (now compatible with Opera 10.6, but still having an issue with capturing panels).
  • Fixed few major issues with getting preference file's pathes.
  • Fixed _OperaGetDir() function.
  • Fixed _OperaGetProfileDir() function (errors when getting profile dir on multiuser mode).
  • Changed _OperaFindDir function.
    - Now the $sInitPath parameter can accept pathes (delimited with "|").
    - Now -1 as second parameter ($iRetCount) tels to the function to return all found Opera dirs.
    - Also the function now works faster.
  • + Opera 10.6 support.
  • + Added _OperaToggleMenuItemState function.
  • + Added optional $sStandard_Name parameter to _OperaSetConfigFile function:
    If this parameter is a string (default is -1), then it's used as standard file name
    (instead of "standard_" & $sConfig_Prefix & ".ini").

v1.02 [03.Jul.2009]

  • Now compatible with AutoIt 3.3.0.0.
  • + Opera 10 support.
  • + Added _OperaGetBookmarksFile() function.
  • + Added _OperaScreenCapture() function...
    ATTENTION: supported only for v3.2.10.0 or higher, due to (lack of) callback support.
  • + Added _OperaAddMenuItem()/_OperaRemoveMenuItem() function.
  • Fixed few function to read relative paths in opera prefs file.

v1.01 [5.Jan.2008]

  • Now compatible with AutoIt 3.2.10.0.
  • Variable names and spell corrections.
  • + Added 2 more UDFs:



    _OperaRestart()

    _OperaMultiUserModeIsOn()

v1.0 [28.Dec.2007]

First Release..


What's New in Version 1.08

Released

  • See «Change Log» above.




User Feedback

You may only provide a review once you have downloaded the file.


MrCreatoR

  • 5
  

Share this review


Link to review
TicTaC

  • 5
  

Share this review


Link to review
guinness

  • 5
  

Share this review


Link to review
  • Similar Content

    • 5ervant
      By 5ervant
      Go create a quick account in Zapier and go to https://zapier.com/app/dashboard and make some Zaps!
      Just need to click the specific instance of an .open-menu button and then click its a.run (anchor) element.
      Doing this IE.au3 script just causing to click its container element:
      $target = 1; Target the first instance #include <IE.au3> $oIE = _IEAttach("Dashboard - Zapier") $count = 0; $tags = _IETagNameGetCollection($oIE, "div") For $tag in $tags $class_value = $tag.GetAttribute("class") If $class_value = "open-menu" Then $count += 1 if $count = $target Then MsgBox(0, "Instance: ", $count) ; $tag.fireEvent("onmousedown") ; _IEAction($tag, "click") ; $tag.fireEvent("onmouseup") ; Or this but not working ; $tag.Click EndIf EndIf Next I also tried to do it using FF.au3
      $target = 1; Target the first instance #Include <Array.au3> #Include <FF.au3> $count = 0; If _FFConnect(Default, Default, 3000) Then $aArray = _FFXPath( "//div[@class='open-menu']", "", 7 ) ; _ArrayDisplay($aArray) For $tag in $aArray $count += 1 if $count = $target Then MsgBox(0, "Instance: ", $count) _FFClick($tag) EndIf Next EndIf Error: _FFClick ==> No match: $sElement: [number]
      Could some help me how to click such buttons on such kind of a dynamic page?
    • Phoenixx177
      By Phoenixx177
      I have a script that is calling 2 browser windows in my GUI and loading up the appropriate URLs.  Tested alone it works fine.  I also have another script that launches a 3rd party application in the GUI.  When I try to modify my 2nd script so that it includes the two browser windows along with the GUI, the GUI loads but not the browser windows.  Can someone get a second set of eyes on the script below and tell me where my brain jumped track please?  Many Thanks.
      #include <GUIConstants.au3> #include <Constants.au3> #include <windowsconstants.au3> #include <IE.au3> Global $oIE_google = _IECreateEmbedded() Global $oIE_autoit = _IECreateEmbedded() Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $mainWindow = GUICreate("Embed Cmd", 1280, 780, 10, 10) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") GUISetState (@SW_SHOW) GUIRegisterMsg(0xF, "WM_PAINT") ; create a borderless window that is a child to the main window $embedWindow = GUICREATE("", 700, 400, 15, 15, $WS_POPUP, -1, $mainWindow) Global $google = GUICtrlCreateObj($oIE_google, 10, 10, 1000, 300) Global $autoit = GUICtrlCreateObj($oIE_autoit, 800, 10, 500, 300) _IENavigate($oIE_google, "http://www.google.com") _IENavigate($oIE_autoit, "http://www.bing.com") DllCall("user32.dll", "hwnd", "SetParent", "hwnd", $embedWindow, "hwnd", $mainWindow) ; launch the command prompt (black on white, without the operating system message) $pid = run("C:\Program Files (x86)\Cisco\Router Manager\Router Administration.exe") ProcessWait ($pid) ; get the handle of the cmd window as i cannot be certain that there will be only one instance of the cmd running with the same window title or class $cmdHandle = _ProcessGetHWnd($pid, 2) $hWndChild = $cmdHandle[1][1] ; make the command prompt window a child to the earlier created borderless child window DllCall("user32.dll", "hwnd", "SetParent", "hwnd", $hWndChild, "hwnd", $embedWindow) ; resize the command prompt window so that its bolder and title bar are outside the borderless child window ; giving the appearance of a borderless command prompt WinMove($hWndChild, '', 10, 500, 485, 206) ;WinMove($hWndChild, '', 10, 500) WinSetState($hWndChild, '', @SW_SHOW) WinSetState($embedWindow, '', @SW_SHOW) WinSetState($oIE_google, '', @SW_SHOW) WinSetState($oIE_autoit, '', @SW_SHOW) ; inifinite event loop While 1 ; sleep for 100 milliseconds (to not hog the cpu) sleep(100) ; end of event loop WEnd Func CLOSEClicked() ; take care of things to do when exiting Winkill($hWndChild) Exit EndFunc Func WM_PAINT($hWnd, $Msg, $wParam, $lParam) Sleep(100) DllCall("user32.dll", "int", "InvalidateRect", "hwnd", $hWnd, "ptr", 0, "int", 0) EndFunc ;==>WM_PAINT ;=============================================================================== ; ; Function Name: _ProcessGetHWnd ; Description: Returns the HWND(s) owned by the specified process (PID only !). ; ; Parameter(s): $iPid - the owner-PID. ; $iOption - Optional : return/search methods : ; 0 - returns the HWND for the first non-titleless window. ; 1 - returns the HWND for the first found window (default). ; 2 - returns all HWNDs for all matches. ; ; $sTitle - Optional : the title to match (see notes). ; $iTimeout - Optional : timeout in msec (see notes) ; ; Return Value(s): On Success - returns the HWND (see below for method 2). ; $array[0][0] - number of HWNDs ; $array[x][0] - title ; $array[x][1] - HWND ; ; On Failure - returns 0 and sets @error to 1. ; ; Note(s): When a title is specified it will then only return the HWND to the titles ; matching that specific string. If no title is specified it will return as ; described by the option used. ; ; When using a timeout it's possible to use WinWaitDelay (Opt) to specify how ; often it should wait before attempting another time to get the HWND. ; ; ; Author(s): Helge ; ;=============================================================================== Func _ProcessGetHWnd($iPid, $iOption = 1, $sTitle = "", $iTimeout = 2000) Local $aReturn[1][1] = [[0]], $aWin, $hTimer = TimerInit() While 1 ; Get list of windows $aWin = WinList($sTitle) ; Searches thru all windows For $i = 1 To $aWin[0][0] ; Found a window owned by the given PID If $iPid = WinGetProcess($aWin[$i][1]) Then ; Option 0 or 1 used If $iOption = 1 OR ($iOption = 0 And $aWin[$i][0] <> "") Then Return $aWin[$i][1] ; Option 2 is used ElseIf $iOption = 2 Then ReDim $aReturn[UBound($aReturn) + 1][2] $aReturn[0][0] += 1 $aReturn[$aReturn[0][0]][0] = $aWin[$i][0] $aReturn[$aReturn[0][0]][1] = $aWin[$i][1] EndIf EndIf Next ; If option 2 is used and there was matches then the list is returned If $iOption = 2 And $aReturn[0][0] > 0 Then Return $aReturn ; If timed out then give up If TimerDiff($hTimer) > $iTimeout Then ExitLoop ; Waits before new attempt Sleep(Opt("WinWaitDelay")) WEnd ; No matches SetError(1) Return 0 EndFunc ;==>_ProcessGetHWnd $StaticTxt = ControlGetText("Embed Cmd","",1007) MsgBox(1,"Static Text", $StaticTxt) GUISetState() While GUIGetMsg() <> -3 WEnd  
    • Phoenixx177
      By Phoenixx177
      I've tried to wrap my head around it but just can't imagine how to embed 2 IE browsers in the same GUI.
      Here's what I'm doing so far.
       
      #include <GuiConstantsEx.au3> #include <windowsconstants.au3> #include <IE.au3> Global $oIE = _IECreateEmbedded() ; Create a simple GUI for our output Global $hGUI = GUICreate("Embedded Web control Test", 1280, 580, (@DesktopWidth - 1280) / 2, (@DesktopHeight - 580) / 2, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN, $WS_MAXIMIZEBOX)) Global $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 1100, 500) _IENavigate($oIE, "http://xxxxxxxxxx.com") Global $o_doc = _IEDocGetObj($oIE) $o_doc.DocumentElement.ScrollTop = 140 $o_doc.DocumentElement.ScrollLeft = 170 GUISetState() While GUIGetMsg() <> -3 WEnd  
    • SorryButImaNewbie
      By SorryButImaNewbie
      Hello,
      I try to add a new UDF to my AutoIT library, and it seems I fail. I started to work following the insturctions found on the wiki . 
      I made an extra folder just next to my AutoIT folder, called ExtraUDF, and copied the file CUIAutomation2.au3 in it (I try to use this UDF for automating a program) then I run sciteconfig, set this folder up as User Include Folder, applied the changes, then run the calltip manager and got a msg when I tried to parse it. I attach a few pictures for better present the problem.
      I think I miss something here, should i put anything else on the ExtraUDF folder? I dont think that the CallTip manager added the udf to scite, If I try to run it i get a msg saying that I Scite cant open the include file and naturally after that, It can't use the functions called from it.
      Thank you for your help and insight as always! Please ask, if anything is fuzzy about the problem
       





    • Gowrisankar
      By Gowrisankar
      Good day to the members of the forum.. 
      Is there any UDF that is available to automate Attachmate Extra Mainframe sessions?
      I am trying to automate mainframe processes. I couldn't get values from particular co-ordinates in mainframe or pass values to particular co-ordinates in mainframe.
      Please let me know if there is any UDF or any other kind of solution is available. 
      Thanks and regards,
      Gowrisankar R.