您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 求助~~~关于程序窗口隐藏

求助~~~关于程序窗口隐藏

来源:网络整理     时间:2016/8/25 23:19:46     关键词:

关于网友提出的“ 求助~~~关于程序窗口隐藏”问题疑问,本网通过在网上对“ 求助~~~关于程序窗口隐藏”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 求助~~~关于程序窗口隐藏
描述:

利用findwindow(nil,'窗口名')找到窗口句柄,设置ShowWindow(句柄,SW_Hide),并做了一个隐藏的按钮,在只有一个程序的情况下,可以实现。
但是如果需要打开两个程序,两个程序的窗口名是相同的,那么怎样才能实现点击这个隐藏按钮,同时把两个程序都隐藏起来呢?
用上面的程序使用,一般情况是先隐藏了其中的一个,把程序关掉,再执行,有时候可以把第二个也隐藏掉,有时候就不行。请问各位,有什么方法可以实现功能??


解决方案1:

procedure TForm1.Button1Click(Sender: TObject);
var
  hCurrentWindow:HWnd;
  szText: array[0..254] of char;
  begin
  hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);
  while hCurrentWindow <> 0 do
  begin
 GetWindowText(hCurrentWindow, @szText, 255);
 if StrPas(@szText)):='测试 - 记事本' then
  ShowWindow(hCurrentWindow,SW_Hide);
  hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT);
end;
end;
遍历窗口,如果窗口标题='测试 - 记事本'就隐藏它。

解决方案2:

procedure TForm1.HideWindows();
var
  hd: HWND;
  sz: PAnsiChar;
begin
  hd:=GetWindow(Handle,GW_HWNDFIRST);
  GetMem(sz, 200);
  while hd<>0 do
    begin
      GetWindowText(hd, sz, 200);
      if sz = 'Form1' then
        ShowWindow(hd, SW_Hide);
      hd:=GetWindow(hd,GW_HWNDNEXT);
    end;
  FreeMem(sz);
end;


以上介绍了“ 求助~~~关于程序窗口隐藏”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3593154.html

相关图片

相关文章