Jump to content

How to detach from _IEAttach ?


tonycst
 Share

Recommended Posts

If attached _IEAttach closes, script exits with <IE.au3> related error

Is there a way to detach ?

_IEQuit ( ByRef $oObject ) is not good. It will close the internet browser and i dont want that. I just want to detach from it so my script wont crash if attached window closes or disappears.

 

Thanks

Link to comment
Share on other sites

1 hour ago, tonycst said:

I just want to detach from it so my script wont crash if attached window closes or disappears.

Whether this happend to you ?

How this look like ?

Edited by mLipok

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

Link to comment
Share on other sites

#include <IE.au3>
FileInstall("BeepError.mp3", @TempDir & "\BeepError.mp3", 1)
FileInstall("Beep.mp3", @TempDir & "\Beep.mp3", 1)
Opt("TrayMenuMode", 0)
Opt("TrayOnEventMode", 1) ;to go to function on click
Opt("TrayAutoPause", 0)
Opt("WinTitleMatchMode", 2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase

Global $BeepSound = @TempDir & "\Beep.mp3" ;using same sounds from beeper
Global $BeepError = @TempDir & "\BeepError.mp3" ;using same sounds from beeper
Global $Ini = @DesktopDir & "\Beeper.ini"
$TransferWin = IniRead($Ini, "BeeperSettings", "Transfer_WindowName", "")
$ErrorWinTitle = IniRead($Ini, "BeeperSettings", "Warning_WindowText3", "") ;aknowledge shavers message

$NewLoad = IniRead($Ini, "BeeperSettings", "NewLoadCreation_WindowName", "")
$Transfer = IniRead($Ini, "BeeperSettings", "Transfer_WindowName", "")
$Decontam = IniRead($Ini, "BeeperSettings", "Decontam_WindowName", "")
$WorkingWindowTitle = ""
If WinExists($NewLoad) = 1 Then Assign("WorkingWindowTitle", $NewLoad)
If WinExists($Transfer) = 1 Then Assign("WorkingWindowTitle", $Transfer)
If WinExists($Decontam) = 1 Then Assign("WorkingWindowTitle", $Decontam)
If $WorkingWindowTitle = "" Then
    MsgBox (16,"Error","No WorkingWindowTitle detected. Possibly due to incorrect IE settings in the Beeper.ini")
    Exit
EndIf
$IE = _IEAttach($WorkingWindowTitle, "Title")
ConsoleWrite(@CRLF & "Window attached. Loop>Waiting window to become busy")
While 1
    If $IE = @error Then
        ExitLoop
    Else
        If WinExists($WorkingWindowTitle) = 0 Then ExitLoop
        If _IEPropertyGet($IE, "busy") = 1 Then
            If WinExists($WorkingWindowTitle) = 0 Then Exit ;exit before crush occures inside loadwait function.
            $Wait = _IELoadWait($IE);not sure if timeout solves the crash
            If $Wait = 1 Then
                ConsoleWrite(@CRLF & "_IELoadWait passed. BEEP is next.")
                SoundPlay($BeepSound,1)
            EndIf
        EndIf
    EndIf
    If WinExists ($ErrorWinTitle) = 1 Then _BeeperCloseErrorWindow()
WEnd
Func _BeeperCloseErrorWindow()
    SoundPlay($BeepError, 1)
EndFunc   ;==>_BeeperCloseErrorWindow

I do attach before the loop

In the loop i constantly monitor page busy status so i can play a sound every time page refreshes and loads.

This is for inventory receiving. Each item received updates the page, so i monitor the page to get busy and loaded so i know it was updated.

As soon as the page Title changes or window closes, script crashes because _IEPropertyGet($IE, "busy") does not get any value from $IE = _IEAttach($WorkingWindowTitle, "Title").

 

I dont think i want to run $IE = _IEAttach($WorkingWindowTitle, "Title") in the same loop, do i ?

Link to comment
Share on other sites

after you make that call to wait, don't you need to check for @error > 0, see the help file for return codes

https://www.autoitscript.com/autoit3/docs/libfunctions/_IEPropertyGet.htm

https://www.autoitscript.com/autoit3/docs/libfunctions/_IELoadWait.htm

check and post msgbox for errors and post back with what you find

and maybe you do want that inside the loop. I can't test to find out, but you would break if error, else attach.

Edited by Earthshine

My resources are limited. You must ask the right questions

 

Link to comment
Share on other sites

I dont know how to use @error :( sorry. Its response would not matter to me anyway.
All i know is that $Wait = _IELoadWait($IE) crashes because attached $IE = _IEAttach("Transfer", "Title") no longer exist. It cant check none existent page. Adding exitloop before _IELoadWait, but once _IELoadWait started to wait, not much i can do.

 

 

I found another issue that prevents me from getting this script to work as expected.

I found that the error messages that pop on the screen (from the web page) i am trying to close, show up AFTER page is fully loaded.

Those messages pop in the middle of page loading process.

So when i use $Wait = _IELoadWait($IE), script is paused and waiting for the page to load. Its before the page loaded i get those warning and now i have no idea how to get the $Wait = _IELoadWait($IE) to work in a loop rather then pausing the script.

 

 

So i guess what i need is to figure out how to check for page from becoming busy to done (done loading) in a loop without pausing the script with  _IELoadWait($IE).
Is it even possible ?

Here is what i have.

$IE = _IEAttach($WorkingWindowTitle, "Title")
While 1
    If WinExists($WorkingWindowTitle) = 0 Then Exit ;exit before crush occures inside loadwait function.
    If _IEPropertyGet($IE, "busy") = 1 And _IELoadWait($IE) = 1 Then ;Page went into loading something
        ConsoleWrite(@CRLF & "_IELoadWait passed. BEEP is next.")
        SoundPlay($BeepSound,1)
    EndIf
WEnd

I get a messages from the page in the middle of page loading, so i cant detect that window and close it because script at that point is stuck waiting for page to load completely.

Any way to catch error messages that pop on the screen while page is not yet loaded ?

 

Edited by tonycst
Link to comment
Share on other sites

Did you read:
How to use IE.au3  UDF with  AutoIt v3.3.14.x * 

Do you use COM Error Handler ?

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

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...