PDA

View Full Version : Blank window after reboot



NewsArchive
11-27-2009, 06:56 AM
Hi Friedrich

After I've rebooted & resumed an install one of the dialog wait windows is
just showing as a blank window frame with no text visible.

I've tried putting the display progress window before the dialog wait window
and that also shows as blank.

Anyway I can make this show the window and text, is this something to force
the window to be refreshed?

I tried to create an example script to show this behavior but in the
attached example the wait dialog window doesnt appear after the reboot.

Cheers

Richard

NewsArchive
11-27-2009, 06:58 AM
Hi Richard,

> After I've rebooted & resumed an install one of the dialog wait windows is
> just showing as a blank window frame with no text visible.
>
> I've tried putting the display progress window before the dialog wait
> window and that also shows as blank.
>
> Anyway I can make this show the window and text, is this something to
> force the window to be refreshed?
>
> I tried to create an example script to show this behavior but in the
> attached example the wait dialog window doesnt appear after the reboot.

Did you attach the correct project? This is what I see when I compile and
run your project (see attached screenshot). Tested on Windows 2000 (VM),
Windows 7 (VM), Windows XP (VM), Vista 64-bit, Windows 7 and Windows Server
2008 R2. I can't reproduce this on any of our machines :-(

Friedrich

--
Friedrich Linder
Lindersoft
www.lindersoft.com
+1.954.252.3910

SetupBuilder is Windows installation -- "point. click. ship"

-- Official Comodo Code Signing and SSL Certificate Partner

NewsArchive
11-27-2009, 06:58 AM
Hi Richard,

I switched to a slower Internet connection to make sure I see the wait
dialog in progress for a little bit longer <g> The progress bar is updated
without any problem and the wait dialog also displays fine (on Windows 7).
I don't see the progress bar on XP at all, I only see the Finish dialog.

But this has nothing to do with the installer per-se. You'll notice this
with all kind of applications that are executed from the RunOnce key and
there is nothing the developer can do here. When RunOnce commands are
executed, Windows still loads all kind of stuff and this slows down the
machine. And if there are virus scanner services still loading, it gets
even worse. Please note that, when RunOnce is executed, the machine is
still in the boot process and messages go into the message queue and are
waiting to be processed. RunOnce actions are executed after a user logs on,
after the logon script finishes, but before the Desktop is fully loaded!

Hope this helps.

Friedrich

NewsArchive
11-27-2009, 06:59 AM
Hi Friedrich

I even tried putting a sleep 60 seconds in the script to allow the pc time
to load other background stuff as well, but that didnt make any difference
to the window text being visible either.
Like you said I'll just have to live with it.<g>

BTW regarding that thing I emailed you about re the licence file. I've done
some changes to VMware and I think I have got to the bottom of it. Whilst
the AV switched off didnt make any noticeable difference, when I installed
VM7 I did opt for the option "Allow most virtual machine memory to be
swapped" thinking this would be best for the number of VM's I can
potentially be running.

Anyway I swapped it to Fit all virtual machine memory into reserved host Ram
and I have'nt had any problems like that since and the speed of the VM's
have gone up as well (which is nice<vbg>).
This option is in VMware workstation, Edit, Preferences, Memory Tab,
Additional Memory box and I've reserved 6Gb of memory as well for it. So
this might be something to watch out for if similar problems are experienced
with other users running VMware as the default option is the middle one, so
going for the 1st option is also a welcome improvement in performance at the
very least.

Cheers

Richard

NewsArchive
11-27-2009, 06:59 AM
Hi Richard,

> I even tried putting a sleep 60 seconds in the script to allow the pc time
> to load other background stuff as well, but that didnt make any difference
> to the window text being visible either.
> Like you said I'll just have to live with it.<g>

The main problem is that RunOnce actions are executed before the Desktop is
fully loaded. So it's possible that the GetDesktopWindow() fails and there
is no valid window handle available to display the dialogs.

