Jump to content

portable internet explorer?


Gianni
 Share

Recommended Posts

Sometime I notice that a script making use of the ie.au3 functions and that it correctly works on a PC, has issues on another PC with the same os and the same version of ie; it seems that some compatibility settings of ie makes the difference (and maybe some other unknown user setting).
Since it's not a good idea impose a particular setting just to make my script run without problems, I was wondering if it exists some "portable" version of internet explorer, so to be able to make my script use that particular portable version regardless of what version and what settings are on any pc.
any suggestion is welcome.
thanks

 

image.jpeg.9f1a974c98e9f77d824b358729b089b0.jpeg Chimp

small minds discuss people average minds discuss events great minds discuss ideas.... and use AutoIt....

Link to comment
Share on other sites

Search portablefreeware.com

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

i believe you are going about it the wrong way.

IE being a core part of Windows since Windows 98, so running another version of IE, although possible, is prone to issues, and never is "portable". some IE packages can utilize DLL redirection to trap requests aimed at IE to the DLL of another IE; that still requires installation. start your reading here or here. i think you'll find this method both overhead and unreliable a solution for your requirements.

what i would do if i were you:

analyze what exactly is the function in your script that requires IE and exhibits the dependency issue you encounter. then, characterize the success and failure conditions, and see what are the prerequisites and conditions for this function to work. finally you can decide if you want to alert users if their IE settings are incompatible, enforce these settings yourself, or just use another browser altogether  :)

Signature - my forum contributions:

Spoiler

UDF:

LFN - support for long file names (over 260 characters)

InputImpose - impose valid characters in an input control

TimeConvert - convert UTC to/from local time and/or reformat the string representation

AMF - accept multiple files from Windows Explorer context menu

DateDuration -  literal description of the difference between given dates

Apps:

Touch - set the "modified" timestamp of a file to current time

Show For Files - tray menu to show/hide files extensions, hidden & system files, and selection checkboxes

SPDiff - Single-Pane Text Diff

 

Link to comment
Share on other sites

  • Moderators

so running another version of IE, although possible, is prone to issues, and never is "portable".

 

I would disagree. I have used virtualization suites (VMWare ThinApp on the paid side and Cameyo on the freeware side) to encapsulate IE, and have found it very portable. In one instance, I virtualized IE6 with Java 1.3.1_08 for a company that had an old web app they must still support. They are still using this today, even after a move to Windows 7, with no issues.

I also virtualized IE on a Windows 7 machine where we were trying to track down performance issues on a web application. I had IE 8, 9, 10 and 11 all running on the same machine at the same time, all with different java versions.

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

Link to comment
Share on other sites

i cant think any 3rd party version would be legit as distro of windows .dlls is strictly verboten.  Just tools to help you roll your own, as JLogan mentioned.

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

One question, do you mean IE as in the interface or Trident, which is the rendering engine? As my link is still valid if you want to find browsers that use the Trident engine.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Thanks all for the answers

In short the strange problem I experienced is like this:

1) I need to get data from several sites and then assemble data in a single report.

2) instead of getting data from each site one at time, (that takes longer time) I thought to "parallelize" the data collection

    by running more instances of explorer at once and then get data from the loaded pages (this way reduces waiting time).

I used a code similar to this (it runs more browser instances):

Func LoadData($aQuery)
    Local $n = UBound($aQuery), $oIE[$n], $AllReady
    For $i = 1 To $n - 1
        $oIE[$i] = _IECreate("https://MySite/search_info.asp?txt=" & $aQuery[$i] & "&do=Search", 0, 0, 0)
    Next

    Do
        ; Wait for "ready" state of all IE. (Ready code nr. 4)
        $AllReady = 0
        Sleep(1000) ; give browsers some time to load data
        For $i = 1 To $n
            $AllReady += _IEPropertyGet($oIE[$i], "readystate") = 4 ; 4 means "ready" finished to load page
        Next
    Until $AllReady = $n
    Return $oIE ; return pointers to browsers that are all loaded with data now
EndFunc   ;==>LoadData

well, here is the problem, on some computers this approach works well, that is: browsers runs hidden and when all pages are loaded, the script goes ahead to get data from all pages already loaded.
While on other computers, running exactly the same script,  all browsers run in visible state, and screen get filled with them all. The main script also freezes and I have to logout to close all the browsers and reset the user session to a normal state.

(I'm not sure if my thought (just a thought) to use an "encapsuled" browser (that should also be compatible with the IE.AU3 library) in the hope to have the same behaviour of the script on different computers with different settings of the installed local browser, is a good direction. Perhaps I'm walking on a dangerous ground where a possible solution could be worst than the initial problem...

anyway thanks to all for the interesting suggestions.

p.s.
@JLogan3o13
I had a look to the Cameyo sw, I like it!

@guinness
Trident sounds interesting. I didn't know  of his existence

(could it be used directly within AutoIt instead of the IE frontend? and maybe together with IE.AU3?)

 

image.jpeg.9f1a974c98e9f77d824b358729b089b0.jpeg Chimp

small minds discuss people average minds discuss events great minds discuss ideas.... and use AutoIt....

Link to comment
Share on other sites

Another thought, if you want to avoid all of the on-screen browser windows, and if you do not need to interact with Java or Flash on the pages. You could use wget (http://gnuwin32.sourceforge.net/packages/wget.htm) to download the pages you need, and process them without needing to have any of it on the user's screen.

Edited by willichan
Link to comment
Share on other sites

Thanks willichan
normally all of the on-screen browser windows are not displayed because of the third parameter set to 0 on the _IeCreate() function:

$oIE[$i] = _IECreate("https://MySite/search_info.asp?txt=" & $aQuery[$i] & "&do=Search", 0, 0, 0)

unluckily on some computers this parameter is ignored, causing the "overload" of browsers displayed on the screen.
The idea to download the web page with wget (or even better with InetRead()) avoiding the use of the browser,

could be a solution, but, in this way I will be on my own to extract the data from the tables because the loss of the possibility

of use the _IETableWriteToArray function... (I do intensive use of this function in my script :() and all _IE* functions as well.
I do not think it's an easy task extract the content of the tables from an raw html page.. :think:

Edit:

>here a way to extract table content from html tables (it makes no use of any browser)

Edited by Chimp

 

image.jpeg.9f1a974c98e9f77d824b358729b089b0.jpeg Chimp

small minds discuss people average minds discuss events great minds discuss ideas.... and use AutoIt....

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...