Harold,
 
Thanks!!! I think that will work well enough for me.
 
Jonathan
----- Original Message -----
From: Piske, Harald
To: 'perl-win32-gui-users@lists.sourceforge.net'
Sent: Wednesday, March 28, 2001 5:46 PM
Subject: RE: [perl-win32-gui-users] desktop

Hi Jonathan.
 
I found a way - not exactly easy, probably far from perfect, but it works. I hide all windows - walking backwards through the chain of desktop children, to avoid making each active just before hiding it. Then I cover the background with a big, fat, ugly, black rectangle and show my own window. Note I restore all the hidden stuff in END{}. Otherwise, if your program dies, you'll end up with a perfectly invisible OS. On the other hand, that might avoid a few annoying windows faults ...
 
Have fun
Harald
 
use Win32::GUI;
use Win32::API;
 
BEGIN
{
 undef $blank;
 undef @hidden;
 $CreateWindowEx = new Win32::API ('user32', $_ = 'CreateWindowEx',
  [N,P,P,N,I,I,I,I,I,I,I,P], I) or die $_;
 $ShowWindow = new Win32::API ('user32', $_ = 'ShowWindow', [I, I], I)
  or die $_;
 $DestroyWindow = new Win32::API ('user32', $_ = 'DestroyWindow', [I], I)
  or die $_;
}
END
{
 $ShowWindow->Call ($_, 8) for @hidden;
 $DestroyWindow->Call ($blank) if $blank;
 undef $CreateWindowEx;
 undef $DestroyWindow;
 undef $ShowWindow;
}
$Main = new Win32::GUI::Window (-name => 'Main',
 -pos => [100, 100], -size => [400, 300]);
sub Main_Terminate {-1}
$Main->AddLabel (-name => $_ = 'All alone!',
 -text => $_, -pos => [160, 110]);
$desktop = $Main->GetDesktopWindow ();
$_ = Win32::GUI::GetWindow ($desktop, GW_CHILD);
$_ = Win32::GUI::GetWindow ($_, GW_HWNDLAST);
do {
 if (Win32::GUI::IsVisible ($_)) {
  push @hidden, $_;
  $ShowWindow->Call ($_, 0);}
} while $_ = Win32::GUI::GetWindow ($_, GW_HWNDPREV);
@area = Win32::GUI::GetWindowRect ($desktop);
$blank = $CreateWindowEx->Call (0, $_ = 'STATIC', '',
 0x5C000004, @area, $desktop, 0, 0, 0) or die $_;
$Main->Show ();
Win32::GUI::Dialog ();
-----Original Message-----
From: Jonathan Southwick [mailto:jsouthwi@allegheny.edu]
Sent: Wednesday, March 28, 2001 10:31
To: perl-win32-gui@httptech.com
Subject: [perl-win32-gui-users] desktop

Is there any way to blackout the desktop (as a screensaver would) using the GUI module?  I still want to be able to show my own windows I create in my program.
 
Jonathan Southwick
Technical & Network Services
Allegheny College, Meadville, PA
jsouthwi@allegheny.edu