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