怎么取消其他程序窗口的Showmodal模式?

如何取消其他程序窗口的Showmodal模式??
我要用程序a发信息让程序B的form1窗口取消Showmodal模式,并隐藏,不知道有什么办法,     程序b和form1窗口的句柄已经获得了。用按个命令参数能让form1窗口的showmodal模式取消,并隐藏呢?有会的大虾不?

------解决方案--------------------
向VB版的暴风雨学习的:

模态窗口显示时,其owner window是被Disable的,所以模态窗口才呈现“模态”,所以只要将模态窗口的owner window设置为enable即可实现改变其模式显示状态


var
H : HWND;
begin
H := FindWindow(nil, PChar( '模态窗体的OwnerWindow的标题 '));//H 即Owner的句柄
EnableWindow(H, True);
end;
------解决方案--------------------
//form1
procedure TForm1.Button1Click(Sender: TObject);
var
f2 : TForm2;
begin
f2 := TForm2.Create(Self);
f2.ShowModal;
f2.Free;
end;

//form2
function DoEnableWindow(Window: HWnd; Data: Longint): Bool; stdcall;
begin
if IsWindowVisible(Window) and
(not IsWindowEnabled(Window)) then
begin
EnableWindow(Window, True);
end;
Result := True;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
var
h : THandle;
WindowList : Pointer;
begin
EnumThreadWindows(GetCurrentThreadID,@DoEnableWindow,0);
Timer1.Enabled := False;
end;