Jump to content

Recommended Posts

Posted (edited)

Hello,

I currently have this script that opens three tabs in IE and switches to the next tab every 60 seconds.

The problem is, that when the script is running, multiple open tabs in the Windows explorer or applications (even AutoIt) also switch. This is not the intension of the script. How can I fix this?

Besides showmaximized, is it also possible to show two IE sessions fully maximized (like F11 does)?
 

#include <IE.au3>


; Opens IE with three tabs

$oIE = _IECreate("www.google.nl")
$IEhwnd = _IEPropertyGet($oIE, "hwnd")
__IENavigate($oIE, "http://www.nu.nl", 0, 0x800)
__IENavigate($oIE, "http://www.telegraaf.nl", 0, 0x800)

WinSetState("","",@SW_SHOWMAXIMIZED)


; Tab Loop

While 1
If WinExists($IEhwnd) Then
    WinActivate($IEhwnd)
Else
    ExitLoop
 EndIf


Sleep(5000)
Send("^{TAB}")
WEnd

_IEQuit($oIE)

 

Edited by nomisre
  • Moderators
Posted

Hi, @nomisre, I reproduced the issue you report only when I minimized the IE window, because your script simply Sends and Alt+TAB. I would suggest changing the logic of your loop so that you are doing a WinActivate on the IE window right before you send the Alt+TAB.

"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!

Posted (edited)

 

I was playing with this:

#include <IE.au3>

_Example()
Func _Example()

    ; Opens IE with three tabs
    Local $oIE1 = _IECreate("www.google.nl")
    _IELoadWait($oIE1)
    Local $hwndIE1 = _IEPropertyGet($oIE1, "hwnd")

    __IENavigate($oIE1, "http://www.nu.nl", 0, 0x800)
    _IELoadWait($oIE1)
    Local $oIE2 = Null
    Do
        Sleep(10)
        $oIE2 =_IEAttach('http://www.nu.nl', 'url', 1)
    Until Not @error
    Local $hwndIE2 = _IEPropertyGet($oIE2, "hwnd")

    __IENavigate($oIE1, "http://www.telegraaf.nl", 0, 0x800)
    _IELoadWait($oIE1)
    Local $oIE3 = Null
    Do
        Sleep(10)
        $oIE3 =_IEAttach('http://www.telegraaf.nl', 'url', 1)
    Until Not @error
    Local $hwndIE3 = _IEPropertyGet($oIE3, "hwnd")

    WinActivate($hwndIE1)
    MsgBox(0, 'hwnd=' & IsHWnd($hwndIE1), 1)

    WinActivate($hwndIE2)
    MsgBox(0, 'hwnd=' & IsHWnd($hwndIE2), 2)

    WinActivate($hwndIE3)
    MsgBox(0, 'hwnd=' & IsHWnd($hwndIE3), 3)

    ; all windows handles are the same
    MsgBox(0, 'WinGetTitle', String($hwndIE1) & @CRLF & String($hwndIE2)& @CRLF & String($hwndIE3))

EndFunc   ;==>_Example

 

But this is not working as you can see in the last MsgBox all this IE has the same window handle, basically it was to be expected, but the best was to check and confirm the experience of empirical knowledge.

....... some time later ....... I found this:

http://stackoverflow.com/questions/3924812/how-can-i-select-a-ie-tab-from-its-handle
http://stackoverflow.com/questions/21293367/cycle-through-open-internet-explorer-tabs
ttps://msdn.microsoft.com/en-us/library/windows/desktop/dd318470(v=vs.85).aspx

And now I'm trying to work on it.
But if some could take care of it I would not be angry ;)

EDIT:
feel free to help.

 

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:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted (edited)

This works:

#include <IE.au3>

_Example()
Func _Example()

    ; Opens IE with three tabs
    Local $oIE1 = _IECreate("www.google.nl")
    _IELoadWait($oIE1)
    Local $hwndIE1 = _IEPropertyGet($oIE1, "hwnd")

    __IENavigate($oIE1, "http://www.nu.nl", 0, 0x800)
    _IELoadWait($oIE1)
    Local $oIE2 = Null
    Do
        Sleep(10)
        $oIE2 =_IEAttach('http://www.nu.nl', 'url', 1)
    Until Not @error
    Local $hwndIE2 = _IEPropertyGet($oIE2, "hwnd")

    __IENavigate($oIE1, "http://www.telegraaf.nl", 0, 0x800)
    _IELoadWait($oIE1)
    Local $oIE3 = Null
    Do
        Sleep(10)
        $oIE3 =_IEAttach('http://www.telegraaf.nl', 'url', 1)
    Until Not @error
    Local $hwndIE3 = _IEPropertyGet($oIE3, "hwnd")

    WinActivate($hwndIE1)
    MsgBox(0, 'hwnd=' & IsHWnd($hwndIE1), 1)
    ControlSend("[CLASS:IEFrame]", "", "", "^{Tab}")

    WinActivate($hwndIE2)
    MsgBox(0, 'hwnd=' & IsHWnd($hwndIE2), 2)
    ControlSend("[CLASS:IEFrame]", "", "", "^{Tab}")

    WinActivate($hwndIE3)
    MsgBox(0, 'hwnd=' & IsHWnd($hwndIE3), 3)
    ControlSend("[CLASS:IEFrame]", "", "", "^{Tab}")

    ; all windows handles are the same
    MsgBox(0, 'WinGetTitle', String($hwndIE1) & @CRLF & String($hwndIE2)& @CRLF & String($hwndIE3))

