Jump to content

Recommended Posts

Posted (edited)

I have come across a weird issue that I am not sure how to solve. For some reason, whenever I call WinActivate in certain scenarios instead of opening the single window that already exists, it will create a new blank tab. It should be able to be recreated with this:

AutoItSetOption("WinTitleMatchMode", 2)

Sleep(1000)

For $i=0 To 10
    WinActivate("Internet Explorer")
Next

I am not actually doing this in my code, it is just to demonstrate the fact that new tabs keep popping up. Does anyone know why this happens?

 

EDIT: So I am not sure how reproducible this is, because it only happens every once in a while for me. I will update with more info if I find out anything.

Edited by anthonyjr2

UHJvZmVzc2lvbmFsIENvbXB1dGVyZXI=

Posted

I am using the IE UDF with an _IEAttach(). This problem occurs when I eventually want to switch back to the IE window from another program on my computer. Instead of going to my already-created tab it decides to create a blank new one.

UHJvZmVzc2lvbmFsIENvbXB1dGVyZXI=

Posted

Why should we get a new tab in IE when we just want to activate the window (independant of the application)?
Could this be a bug?

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Posted
1 minute ago, water said:

Could this be a bug?

It is possible. Did the issue happen to you when you ran my example code in my first post? I thought it was very strange that it opened a new tab as well.

UHJvZmVzc2lvbmFsIENvbXB1dGVyZXI=

Posted

I was running your modified code:

#include <Array.au3>
AutoItSetOption("WinTitleMatchMode", 2)
$aArray = WinList("Internet Explorer")
_ArrayDisplay($aArray)
$RC = WinActivate("Internet Explorer")
MsgBox(0, "", $RC & "-" & @error & "-" & @extended)
Exit

and it happened 1 out of 5 to 10 times.
I wonder why WinList returns much more Windows (even one empty tab) when I do not get some of them in the task bar.
Windows 7 with IE11.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Posted

I'm on Windows 10 with IE11. The other weird thing is that it doesn't seem to ever open more than one new tab, even running it for 30+ iterations. Is there any way to see the source code of built-in functions such as WinActivate? They wouldn't be in the Include folder or anything. This bug basically makes it impossible to run one of my programs I've been working on, so I'll be adamant in trying to find a solution.

UHJvZmVzc2lvbmFsIENvbXB1dGVyZXI=

Posted

You could run WinList, grab the needed window and use WinActivate passing the Window handle from Winlist.
Drop

AutoItSetOption("WinTitleMatchMode", 2)

then.
Maybe IE creates hidden tabs (which get displayed by WinList). When using substring to match window titles the hidden tab gets selected and displayed by accident :huh:
 

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Posted

You could totally be right about the hidden tabs thing. I will try dropping the substring match and see how it works. It's just slightly more inconvenient ;)

Although I definitely think it is an interesting bug.

UHJvZmVzc2lvbmFsIENvbXB1dGVyZXI=

Posted

I think it is the better solution as you activate the different IE windows in a controlled manner :)
Even when it takes two minutes more to code ;)

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Posted
16 hours ago, anthonyjr2 said:

I am using the IE UDF with an _IEAttach(). This problem occurs when I eventually want to switch back to the IE window from another program on my computer. Instead of going to my already-created tab it decides to create a blank new one.

IEAtach will attach to any IE window - no matter who created them. I dont understand why you need to use WinActivate for that !

Posted
5 hours ago, Juvigy said:

I dont understand why you need to use WinActivate for that

Because I am switching between other programs other than IE. So I need to eventually go back to the IE window. This has nothing to do with the IE UDF or _IEAttach at all.

UHJvZmVzc2lvbmFsIENvbXB1dGVyZXI=

Posted

I still dont get it. You can switch between programs and still after that you can use IEAtach to attach to the IE window. Use winactivate to activate other programs , but for switching to IE use the IE UDF.

Posted

Because I have already attached to the window once in the beginning of the script. There is no reason for me to attach to the window every time I want to bring it to the front and make it active again when I already have the handle from the first attach. As I stated earlier I am already using the IE UDF, the problem I was having has nothing to do with that.

UHJvZmVzc2lvbmFsIENvbXB1dGVyZXI=

Posted (edited)

That works fine, the only issue is that I need to do some OCR on the window, which is why I need it to be the topmost window. Otherwise yeah I could just perform actions without it being active.

I realize that this is getting slightly off topic. In any case my problem is basically resolved after dropping WinTitleMatchMode = 2, I just had to be more specific in the WinActivate. This definitely makes me think that water was correct in his assumption about the blank hidden IE windows.

Edited by anthonyjr2

UHJvZmVzc2lvbmFsIENvbXB1dGVyZXI=

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
×
×
  • Create New...