> BTW regarding that thing I emailed you about re the licence file. I've
> done some changes to VMware and I think I have got to the bottom of it.
> Whilst the AV switched off didnt make any noticeable difference, when I
> installed VM7 I did opt for the option "Allow most virtual machine memory
> to be swapped" thinking this would be best for the number of VM's I can
> potentially be running.
>
> Anyway I swapped it to Fit all virtual machine memory into reserved host
> Ram and I have'nt had any problems like that since and the speed of the
> VM's have gone up as well (which is nice<vbg>).
> This option is in VMware workstation, Edit, Preferences, Memory Tab,
> Additional Memory box and I've reserved 6Gb of memory as well for it. So
> this might be something to watch out for if similar problems are
> experienced with other users running VMware as the default option is the
> middle one, so going for the 1st option is also a welcome improvement in
> performance at the very least.

Very interesting. Thanks for sharing!

BTW, I have modified the license file processing in the latest internal SB7
source codes. It should report more detailed error information now to find
out what is going wrong.

Thanks,
Friedrich

NewsArchive
11-27-2009, 07:00 AM
> The main problem is that RunOnce actions are executed before the Desktop
> is fully loaded. So it's possible that the GetDesktopWindow() fails and
> there is no valid window handle available to display the dialogs.

I debugged it and GetDesktopWindow() does not fail (and a valid handle is
available). But the window message queue is simply not processed on XP. If
you add a simple 'Display Message Box "hello world"' after your 'Progress
Dialog: Display' then it displays fine. I'll play with it a bit to see if
it is possible to find a workaround.

Friedrich

NewsArchive
11-27-2009, 07:00 AM
Hi Friedrich

I've also tried Progess Display text then Progress Display update text all
on a new thread but that didnt make any difference although I didnt change
the text.

I havent tried the text with a full stop missing in the first line and
adding the fullstop in the second line though because its possible the text
not changing in the second line doesnt force a refresh but that was going to
be something else to try. I'll let you know how I get on with that.
Unfortunately installing SQL 2008 isnt a quick process.<g>

Cheers

Richard

NewsArchive
11-27-2009, 07:00 AM
Hi Richard,

> I've also tried Progess Display text then Progress Display update text all
> on a new thread but that didnt make any difference although I didnt change
> the text.
>
> I havent tried the text with a full stop missing in the first line and
> adding the fullstop in the second line though because its possible the
> text not changing in the second line doesnt force a refresh but that was
> going to be something else to try. I'll let you know how I get on with
> that. Unfortunately installing SQL 2008 isnt a quick process.<g>

I did some more debugging and the message queue is not processed during the
RunOnce execution. Even the progress bar events are not processed :-(

So I fear we can't do anything here :-(

Friedrich

NewsArchive
11-27-2009, 07:01 AM
Hi Richard,

If fact, when you see the "Loading your personal settings..." Windows
message, the RunOnce stuff is already executed. Some required services
might not be up and running now.

I have tried the following and it seems to work:

[ Initialize Setup ]
! --- Define commonly used constants ---
#include script "Common Definitions.sbi"

If %_SB_RESUME% Equals "1" Then
Sleep for "30" seconds
End

The installer is executed and "sleeps" for 30 seconds. This gives Windows
time to boot up. After that, I see this (see attached screenshot).

Friedrich

NewsArchive
11-28-2009, 02:23 AM
Hi Friedrich

> [ Initialize Setup ]
> ! --- Define commonly used constants ---
> #include script "Common Definitions.sbi"
>
> If %_SB_RESUME% Equals "1" Then
> Sleep for "30" seconds
> End

Yep thats solved the problem. Works a treat!

Thanks!<g>

Cheers

Richard

NewsArchive
11-28-2009, 02:23 AM
Hi Richard,

> Yep thats solved the problem. Works a treat!
>
> Thanks!<g>

COOL!!!! :-)

Friedrich