先用这个过程查找桌面的句柄:
procedure FindDesktop;
var wndHandle THandle;
    wndClass:array[0..255] of char;
begin
  StrPCopy(@wndClass[0],'ProgMan');
  wndHandle:=FindWindow(@wndClass[0],nil);
end;再用GetForegroundWindow函数取得当前窗口的句柄,然后和上述wndHandle桌面句柄比较,如果相同则说明当前窗口没有被遮挡,否则被遮挡。
在9x/me/2000下都可以工作。

解决方案 »

  1.   

    GetForegroundWindow()<>GetDesktopWindow()
      

  2.   

    如果要判断所有的窗口都是最小化的可以用EnumWindow()配合IsWindowVisible()和IsIconic
    就可以了。如果所有的可见窗口都是Iconic,就是全部窗口都最小化了。
      

  3.   

    我试试,行的话立马给分
    Kingron:
    你的个人主页我看了一下,老实说,作的太不象话了!呵呵!
      

  4.   

    试了一下,好象maren的那个不行,因为这个程序运行时就是最小化的,kingron说的那个enumwindows()函数该怎么用?我看了函数说明,可是不懂,能详细一些吗?