Jump to content
Sign in to follow this  
Envoi

Call the "Please Wait" window

Recommended Posts

Envoi

Sorry for the post. I am usually pretty good at finding a solution in other posts or by Googling.

I'd like to find a way to call the "Please Wait" window that fades the desktop to gray in WinXP. It displays at specific times when you make changes to your system (ie changing your theme).

I've trapped this from the Autoit Window Info tool:

----------------------------------------------------------

>>>> Window <<<<

Title:

Class: CoverWindowClass

Position: 0, 0

Size: 2304, 1024

Style: 0x9E000000

ExStyle: 0x00000008

>>>> Control <<<<

Class: PleaseWaitWindowClass

Instance: 1

ClassnameNN: PleaseWaitWindowClass1

----------------------------------------------------------

but I have yet to find a way to use that information to call this window programmatically.

Please don't post "the answer." I enjoy the challenge. I just seem to have hit a brick wall. I've "RTFM" :P , I've tried looking at Run32.dll commands and VB.net APIs but, to no avail. If someone out there could just point me in another direction, I'd appreciate it.

Thanks ahead of time,

--Kris

Share this post


Link to post
Share on other sites
Monamo

Sorry for the post. I am usually pretty good at finding a solution in other posts or by Googling.

I'd like to find a way to call the "Please Wait" window that fades the desktop to gray in WinXP. It displays at specific times when you make changes to your system (ie changing your theme).

I've trapped this from the Autoit Window Info tool:

----------------------------------------------------------

>>>> Window <<<<

Title:

Class: CoverWindowClass

Position: 0, 0

Size: 2304, 1024

Style: 0x9E000000

ExStyle: 0x00000008

>>>> Control <<<<

Class: PleaseWaitWindowClass

Instance: 1

ClassnameNN: PleaseWaitWindowClass1

----------------------------------------------------------

but I have yet to find a way to use that information to call this window programmatically.

Please don't post "the answer." I enjoy the challenge. I just seem to have hit a brick wall. I've "RTFM" :P , I've tried looking at Run32.dll commands and VB.net APIs but, to no avail. If someone out there could just point me in another direction, I'd appreciate it.

Thanks ahead of time,

--Kris

Found a C# custom example that may be of use to you. I've looked high and low for this within DLLs and still haven't noted where this function is being called from or what the function name is.


- MoChr(77)& Chr(97)& Chr(100)& Chr(101)& Chr(32)& Chr(121)& Chr(97)& Chr(32)& Chr(108)& Chr(111)& Chr(111)& Chr(107)-------I've told you 100,000 times not to exaggerate!-------Don't make me hit you with my cigarette hand...-------My scripts:Random Episode Selector, Keyboard MouseMover, CopyPath v2.1, SmartRename for XP,Window Tracer[sup]New![/sup]

Share this post


Link to post
Share on other sites
Envoi

Found a C# custom example that may be of use to you. I've looked high and low for this within DLLs and still haven't noted where this function is being called from or what the function name is.

Thanks for the post!! Unfortunately, I've looked at that already. It's not really what I'm looking for. Though it's cool if you want to customize the modal window, I don't really want to re-invent the wheel here. I'd be fine with just using the default "Please Wait" window.

It's curious that no one (at least no one who's shared) has been able to find out how to trigger this event. I know I'm not the only one who has been searching for this (see this sad post).

Unlucky for me, I'm the type of person to lose sleep over an unanswered question. :P

Rest assured, I will let you all know when/if I find an answer. Like it or not. ;)

--Kris

Share this post


Link to post
Share on other sites
Emiel Wieldraaijer

You don't mean something like this ?

#include <GUIConstants.au3>

$GUI = GUICreate("title", 300,200)
GUISetState(@SW_SHOW)

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case $GUI_EVENT_CLOSE
            ExitLoop

    EndSwitch
WEnd
for $i = 250 To 0 Step -1
    WinSetTrans ( "title", "", $i )
Next

Best regards,Emiel Wieldraaijer

Share this post


Link to post
Share on other sites
Envoi

You don't mean something like this ?

#include <GUIConstants.au3>

$GUI = GUICreate("title", 300,200)
GUISetState(@SW_SHOW)

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case $GUI_EVENT_CLOSE
            ExitLoop

    EndSwitch
WEnd
for $i = 250 To 0 Step -1
    WinSetTrans ( "title", "", $i )
Next
No sorry. Thanks for the post though.

If I haven't explained myself clearly enough, this should help:

Do this if you have WinXP:

Go to your Display Properties -> Appearance tab -> Color scheme drop-down.

Choose an option different from what you currently use, click Apply.

