Jump to content

Search the Community

Showing results for tags 'browser'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • Forum FAQ
  • AutoIt

Calendars

  • Community Calendar

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Member Title


Location


WWW


Interests

  1. Anybody could help with using QueryInterface in AutoIt to embed Microsoft Edge using WebView2 Interface ? Here are links to information/documentation: Image comes from: https://docs.microsoft.com/en-us/microsoft-edge/webview2/media/webview2/whatwebview.png Introduction to Microsoft Edge WebView2 https://docs.microsoft.com/en-us/microsoft-edge/webview2/ Understand WebView2 SDK versions https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/versioning Download: https://developer.microsoft.com/en-US/microsoft-edge/webview2/ https://developer.microsoft.com/en-US/microsoft-edge/webview2/#download-section https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution API Reference: https://docs.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/?view=webview2-1.0.622.22 HowTo/Concepts: https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/versioning https://docs.microsoft.com/en-us/microsoft-edge/webview2/gettingstarted/win32 https://docs.microsoft.com/en-us/microsoft-edge/webview2/howto/debug?tabs=devtools https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/security https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/userdatafolder https://mybuild.microsoft.com/sessions/9198aeac-0c8e-4d32-96d1-cbb99a390aa6 Example: https://github.com/MicrosoftEdge/WebView2Samples Related: https://www.essentialobjects.com/Products/WebBrowser/Default.aspx?gclid=CjwKCAiA17P9BRB2EiwAMvwNyMe6UI9VHej-JYDBUoyGDFz40KaaJ_RidY-75Fhr-PHz65sSVC0XlxoC5loQAvD_BwE https://docs.microsoft.com/en-us/microsoft-edge/webview2/howto/webdriver btw. I'm not WindowsApi expert (QueryInterface, C++, DllCall). What I trying to say is: It means that I do not done anything in this regards .... as so far. TIMELINE/ChangeLog: 2020-11-12 - Project propsed by @mLipok 2021-02-03 - First version provided by @LarsJ
  2. So I was trying to write a function that can find a button (or any other XPath Element) and scroll the page + move the mouse to the location of the button. My logic for this was: 1. get position of button using _FFGetPosition 2. get inner dimensions of browser window and total dimensions of page 3. divide total dimensions by inner dimensions to get number of page down operations 4. use Mod() to get remaining pixels offset 5. MouseMove() and add requisite offsets for Titlebar etc (what the +5 and +54 is for in the last line) Example Code: _FFConnect($LocalHost, $BrowserPort, $TimeOut) Local $Button = _FFXPath(".//*[@id='thisbutton']") Local $ButtonPosition = _FFGetPosition($Button) Local $ElementWidth = $ButtonPosition[0] Local $ElementHeight = $ButtonPosition[1] Local $InnerWidth = _FFCmd("window.content.innerWidth") Local $InnerHeight = _FFCmd("window.content.innerHeight") Local $PageWidth = _FFCmd(".body.offsetWidth") Local $PageHeight = _FFCmd(".body.offsetHeight") Local $PGDNNo = Int($ElementHeight/$InnerHeight) Local $PGDNMod = Mod($ElementHeight, $InnerHeight) ; MsgBox(0,"","$ElementX: " & $ElementWidth & @CRLF & "$ElementY: " & $ElementHeight) ; MsgBox(0,"","$InnerWidth: " & $InnerWidth & @CRLF & "$InnerHeight: " & $InnerHeight) ; MsgBox(0,"","$PageWidth: " & $PageWidth & @CRLF & "$PageHeight: " & $PageHeight) ; MsgBox(0,"",$PGDNNo) ; MsgBox(0,"",$PGDNMod) Local $iter = 1 While $iter <= $PGDNNo WinActivate($BrowserWindowClass,"") _FFCmd("window.content.scrollByPages(1)") $iter += 1 WEnd MouseMove($ElementWidth + 5, $PGDNMod + 54) This isn't working. In some cases, it's not doing the page down operation the number of times needed, or not accurately pinpointing the location. I think there may be something wrong with the logic I'm using. What am I doing wrong? Thanks.
  3. This is for those pages that seem to load when you use _FFOpenURL(), but they have a text saying "please wait while we load your page..." but according to _FFOpenURL() the page has loaded. An example seen in popular sites is the Cloudflare page saying "Checking your browser before...". It's the opposite of pausing a script until an element is visible on a page. It takes Elements in the form of id, xpath or text search. Global $BrowserPort = 4242 Global $TimeOut = 60000 Global $LocalHost = "127.0.0.1" Func _FFWaitWhileElement($thiselement, $elementtype = "xpath", $timeoutms = 60000) _FFConnect($LocalHost, $BrowserPort, $TimeOut) Local $Element Local $ElementFound = 1 Local $TimeoutCountdown = 0 While $ElementFound <> 0 And $TimeoutCountdown < $timeoutms If $elementtype = "xpath" Then $Element = _FFXPath($thiselement) EndIf If $elementtype = "id" Then Local $ConstructXPath = ".//*[@id='" & $thiselement & "']" $Element = _FFXPath($ConstructXPath) EndIf ; MsgBox(0, "", $Element) Local $ElementXPathTextContent = _FFCmd("FFau3.xpath.textContent") ; MsgBox(0, "", $ElementXPathTextContent) Local $ElementXPathInnerHTML = _FFCmd("FFau3.xpath.innerHTML") ; MsgBox(0, "", $ElementXPathInnerHTML) If $ElementXPathTextContent = "_FFCmd_Err" Or $ElementXPathInnerHTML = "_FFCmd_Err" Then $ElementFound = 0 Else $ElementFound = 1 EndIf If $elementtype = "text" Then $ElementFound = _FFSearch($thiselement) ; MsgBox(0, "", $ElementFound) EndIf $TimeoutCountdown += 1000 _FFDisConnect() _FFConnect($LocalHost, $BrowserPort, $TimeOut) WEnd Return $ElementFound EndFunc _FFConnect($LocalHost, $BrowserPort, $TimeOut) _FFOpenURL("https://www.site.com/page", True) _FFWaitForElement("Please Wait...","text", 60000) MsgBox(0,"","Page finished loading") It's pretty simple, hope it helps some of you who are working with FF.au3 :)
  4. I have a web page which has somewhere from 90-100 records any time. So one has to scroll from from certain height to bottom using scroll bar on the right or using the down key. Is there any functionality to take a single screenshot and give .jpeg file. Any previous links or direction will be very helpful for me George V
  5. Hi, I am looking for a way to automate login to a Internet Banking website (https://bank.tymedigital.co.za/) and all of the examples that I could found still do not solve my issue with this website. In order to Login, the user need to enter their Identity Number and Password the click the Login button. Inspecting the Elements in Chrome are as follow; Identity Number <input autocomplete="username" placeholder="Please enter your South African ID number" maxlength="13" type="tel" class="form-control" value=""> Password <input autocomplete="current-password" placeholder="Enter password" type="password" class="form-control" value=""> Button <button type="button" class="btn btn-yellow btn-block">Login</button> Any assistance or directing me to a solution will be appreciated. Thank you, Lourens
  6. ConsoleWrite("Hello Dolly on Line 1" & @CRLF) #include <IE.au3> ConsoleWrite("Hello Dolly on Line 5" & @CRLF) Local $oIE = _IECreate("www.autoitscript.com") ConsoleWrite("Hello Dolly on Line 10" & @CRLF) Can anyone put me on the right track to troubleshoot this one.. the IE browser is not opening.. it is not my primary browser since FF is but that has not been a problem in the past.. it all seems to work including compile but the generation of the IE browser.. Never had any problem before.. below is the results of the run.. any ideas on where I might look.. that is the only error i get and its only after a 30 second delay.. I suppose a time out.. ; >"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "G:\show_pos.au3\test.au3" ; Hello Dolly on Line 1 ; Hello Dolly on Line 5 ; --> IE.au3 T3.0-2 Error from function _IECreate, (Browser Object Creation Failed) ; Hello Dolly on Line 10 ; >Exit code: 0 Time: 30.46
  7. Hi, I am still really new with AutoIT. We are using it to automate logging into web sites and I have encountered problems with focus. The target web page is configured to put the cursor into the first text field (username) when the page is loaded, and when I run the AutoIT script, which does the log in seems like it is just not starting where I expect it to be. I have been kind of using ToolTip() to kind of help with debugging, but now I am wondering if the calls to ToolTip() are causing the focus to be messed up. For example, at least visually, when the ToolTip() is called, I can see the cursor disappear from the web page text field and they when I do anything that is supposed to send keystrokes, they are going off somwhere else ("never-neverland"). But when I remove some of the ToolTip() calls, it works correctly. So the questions I have are: 1) Do the ToolTip() calls interfere with/change where the focus on the target page are? 2) In general, what are the "rules" for where ToolTip can be used "safely" (== doesn't interfere with focus)? Thanks, Jim
  8. Hello all, I've written the code below which launches chrome in incognito mode and then proceeds to go to the autoit website. From my understanding, the Run() command is also supposed to output the PID number related to the application that got launched from the Run command. However when I run the below lines, it outputs a PID number that is different from the newly launched chrome browser's PID number, does anyone know why and possibly explain how I could retrieve the accurate PID number associated with the newly launched browser? Global $iPid = Run(@ComSpec & ' /c start chrome.exe https://www.autoitscript.com/forum/ -incognito' ,"", "") msgbox(0,"",$iPid) Thank you, Brian
  9. Hello all, I've been trying to figure out how to launch Google Chrome in the background (hidden) but it doesn't seem possible. I've tried the following methods: ShellExecute("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe", "", "", "", @SW_HIDE) Also I've tried: ShellExecute(@ComSpec, "/c start chrome.exe","","",@SW_HIDE) Lastly I tried: RunWait('"'&@ProgramFilesDir&'\Google\Chrome\Application\chrome.exe" --silent-launch',@ScriptDir) But all of them launch my chrome browser without hiding it. Does anyone know a workaround for this or if AutoIT just can't Chrome? Bonus points if you know how to make it launch chrome hidden and make it go to https://www.autoitscript.com Thank you, Brian
  10. I'm trying to get the output data from https://www.guilded.gg but it uses a web app that generates that output on the fly and this doesn't show up in the page source. Only in web inspector of each browser does this data show up. How do I read this data in autoit (equivalent to the web inspector) thank you
  11. We can select elements in IE using their IDs as below. Local $oDiv = _IEGetObjById($oIE, "x-auto-16-input") But to one button in the webpage, there is no ID to it. In selenium we have option to select this element using the CssSelector and clicked the button using below code in c# selenium. driver.FindElement(By.CssSelector("button.x-btn-text")).Click(); What is the alternative for this in AUtoIT?
  12. Hi all, I just upgraded to windows 10 and am using Edge as my browser now. Updated my scripts, but I can not unhide a minimized Edge window with the script anymore. WinSetState ( "titlle","", @SW_MAXIMIZE ) works fine, but not if it is minimized. Tried same with SW_SHOW, doesn't work. WinExists("title","") -> returns 1, so it is finding my window. WinWait($title,$text,$timeout) If Not WinActive($title,$text) Then WinActivate($title,$text) WinWaitActive($title,$text,$timeout) Doesn't work also, so I think I tried all but cant get the window back Any help would be appreciated
  13. 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?
  14. 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
  15. 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
  16. Let's say I want to automate something, let's keep it very simple. On google site. - Move mouse to search box - Type in "cat" - Press "enter" to search Now I can do that no problem with mouse moves and so on, but is there a way to do it by code? So the user doesn't see the actions?
  17. Hello. I am trying to attach a window, but the problem is that there is already another window with the exakt same title. How do I do that? (_IEAttach)
  18. Hi. Is there a way in autoit script to wait while browser's html document fully loaded, instead of putting script in Sleep? I have this code: Sleep(8000) $oDocument=_UIA_getFirstObjectOfElement($oIE,$cDocumentWindow, $treescope_subtree) Sleep(8000) If not isobj($oDocument) Then _UIA_DumpThemAll($oIE,$treescope_subtree) Else ...... EndIf I do not like this - Sleep(8000). Sometimes it takes 2 seconds to load, sometimes it takes over 8 seconds... I would like to have something that would wait when html document is ready/loaded. Thank you.
  19. Hello, I have a script, its working well. When I start running the script the random website is loading and then the browser is hiding. (That's OK for me.) Then the script is sleeping for a random time. (That's OK for me.) My problem is: After the next website is loading, then the browser is visible again. I can see the browser for a few moments. (until the website is finish the loading.) My question is: How can I solve this problem? (Hide IE browser forever :)) Code: Global $var[4] $var[1] = "http://google.com" $var[2] = "http://google.com" $var[3] = "http://google.com" $x = Random(1, 3, 1) ShellExecute($var[$x]) Local $hWnd = WinWait("[CLASS:IEFrame]", "Google", 10) WinSetState($hWnd, "", @SW_HIDE) Sleep(Random(5000, 8000, 1)) Global $var[4] $var[1] = "http://google.com" $var[2] = "http://google.com" $var[3] = "http://google.com" $x = Random(1, 3, 1) ShellExecute($var[$x]) Local $hWnd = WinWait("[CLASS:IEFrame]", "Google", 10) WinSetState($hWnd, "", @SW_HIDE) Sleep(Random(5000, 8000, 1)) Thanks for helping!
  20. Hi Im looking to open a web site in internet explorer. Sometimes though other pop up windows appear and interfere. In Internet explorer for example a pop up "Welcome to Internet Explorer 8" will occur and this throws things off as I want to send text into web page after it opens. To counter this I am running internet explorer with extensions off to stop these windows from appearing but with mixed success. I need to be certain I can open internet explorer and search this web page, and send/enter a string of text into that web page. withot other Internet explorer sub windows throwing things off., In the below example I am reading a sting of text from a text file and entering it into internet explorer. This works sometimes and not others due to unforeseen windows spawining. If you know anything drop me a line Thanks Confuseis #include <array.au3> #include <file.au3> #include <MsgBoxConstants.au3> run("C:\Program Files\Internet Explorer\iexplore.exe -extoff -noframemerging https://some.website.com") ; read the username from the preexisting text file Local Const $sFilePath = "\scripts\TextInput.txt" Local $hFileOpen=FileOpen($sFilePath, $FO_Read) Local $sFileRead=FileReadLine($hFileOpen, 1) FileClose($hFileOpen) Sleep(2000) Send($sFileRead)
  21. NetSession UDF 0.9d (Set embedded browser Internet options on a per-process basis) Welcome to NetSession UDF! With this UDF we provide you with previously unexposed Internet options for your autoit processes which will apply to embedded browser controls created with _IECreateEmbedded. For instance, you can now set a proxy and user-agent for all for your Autoit application's embedded browsers without using the registry settings. This means that you can now have multiple proxy settings for multiple programs/processses, giving each process it's own proxy/agent/other settings for your embedded browser controls and change them within each application as many times as you like. In other words, dynamic per-program (Not shared) Internet settings for any application containing an embedded browser control. There's also a function to clear all of your browser's cookies as well as all flash cookies. Versions: Version 0.9 includes the ability to set an HTTP/SOCKS4/SOCKS5 proxy and browser agent for individual AutoIt processes that can all be running at the same time with different settings. This is easy to use. This UDF started out as code that I worked on years ago and now we're bringing it back to life as a UDF with new features planned. Version 0.9b now has the new _ClearCookies function which will remove all IE and Flash cookies. Version 0.9c has added the "#include-once" directive as a UDF should and an optimization to the _ClearCookies function thanks to jdelaney. _ClearCookies has also been changed to return TRUE or FALSE rather than strings, not pause script execution when deleting IE cookies, and the hidden window flag added for Its shell command. Version 0.9d has the added function _UseTOR. This release comes just minutes after the last release because it slipped my mind that it was on the Planned Features list and is easy to add. This new function simply envokes _SetProxy with the proper parameters for TOR with the option to change the port if your install of TOR isn't using the default port number; otherwise, no parameter is necessary. This will likely be the last release until we have more updates to the DLL/Windows API calls. At the moment this UDF makes use of urlmon.dll to apply settings to your application executables. Our goal is to expose all functionality of this DLL as well as possibly expand into more functionality using other Windows API elements. Important: If you wish to change the settings of an IE control more than once during the life if your program you might have to refresh the IE control or GUI of your app before applying the next change. This was the case years ago. I'll do some testing on this and publish an update to the UDF or add an example of a refresh to the Example Usage. Example usage & notes: #include <NetSession-0.9d.au3> ; Let's include IE.au3 just for this example assuming you're making an embedded browser. #include <IE.au3> ; In this example you would create your embedded IE object and use as follows. _SetProxy('108.247.158.12:8080') ; Now your proxy is set. This would be an HTTP proxy. For SOCKS you would use: _SetProxy('socks=108.247.158.12:1080') ; Or if you have TOR running and would like to use it as your proxy simply use: _UseTOR() ; But if your TOR isn't running on default port 9150 (Like if you changed it to 9292) you must specify your TOR port: _UseTOR(9292) ; The following is an example of setting your user agent: _SetUserAgent('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36') ; At this point any browsing you perform will use the previously set proxy and user agent. Such as: _IENavigate($ie,"http://www.ipchicken.com") ; If your proxy or SOCKS requires authentication you would add the proxy auth to the URL like this: _IENavigate($ie,"http://ProxyUser:ProxyPass@www.ipchicken.com") ; Let's clear all browser & Flash cookies _ClearCookies() ; Note that you can change these settings as many times as you need to in your application and these ; settings will only be applied to the .exe they were set from. This means you don't have to change ; the system-wide proxy or user-agent settings and can have per-.exe embedded browser settings. I welcome anyone who wants to contribute. Any suggestions will be much appreciated. The UDF NetSession-0.9d.au3 is attached to this post. The filename will always reflect the version number and this thread post will be kept up to date. I've chosen 0.9 because at this point we only need to figure out one more thing to consider it a complete 1.0. Version 1.0 will include an advanced authentication mechanism for proxies and socks servers (Better than passing proxy auth via the URL). The reason we want to use the authentication capabilities of the DLL is because when you pass authentication via the URL you can't access HTTPS sites through the proxy (You can if no proxy auth is required). If you can help make this UDF better by improving authentication as just previously mentioned or add any other functionality PLEASE don't hesitate to reply to this thread with some code. Here are the references to how this UDF came about and where you would look to help improve it: http://msdn.microsoft.com/en-us/library/ms775125%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/aa385148%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/aa385328%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/aa383630%28v=vs.85%29.aspx http://support.microsoft.com/kb/226473 Current Functions: _SetProxy(string $Proxy) - Sets an HTTP or SOCKS server for embedded IE browsers in the current process. _SetUserAgent(string $Agent) - Sets the user/browser agent for embedded IE browsers in the current process. _ClearCookies() - Deletes all IE and system Flash cookies. Returns a Boolean value. _UseTOR(int $TORPort = 9150) - Sets TOR as your proxy. You must have TOR running. $TORPort is only necessary if your TOR isn't using default 9150. TOR can be downloaded here: https://www.torproject.org/download/download-easy.html Planned Features: Proxy authentication via DLL rather than passing to URL. Function to set HTTP referrer. Support for other (Non-IE) embedded browsers. An ease-of-use function for setting TOR as the proxy server (This can currently be done manually). (Done) Compatability: All known versions of Windows since 2000/XP (Possibly earlier versions as well). Note: The settings applied by this UDF do not appear to affect functions such as InetGet. For those functions you would want to use HttpSetProxy. This UDF is for browser controls (which HttpSetProxy does not affect). Also, the browser must be embedded into the application as with _IECreateEmbedded. It will not work with a new window created with _IECreate. System Requirements: The existance of urlmon.dll on the system usually located in WindowsSystem32 Releases: NetSession-0.9.au3 {OLD} NetSession-0.9b.au3 {OLD} NetSession-0.9c.au3 {OLD} NetSession-0.9d.au3 {Newest} The changes in each version are detailed near the top of this post. !!! WE NEED HELP FOR THE NEXT RELEASE !!! Here's our current (not working) attempt to use a proxy's username & password without passing it in the URL. Without this capability we can't browse to HTTPS sites if proxy auth is required: Please help if you can Happy coding!
  22. I downloaded FF.au3 , installed MozRepl, started it, put 4242 as port in it, then when Im trying to run this simple script : #include "FF.au3" _FFConnect(default,Default,6000) _FFWindowOpen("http://www.youtube.com", True, True) The thing is, it actually works, but it is still gives me a very annoying error : What can do ?
  23. I'm trying to create a pretty simple program that checks for a specific string of text on a website every couple of minutes, but I've never worked with hidden browsers before and I'm not sure how to go about doing it. My script's going to follow this basic programming: Open website. Scan for text. If text is found, open alert window. If text isn't found, wait five minutes and scan again. I just want this to actively monitor a website in the background, but up to this point all of my experience is working with visually active, directly engaged windows. I want this program to essentially be invisible until it detects that string of text without interfering with anything else I'm doing. Can someone point me in the right direction?
  24. I recently had issues with the >_FFTableWriteToArray which turned out to be a bug with the function. I am having troubles again, but with a different FF function for the _FFTabSetSelected. The documentation for this function is contained in the attached picture (and below). Again, this is probably on me but I appreciate the help as I can't tell what I am doing wrong. It seems like the first parameter for this function can be a name or index of the tab and the second can be the parameter type. I also assume that if there is only one instance of FF open you can leave _FFWindowSelect() void of parameters and still select a tab. I also expect that if you if the function works it will select the tab and make it the active tab. My problem: the code only works if I manually select that tab. If another tab is selected it will crash. I can't get this function to work. documentation: $vTab (Optional) Label, index (0-n) or keyword: 0 = (default) index (0-n) of the tab. prev = next tab. next = previous tab. first = first tab. last = last tab. $sMode (Optional) Selection mode: index = (default) index (0-n) of the tab. label = Label (RegExp) of the tab. I am trying to use the label as the first parameter. I have tried this approach with the second parameter $name="3Dcart v6.4.1 Store Manager" _FFConnect() _FFWindowSelect() $setTab=_FFTabSetSelected($name,"label") and without $name="3Dcart v6.4.1 Store Manager" _FFConnect() _FFWindowSelect() $setTab=_FFTabSetSelected($name) No joy. Any help would be greatly appreciated.
  25. I am embarrassed to ask this but it is not obvious to me after searching around the forum . I am trying to convert a working IE script to read shipping information from a table in our shopping cart solution to FF. This is the working IE version: Local $oTable = _IETableGetCollection($oIE,20) Local $3dcartShipToTable = _IETableWriteToArray($oTable) I grabbed the ff.au3 UDF and found the thread to replace the "/" in the code. I can start it up etc. Then I found the thread to grab the MozRepl plugin (which I did). However, this code: _ffStart("http://pacebands.3dcartstores.com/admin") MsgBox("","","hold the phone") $ffarray=_FFTableWriteToArray(11) _ArrayDisplay($ffarray) Results in this error: __FFStartProcess: ""C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -new-window "http://pacebands.3dcartstores.com/admin" "-repl 4242 " _FFConnect: OS: WIN_81 WIN32_NT 9600 _FFConnect: AutoIt: 3.3.12.0 _FFConnect: FF.au3: 0.6.0.1b-10 _FFConnect: IP: 127.0.0.1 _FFConnect: Port: 4242 _FFConnect: Delay: 2ms _FFConnect ==> Timeout: TCPConnect Error: 10061 _FFConnect ==> General Error: Timeout: Can not connect to FireFox/MozRepl on: 127.0.0.1:4242 __FFSend ==> Socket Error _FFCmd ==> Error return value _FFTableWriteToArray ==> Invalid value: (INT) $vTable: 11 I am sure this is simple and I am doing something wrong but I am getting a bit lost in all the ff.au3 threads. Can anyone set me straight?
×
×
  • Create New...