Jump to content

Recommended Posts

Posted (edited)

And this showed up.

Welcome to the wonderful world of hidden windows. I find WinLister by Nirsoft a very handy tool for discovering what invisible windows exist. It may help to save you from going crazy if WinExist() or similar functions give unexpected results.

:whistle:

Edited by MHz
Posted

@Mhz thanks, I like Nirsoft and will check that out. A hour or two after this post I bumped into a similar hidden window called autoit3.

AutoIt changed my life.

Posted

@Mhz thanks, I like Nirsoft and will check that out. A hour or two after this post I bumped into a similar hidden window called autoit3.

Every AutoIt3 script creates a hidden window as AutoIt3 is a Gui application. The AutoIt3 titled window is perhaps the hidden window for the AutoIt3 process that you have found.

This will give you the title of the AutoIt3 process window.

WinSetState(AutoitWinGetTitle(), '', @SW_SHOW)
MsgBox(0, '', AutoitWinGetTitle() & ' is shown now')
Posted

I've been toying around with some software to hide and show windows with a hotkey, and ran into the problem of all these hidden windows.

Below is my _HideToggle() func from my experiment, the problem I'm haveing is this.

I really want to be able to allow the user to specify just a partial title. so if they use "Firefox" it works fine but if they use "SciTE" it will detect the hidden interface window first and attempt to hide it. Making it look like the hide didn't work because it hid an already hidden window. Then when I attempt to show the window it shows the hidden interface window.

What I would like to accomplish...

I would like the code below to be able to detect if the window is hidden (I know how to do that) and then goto the next window that also matches the title and see if its hidden, if it is not hidden hide it and get its handle so I can be sure to restore the same window I hid (This second part I have no idea).

$aHiddenList will contain the names of the windows I would like to hide.

#region ;-===- _HideToggle() -===-
Func _HideToggle()
    $HiddenToggle = Not $HiddenToggle
    $i = 0
    While $i < $aHiddenList[0] and $HiddenToggle
        $i = $i + 1
        WinSetState($aHiddenList[$i], "", @SW_Hide)
        Sleep(100)
    WEnd

    While $i < $aHiddenList[0] and Not $HiddenToggle
        $i = $i + 1
        WinSetState($aHiddenList[$i], "", @SW_SHOW)
        Sleep(100)
    WEnd
EndFunc
#endregion ;^^^^ _HideToggle ^^^^

Thanks foryour help!! I can't wait to see what you guys come up with. I've been working on this for quite a wile.

AutoIt changed my life.

Posted

Use a two-dimensional array. $aHiddenList[$i][0] can hold the window title and $aHiddenList[$i][1] can hold the return from WinGetHandle($aHiddenList[$i][0]).

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