Jump to content

Wanted something like expose


Beomagi
 Share

Recommended Posts

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
Link to comment
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.

Link to comment
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?

Link to comment
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?

Link to comment
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 ;-)

Link to comment
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.
Link to comment
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
 Share

  • Recently Browsing   0 members

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