Sign in to follow this  
Followers 0
Beomagi

Wanted something like expose

10 posts in this topic

#1 ·  Posted (edited)

Dunno how many of you tried expose clones in windows, but they're buggy - some windows get a black image instead of actual windows image - the fault is in the os though.

What this does

When you press win+'x' all windows fade to transparency, and a "win picker" window pops up, listing all open windows.

mouse over a title, fades from transparent to opaque, letting you see what it is, clicking on it activates, and resets the transparency of all windows to normal.

edit - reset trans to 255 instead of 254

edit - doesnt flash black windows anymore

edit - added winpickerLE for really slow systems that dont like transparency (computer at work is a p3 600)

WinPicker.au3

WinPickerLE.au3

Edited by Beomagi

Share this post


Link to post
Share on other sites



very nice! ;)


[right][font="Courier New"]...Run these streets all day, I can sleep when I die.[/font] [/right]

Share this post


Link to post
Share on other sites

Welcome to the forums!

This is a fantastic idea. I have uncovered one small problem though: if you click another surface while the WinPicker window is open, the script errors out:

Line 46 (File "WinPicker.au3"):

if (($mxy[0] > 0) AND ($mxy[0] < 400)) Then

if (($mxy^ ERROR

Error: Subscript used with non-Array variable.

Share this post


Link to post
Share on other sites

Welcome to the forums!

This is a fantastic idea. I have uncovered one small problem though: if you click another surface while the WinPicker window is open, the script errors out:

<{POST_SNAPBACK}>

cant get it to error out

Do you have any "special" windows open?

see anything wrong with the code? $mxy[0] shold be nothing more than the x coordinate. how about if it's declared before setting mxy?

Share this post


Link to post
Share on other sites

Doesn't work for me. The windows all go transparent, but clicking on windows doesn't do anything. When I killed the script from the tray the windows stayed transparent.

I believe OnAutoItExit in the beta can be used to tray exiting and you could return all windows to their previous transparency.


My UDFs: ExitCodes

Share this post


Link to post
Share on other sites

Doesn't work for me.  The windows all go transparent, but clicking on windows doesn't do anything.  When I killed the script from the tray the windows stayed transparent.

I believe OnAutoItExit in the beta can be used to tray exiting and you could return all windows to their previous transparency.

<{POST_SNAPBACK}>

thanks for the function name

You're suppossed to click on a label of the window in the popup, not the window itself. closing the popup would also reset the transparency/

onautoit exit doesn't have a similar function in the regular version does it?

Share this post


Link to post
Share on other sites

I got a snag here :">

It seems you collect process name and in the the case of my source editor ( Source Edit) you put 2 entries into your popup.

Source Edit - [blabla.au3]

Source Edit

...

Source Editor is a MDI application.

If I select the first entry everything work fine,

if I select the second your application seems to freeze and if I force it to close every thing stay transparent ....

it also seems to have problem with minimized applications, so like my thrusmaster utility bar (joystick automaticly loaded application ) they are also listed

:-)

But... it is a good start ;-)

Share this post


Link to post
Share on other sites

I got a snag here  :">

It seems you collect process name and in the the case of my source editor ( Source Edit)  you put 2 entries into your popup.

Source Edit - [blabla.au3]

Source Edit

...

Source Editor is a MDI application.

If I select the first entry everything work fine,

if I select the second your application seems to freeze and  if I force it to close every thing stay transparent .... 

it also seems to have problem with minimized applications, so like my thrusmaster utility bar (joystick automaticly loaded application )  they are also listed

:-)

But...  it is a good start ;-)

<{POST_SNAPBACK}>

;) thanks

sometimes the program seens to accept when gui msg=0, which is weird since that's no event, so that stopped some bugs.

i removed the winwaitactive - so in case of a handle change, or window closing, the script wont pause there.

For $i = 1 To $num; loop to iterate over windows
            If ($msg = $cidl[$i]) and ($msg <> 0) Then; if clicked 
                WinWait($winh[$i], "")
                $temp = WinGetState($winh[$i])
                If BitAnd($temp, 16) Then
                    WinSetState($temp, "", @SW_RESTORE)
                EndIf
                If Not WinActive($winh[$i], "") Then WinActivate($winh[$i], "")
                $chosen = $i
            ;WinWaitActive($winh[$i], "")
                $leaveit = 1
            EndIf;end of if clicked
        Next;end of window iterate loop
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
        If $leaveit Then ExitLoop

also added a "flush" on msgs sent to the gui at start.

dim $msg[5]
    $msg[0] = 0
    $msg[1] = 0
    $msg[2] = 0
    $msg[3] = 0
    $msg[4] = 0
    $msg = GUIGetMsg($mainwin)
    while Not $msg;flush gui msg buffer
        $msg = GUIGetMsg($mainwin)
    WEnd

and that new variable in the first block, just before the commented winwaitactive, is used again to activate at the end of the function.

If Not WinActive($winh[$chosen], "") Then WinActivate($winh[$chosen], "")   
EndFunc  ;==>winpickermain

testing this at work - and making a winpicker-lite version, without transparency, but using sw_hide and sw_show.

Share this post


Link to post
Share on other sites

added a "lite" edition version for slower computers. working the bugs of general window management out on this, then will add back transparency.

Share this post


Link to post
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
Sign in to follow this  
Followers 0