我的窗口隐藏后,就怎么也恢复不料了!确实没分了!各位可怜可怜我吧!

智商无下限 2002-12-06 12:46:10
我用了如下方法:
SetForegroundWindow(h);//没反应!
sendmessage(HWND_BROADCAST,SW_SHOWNOACTIVATE,0,0);//也不行,我该怎么办呀!
我想把所有隐藏的窗口都显示出来!!
...全文
40 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Shikari 2002-12-06
  • 打赏
  • 举报
回复
呵呵,你那样做是不可以的,用SHOWWINDOW才可以!
ShowWindow(Handle,SW_SHOW);//显示窗体
ShowWindow(Handle,SW_HIDE);//隐藏窗体
Handle是你得到的程序窗口句柄!
Shikari 2002-12-06
  • 打赏
  • 举报
回复
首先新建工程,然后添加一个ListBox和一个Button

在implementation下面写
function MyWindows(Hwnd:Longint;Wparam:longint):longint;stdcall;
var WindowText:Pchar;
TextAndHwnd:string;
begin
GetMem(WindowText,255);
GetWindowText(Hwnd,WindowText,255);
if Length(WindowText)<>0 then
begin
TextAndHwnd:=WindowText +'--'+inttostr(Hwnd);
//ShowWindow(Hwnd,SW_SHOW);//该句为显示窗口
Form1.ListBox1.Items.Add(TextAndHwnd);
end;
Result :=1;
end;

在Button点击事件中写
EnumWindows(@MyWindows,0);

这个时候运行,你就可以看到所有窗口了,然后把ShowWindow(Hwnd,SW_SHOW)前面的注释去掉,就可以显示所有窗口了,不过在运行之前保存你所有的操作,因为桌面上窗口太多了:)祝你成功!
智商无下限 2002-12-06
  • 打赏
  • 举报
回复
哦!能不能给个例子那?给你天麻烦了
Shikari 2002-12-06
  • 打赏
  • 举报
回复
哦!是这样的,我不知道你的水平,SetForegroundWindow的意思是将一个后台的程序激活。你可以用EnumWindows等API枚举所有窗口,然后在枚举的过程中用ShowWindow显示,这样就可以把所有隐藏的窗体都显示出来了!
智商无下限 2002-12-06
  • 打赏
  • 举报
回复
可是我想把所有的隐藏窗体都显示出来呀!

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