Take note to the "Please Wait" window that appears while your desktop slowly fades to gray.

This is the effect I want to trigger. I was hoping to find something like - WinOpen("[CLASS:CoverWindowClass]").

According to some posts I found on Google Groups, this effect takes a snapshot of your desktop, then slowly desaturates the image to create the fading to gray effect. This is just to hide what is actually going on in the background. I'd love to use it for exactly that purpose. However, no one seems to know how to harness it.

I've used ResHacker and browsed through the themeui.dll and uxtheme.dll hoping to find some reference to this Please Wait window since I thought they might make a call to it, but no go.

I appreciate the efforts so far,

--Kris

Share this post


Link to post
Share on other sites
Monamo

According to some posts I found on Google Groups, this effect takes a snapshot of your desktop, then slowly desaturates the image to create the fading to gray effect. This is just to hide what is actually going on in the background. I'd love to use it for exactly that purpose. However, no one seems to know how to harness it.

That's basically what I theorized when looking at the process. Working from that, I've been trying to use gdiplus.dll to screencap, convert to grayscale, then do a fade-in overlay of a secondary GUI window that would lie behind my "dialog" GUI (and before anyone suggests it, I've used Auto3Lib with only partial success because (outside of the fact that it PaulIA made great use of gdiplus.dll) ->...) but it seems that with an update to GDI+, the grayscale conversion isn't working on my system anymore. It looks like it may be a matter of either a security/patch release or because of the different Framework builds on my box (can't find the link to the article that mentioned the change to the .dll). I've been looking at other GDI+ functions (GdipSetImageAttributesColorMatrix, and such) to see if there's another way to handle the conversion and then use it in something like:

#include <GUIConstants.au3>

HotKeySet("!+{TAB}", "_SetForeground")
HotKeySet("#", "_SetForeground")

$fulldesktopsize = WinGetPos("Program Manager")
$backgroundGrayGUI = GUICreate("backgroundgraygui", $fulldesktopsize[2], $fulldesktopsize[3], 0, 0, $WS_POPUP, $WS_EX_TOOLWINDOW)
WinSetTrans($backgroundGrayGUI, "", 0)
GUISetState(@SW_DISABLE, $backgroundGrayGUI)
GUISetBkColor(0x404040, $backgroundGrayGUI)
$frontdialogGUI = GUICreate("My GUI")
WinSetOnTop($frontdialogGUI, "", 1)
GUISetState(@SW_SHOW, $frontdialogGUI)
GUISetState(@SW_SHOW, $backgroundGrayGUI)

For $i = 0 To 200 Step 5
    WinSetTrans($backgroundGrayGUI, "", $i)
Next

While 1
    If Not WinActive($frontdialogGUI) Then
        _SetForeground()
    EndIf
    Sleep(100)
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd

Func _SetForeground()
    WinActivate($backgroundGrayGUI)
    WinActivate($frontdialogGUI)
EndFunc  ;==>_SetForeground

I've used ResHacker and browsed through the themeui.dll and uxtheme.dll hoping to find some reference to this Please Wait window since I thought they might make a call to it, but no go.

Another good utility for trolling through a .dll file's functions is Dependency Walker.


- MoChr(77)& Chr(97)& Chr(100)& Chr(101)& Chr(32)& Chr(121)& Chr(97)& Chr(32)& Chr(108)& Chr(111)& Chr(111)& Chr(107)-------I've told you 100,000 times not to exaggerate!-------Don't make me hit you with my cigarette hand...-------My scripts:Random Episode Selector, Keyboard MouseMover, CopyPath v2.1, SmartRename for XP,Window Tracer[sup]New![/sup]

Share this post


Link to post
Share on other sites
Envoi

That's basically what I theorized when looking at the process. Working from that, I've been trying to use gdiplus.dll to screencap, convert to grayscale, then do a fade-in overlay of a secondary GUI window that would lie behind my "dialog" GUI (and before anyone suggests it, I've used Auto3Lib with only partial success because (outside of the fact that it PaulIA made great use of gdiplus.dll) ->...) but it seems that with an update to GDI+, the grayscale conversion isn't working on my system anymore. It looks like it may be a matter of either a security/patch release or because of the different Framework builds on my box (can't find the link to the article that mentioned the change to the .dll). I've been looking at other GDI+ functions (GdipSetImageAttributesColorMatrix, and such) to see if there's another way to handle the conversion...

[[ Envoi removed code to save space ]]

Another good utility for trolling through a .dll file's functions is Dependency Walker.

It still pangs me to think that this effect would need to be rewritten. There's gotta be a way to just provoke it. Right? :P

Depends rocks! Thanks for the link.

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  

×