diel2002 Posted November 4, 2019 Share Posted November 4, 2019 (edited) Hello, i search in the forum and on search-engines and i tried all of the tips i found, but nothing works. Maybe anyone of you could help me with all my problems. My scripts runs on win8 and IE 10 and now i will upgrade to win 10. My autoit versions: 3.3.10.1 3.3.12.* 3.3.14.5 I tried to deactivated the windows defender. i tried to deactivate the uac. I tried to uninstall the avast. I tried this in the files ;#RequireAdmin ;$hIE = _IEPropertyGet($oIE, "hwnd") ;WinActivate($hIE) ;$oIE.navigate($sUrl) ;_IEErrorHandlerRegister(_User_ErrFunc) ;Opt("TrayAutoPause",0) ;Opt("TrayMenuMode",1) ; no default menu (Paused/Exit) here my call in the command line: 1."C:\Program Files (x86)\AutoIt3\AutoIt3_x64.exe" "C:\...\openBrowserWin10.au3" https://www.google.com 2. "C:\Program Files (x86)\AutoIt3\AutoIt3_x64.exe" "C:\...\getAmznVoucherSrc.au3" 6300 //the pid from ie here are my source: openBrowser.au3 expandcollapse popup#cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.6.0 Author: myName Script Function: Template AutoIt script. #ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here #include <../api/incl.au3> $sUrl = $CmdLine[1] $iPid = _OpenNewBrowserWithNewSessionWin10() Sleep(2000) $oIE = _GetBrowserByPid($iPid) Sleep(2000) _IENavigate($oIE, $sUrl, 1) Sleep(2000) ConsoleWrite ('pid='& $iPid & @CRLF) Func _OpenNewBrowserWithNewSessionWin10() Local $aWinList_Before = WinList("[CLASS:IEFrame]") Run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe -noframemerging -private https://www.google.com") Do $aWinList_After = WinList("[CLASS:IEFrame]") Until $aWinList_After[0][0] > $aWinList_Before[0][0] Local $hwnd = $aWinList_After[1][1] Local $iPid = WinGetProcess($hwnd) Sleep(2000) Local $oIE = _GetBrowserByPid($iPid) _IELoadWait($oIE) Return $iPid EndFunc Func _GetBrowserByPid($iPid) If ProcessExists($iPid) = 0 Then Return null EndIf Local $oIE While 1 $aWinList = WinList("[CLASS:IEFrame]") For $i = 1 To $aWinList[0][0] $iPid2 = WinGetProcess($aWinList[$i][1]) ;ConsoleWrite ('pid2='& $iPid2 & @CRLF) If BitAND( WinGetState($aWinList[$i][1]), 15) AND $iPid = $iPid2 Then $oIE = _IEAttach($aWinList[$i][1], "hwnd") ExitLoop 2 EndIf Next WEnd Return $oIE EndFunc getAmznVoucherSrc.au3 expandcollapse popup#cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.6.0 Author: myName Script Function: Template AutoIt script. #ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here #include <../api/incl.au3> $ibrowserPid = $CmdLine[1] $oIE = _GetBrowserByPid($ibrowserPid) $sUrl = "https://www.amazon.de/b?node=6005495031" _IENavigate($oIE,$sUrl) Sleep(2000) $linkPart = "Beliebteste Coupons" Local $i = 0 Local $tags = null Do _IELinkClickByText($oIE, $linkPart) _IELoadWait($oIE) Sleep(10000) $tags = $oIE.document.GetElementsByClassName("vpc_coupon_grid_get_more_coupons") $i += 1 Until $i > 5 OR (Not @error And $tags.length > 0) If Not @error Then $foundTag = $tags(0) For $i=1 To 10 _IEAction($foundTag, "focus") _IEAction($foundTag, "click") _IELoadWait($oIE) Sleep(10000) Next $couponGrid = $oIE.document.GetElementsByClassName("vpc_coupon_grid_inner_grid") ConsoleWrite ($couponGrid(0).innerHTML) EndIf Func _GetBrowserByPid($iPid) If ProcessExists($iPid) = 0 Then Return null EndIf Local $oIE While 1 $aWinList = WinList("[CLASS:IEFrame]") For $i = 1 To $aWinList[0][0] $iPid2 = WinGetProcess($aWinList[$i][1]) ;ConsoleWrite ('pid2='& $iPid2 & @CRLF) If BitAND( WinGetState($aWinList[$i][1]), 15) AND $iPid = $iPid2 Then $oIE = _IEAttach($aWinList[$i][1], "hwnd") ExitLoop 2 EndIf Next WEnd Return $oIE EndFunc I hope i give you enough information and you can give me a hint to fix it. Edited November 4, 2019 by diel2002 Link to comment Share on other sites More sharing options...
diel2002 Posted November 5, 2019 Author Share Posted November 5, 2019 (edited) Now I tried it with autoit 3.3.14.5 and open a new tab and closed the other. And it works. But i think that i get the problems again. I make another test and i got the same problem. Ie.navigate seems to be the problem. Could it be that the tab is killed or in sleep modus? Has anybody an idea? Edited November 5, 2019 by diel2002 Link to comment Share on other sites More sharing options...
Nine Posted November 6, 2019 Share Posted November 6, 2019 I just took a look at your code in openBrowser.au3. It is kind of odd. In the first function you search for handle that will bring you to the pid. And in the second you search a handle based a pid, while in the first function you already had that handle. How about streamlining your code like in the following : #include <IE.au3> Local $oIE = _OpenNewBrowser() _IENavigate ($oIE, "amazon.ca") _IELoadWait ($oIE) Func _OpenNewBrowser() Local $aPid = ProcessList ("iexplore.exe") Run (@ProgramFilesDir & "\Internet Explorer\iexplore.exe -noframemerging -private https://www.google.com") Sleep (5000) Local $aWin = WinList("[CLASS:IEFrame]"), $bFound = False For $i = 1 To $aWin[0][0] For $j = 1 to $aPid[0][0] If WinGetProcess($aWin[$i][1]) = $aPid[$j][1] Then ContinueLoop 2 Next Local $hwnd = $aWin[$i][1] $bFound = True ExitLoop Next If Not $bFound Then Exit MsgBox($MB_SYSTEMMODAL, "", "Unable to find IE handle") Local $oIEatt = _IEAttach($hwnd, "hwnd") If @error Then Exit MsgBox ($MB_SYSTEMMODAL,"","Unable to attach IE") Return $oIEatt EndFunc ;==>_OpenNewBrowser “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
diel2002 Posted November 7, 2019 Author Share Posted November 7, 2019 (edited) @Nine Thank you for you reply. But my code to get the right pid works. In Win 10 it is different. It exists a parent and a child process. It was a long search period to get the right code that it works and i can get the right pid for the ie. it seems that the tab stops responding after some time and therefore i can not navigate anymore. Edited November 7, 2019 by diel2002 Link to comment Share on other sites More sharing options...
Nine Posted November 7, 2019 Share Posted November 7, 2019 Yes I tested my code on win10 and it works great. Have you tested it ? I think it is more comprehensive. But you may prefer yours. If navigate stop working after awhile, try to run your script using x64 “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
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