EndFunc   ;==>_Example

But with IE personally I prefer non "SendKeys" solutions.

 

EDIT
some findings:

 

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:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted (edited)
  On 12/4/2015 at 10:50 PM, mLipok said:

 

I was playing with this:

#include <IE.au3>

_Example()
Func _Example()

    ; Opens IE with three tabs
    Local $oIE1 = _IECreate("www.google.nl")
    _IELoadWait($oIE1)
    Local $hwndIE1 = _IEPropertyGet($oIE1, "hwnd")

    __IENavigate($oIE1, "http://www.nu.nl", 0, 0x800)
    _IELoadWait($oIE1)
    Local $oIE2 = Null
    Do
        Sleep(10)
        $oIE2 =_IEAttach('http://www.nu.nl', 'url', 1)
    Until Not @error
    Local $hwndIE2 = _IEPropertyGet($oIE2, "hwnd")

    __IENavigate($oIE1, "http://www.telegraaf.nl", 0, 0x800)
    _IELoadWait($oIE1)
    Local $oIE3 = Null
    Do
        Sleep(10)
        $oIE3 =_IEAttach('http://www.telegraaf.nl', 'url', 1)
    Until Not @error
    Local $hwndIE3 = _IEPropertyGet($oIE3, "hwnd")

    WinActivate($hwndIE1)
    MsgBox(0, 'hwnd=' & IsHWnd($hwndIE1), 1)

    WinActivate($hwndIE2)
    MsgBox(0, 'hwnd=' & IsHWnd($hwndIE2), 2)

    WinActivate($hwndIE3)
    MsgBox(0, 'hwnd=' & IsHWnd($hwndIE3), 3)

    ; all windows handles are the same
    MsgBox(0, 'WinGetTitle', String($hwndIE1) & @CRLF & String($hwndIE2)& @CRLF & String($hwndIE3))

EndFunc   ;==>_Example

 

But this is not working as you can see in the last MsgBox all this IE has the same window handle, basically it was to be expected, but the best was to check and confirm the experience of empirical knowledge.

....... some time later ....... I found this:

http://stackoverflow.com/questions/3924812/how-can-i-select-a-ie-tab-from-its-handle
http://stackoverflow.com/questions/21293367/cycle-through-open-internet-explorer-tabs
ttps://msdn.microsoft.com/en-us/library/windows/desktop/dd318470(v=vs.85).aspx

And now I'm trying to work on it.
But if some could take care of it I would not be angry ;)

EDIT:
feel free to help.

 

May I ask why you put all the message boxes in it?

Edited by nomisre
Posted
  On 12/7/2015 at 8:43 AM, nomisre said:

May I ask why you put all the message boxes in the code?

for tesitng only, and I wanted to be sure that all pages are fully loaded.

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:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted (edited)
  On 12/7/2015 at 8:45 AM, mLipok said:

for tesitng only, and I wanted to be sure that all pages are fully loaded.


Is it possible to run two scripts at the same time that are both showed in full screen? When I try this, there's always one IE session that stays minimized.

Edited by nomisre
Posted (edited)

My script currently looks like this:
 

#include <IE.au3>

; Opens IE with three tabs

Local $oIE1 = _IECreate("www.google.nl")
$IEhwnd = _IEPropertyGet($oIE1, "hwnd")
Local $oIE2 = _IECreate("www.google.nl")
$IEhwnd = _IEPropertyGet($oIE2, "hwnd")
__IENavigate($oIE1, "http://www.nu.nl", 0, 0x800)
__IENavigate($oIE2, "http://www.nu.nl", 0, 0x800)
__IENavigate($oIE1, "http://www.telegraaf.nl", 0, 0x800)
__IENavigate($oIE2, "http://www.telegraaf.nl", 0, 0x800)

Send("{F11}")

; Tab Loop

While 1
If WinExists($IEhwnd) Then
    WinActivate($IEhwnd)
Else
    ExitLoop
 EndIf


Sleep(5000)
Send("^{TAB}")
WEnd

_IEQuit($oIE)


It opens two sessions, one full screen and the other minimized. Is it even possible to get two (or more) full screen sessions?

Edited by nomisre
Posted
_IEPropertySet($oIE,"theatermode")

 

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:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted (edited)
  On 12/7/2015 at 3:52 PM, mLipok said:
