How to close _ArrayDisplay()
's window using AutoIt script itself? I tried WinClose()
:
_ArrayDisplay($aarray,"sometitle")
; do some stuff
Winclose("sometitle")
Sleep(1000)
_ArrayDisplay($barray,"anothertitle")
but fails (previous window doesn't get closed and next window doesn't appear). So I tried WinKill()
:
_ArrayDisplay($aarray,"sometitle")
; do some stuff
Winkill("sometitle")
Sleep(1000)
_ArrayDisplay($barray,"anothertitle")
then previous window is closed, but the next window never appears. It seems Winkill()
killed all _ArrayDisplay()
instances. Other attempts :
_ArrayDisplay($aarray,"sometitle")
; do some stuff
While WinExists("sometitle")
Winclose("sometitle")
Sleep(100)
WEnd
Sleep(1000)
_ArrayDisplay($barray,"anothertitle")
And:
_Arraydisplay($aarray,"sometitle")
; do some stuff
WinActivate("sometitle")
While WinExists("sometitle")
Send("!{F4}"
Sleep(100)
WEnd
Sleep(1000)
_Arraydisplay($barray,"anothertitle")
I also tried Send()
using "!{F4}"
and "{ALTDOWN}{SPACE DOWN}c{ALTUP}{SPACE UP}"
. All fail to close previous _ArrayDisplay()
window. How to make this work?
#include <array.au3>
Global $aarray[1]
Global $barray[1]
AdlibRegister('_Closer')
_Arraydisplay($aarray, 'sometitle')
Sleep(1000)
_Arraydisplay($barray, 'anothertitle')
Func _Closer()
If WinExists('sometitle') Then
WinClose('sometitle')
AdlibUnRegister('_Closer')
EndIf
EndFunc
_ArrayDisplay is a Gui which uses a message loop. The script remains in the loop until an event allows an exit from the loop.
One concept of doing an action while looping is to register a function using AdlibRegister. The _Closer function registered above will be called every 250 milliseconds until AdlibUnRegister can stop the function from being called.