外部程序嵌套到自己的程序内,并隐藏外部的任务栏显示问题【求助】 本帖最后由 xingyu198932 于 2012-12-13 00:07:25 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 红色的是新增加的代码:function FindMainWindow(h: HWND): HWND;var hParent, hOwner: HWND;begin hParent := h; repeat Result := hParent; hParent := Windows.GetParent(hParent); until hParent = 0; hOwner := Result; repeat Result := hOwner; hOwner := Windows.GetWindow(hOwner, GW_OWNER) until hOwner = 0end;var hwndOldParent,hwndCalc,hwndCalcMain:HWND;procedure TForm1.FormDestroy(Sender: TObject);begin Windows.SetParent(hwndCalc,hwndOldParent);//恢复计算器的原有宿主end;procedure TForm1.Button1Click(Sender: TObject);//绑架计算器begin hwndCalc:=FindWindow(nil,'计算器'); //找计算器窗体 if hwndCalc=0 then winexec('calc.exe',SW_SHOWNORMAL);//如果未找到就运行计算器 hwndCalc:=FindWindow(nil,'计算器'); //再找计算器窗体 hwndCalcMain:=FindMainWindow(hwndCalc); if (hwndCalcMain <> 0) and (hwndCalcMain <> hwndCalc) then ShowWindow(hwndCalcMain, SW_HIDE); hwndOldParent:=GetParent(hwndCalc);//获取它的宿主(待进程结束时恢复它的原有宿主) Windows.SetParent(hwndCalc,Handle);//将计算器绑架入自己的窗体end; 万分感谢 s11ss 朋友的热心帮助,已经解决了!再次感谢! 求打印dbgrid数据的程序代码 用DBEidt显示,用ADOQuery修改时的问题?? 诱惑测试[你能受的了吗?] 求sql语句!!!!!!!!!! 关于MessageBox问题~ 使用RMReport关于在一页显示满的问题? Delphi 2007贴图: 用DELPHI做的程序,如果不做特别处理,启动后,不关闭,然后在“开始”菜单里重起计算机,发现该delphi程序不能自动关闭,从而windows也无法重起。请问,我怎样使程序自动关闭呢? why error? 怎么得到某月的最大天数是几? 大家来谈谈数据类型转换的效率 delphi 调用 dll
var
hParent, hOwner: HWND;
begin
hParent := h;
repeat
Result := hParent;
hParent := Windows.GetParent(hParent);
until hParent = 0; hOwner := Result;
repeat
Result := hOwner;
hOwner := Windows.GetWindow(hOwner, GW_OWNER)
until hOwner = 0
end;var
hwndOldParent,hwndCalc,hwndCalcMain:HWND;procedure TForm1.FormDestroy(Sender: TObject);
begin
Windows.SetParent(hwndCalc,hwndOldParent);//恢复计算器的原有宿主
end;
procedure TForm1.Button1Click(Sender: TObject);//绑架计算器
begin
hwndCalc:=FindWindow(nil,'计算器'); //找计算器窗体
if hwndCalc=0 then winexec('calc.exe',SW_SHOWNORMAL);//如果未找到就运行计算器
hwndCalc:=FindWindow(nil,'计算器'); //再找计算器窗体
hwndCalcMain:=FindMainWindow(hwndCalc);
if (hwndCalcMain <> 0) and (hwndCalcMain <> hwndCalc) then
ShowWindow(hwndCalcMain, SW_HIDE);
hwndOldParent:=GetParent(hwndCalc);//获取它的宿主(待进程结束时恢复它的原有宿主)
Windows.SetParent(hwndCalc,Handle);//将计算器绑架入自己的窗体
end;