_IEPropertySet($oIE,"theatermode")

 

"In theater mode, the browser main window fills the entire screen..."

This means only the first session will be full screen, right? :blink:

Edited by nomisre
Posted

Do you have few monitors ? I ask because only in this way you can see both sesions/instance . 
You was trying to press F11 which switch browser to theatermode

You can use this on both IE instances but you will see only one on one monitor.

If you thought about something other, then you must be more detailed in your questions.

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:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted
  On 12/7/2015 at 4:10 PM, mLipok said:

Do you have few monitors ? I ask because only in this way you can see both sesions/instance . 
You was trying to press F11 which switch browser to theatermode

You can use this on both IE instances but you will see only one on one monitor.

If you thought about something other, then you must be more detailed in your questions.

Yes, I have two monitors. I didn't press F11. The script 'presses' F11 for me.

Posted (edited)
  On 12/7/2015 at 4:13 PM, nomisre said:

Yes, I have two monitors. 

So you want to open this two IE instance on diferent monitors in theatremode ?

 

EDIT:

look here:

https://www.autoitscript.com/forum/topic/82353-dual-monitor-resolution-detection/?do=findComment&comment=590685

 

 

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:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted (edited)
  On 12/7/2015 at 4:15 PM, mLipok said:

So you want to open this two IE instance on diferent monitors in theatremode ?

 

EDIT:

look here:

 

 


I have retrieved the positions as well as the height and width that I need for both IE sessions/windows via this code:
 

; Retrieve the position as well as height and width of the active window.
    Local $aPos = WinGetPos("[ACTIVE]")

    ; Display the array values returned by WinGetPos.
    MsgBox($MB_SYSTEMMODAL, "", "X-Pos: " & $aPos[0] & @CRLF & _
            "Y-Pos: " & $aPos[1] & @CRLF & _
            "Width: " & $aPos[2] & @CRLF & _
            "Height: " & $aPos[3])


The first IE session (on the first monitor) should be positioned as x=0, y=0, w=1280, h=1024.
The second one (on the second monitor) should be x=1280, y=0, w=1280, h=1024.

I only don't understand (yet) how to implement this positions in the code.

Edited by nomisre
Posted
WinMove(...

 

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:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted (edited)
  On 12/9/2015 at 9:24 AM, mLipok said:
WinMove(...

 

 

#include <IE.au3>

; Opens two IE sessions with three example tabs
Local $oIE1 = _IECreate("www.google.nl")
$IEhwnd = _IEPropertyGet($oIE1, "hwnd")
__IENavigate($oIE1, "http://www.nu.nl", 0, 0x800)
__IENavigate($oIE1, "http://www.telegraaf.nl", 0, 0x800)

Local $oIE2 = _IECreate("www.google.nl")
$IEhwnd = _IEPropertyGet($oIE2, "hwnd")
__IENavigate($oIE2, "http://www.nu.nl", 0, 0x800)
__IENavigate($oIE2, "http://www.telegraaf.nl", 0, 0x800)

; Set full screen
Send("{F11}")

; Tab loop
While 1
If WinExists($IEhwnd) Then
    WinActivate($IEhwnd)
Else
    ExitLoop
 EndIf


Sleep(5000)
Send("^{TAB}")
WEnd

_IEQuit($oIE1)
_IEQuit($oIE2)


This is my current code. I have tried putting WinMove(1280,0[,1280[,1024]]) on different places, but still no succes.

Edited by nomisre
Posted

Show how you tried with WinMove

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:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted (edited)
  On 12/9/2015 at 11:36 AM, mLipok said:

Show how you tried with WinMove


I have tried several places (see the asterisks *) with this code. I'm not sure if it's correct, because I see all kinds of different things.

WinMove(1280,0[,1280[,1024]])


The first IE session is already showing full screen. The seconds one is only showing like a third of the screen (same screen), so only this one needs to be moved.
 

#include <IE.au3>

; Opens two IE sessions with three example tabs
Local $oIE1 = _IECreate("www.google.nl")
$IEhwnd = _IEPropertyGet($oIE1, "hwnd")
__IENavigate($oIE1, "http://www.nu.nl", 0, 0x800)
__IENavigate($oIE1, "http://www.telegraaf.nl", 0, 0x800)

Local $oIE2 = _IECreate("www.google.nl")
*1
$IEhwnd = _IEPropertyGet($oIE2, "hwnd")
__IENavigate($oIE2, "http://www.nu.nl", 0, 0x800)
__IENavigate($oIE2, "http://www.telegraaf.nl", 0, 0x800)


*2

; Set full screen
Send("{F11}")


; Tab loop
While 1
If WinExists($IEhwnd) Then
    WinActivate($IEhwnd)
Else
    ExitLoop
 EndIf


Sleep(5000)
Send("^{TAB}")
WEnd

_IEQuit($oIE1)
_IEQuit($oIE2)

 

Edited by nomisre

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
  • Recently Browsing   0 members

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