怎么调用一个EXE/DLL, 并将其嵌入到自身窗体中
如何调用一个EXE/DLL, 并将其嵌入到自身窗体中
我用类似的代码, 倒时实现了嵌入, 但是原来的EXE收不到焦点, 不能操作了.
哪位朋友请指点下?
测试环境: Win7 + D7
procedure TForm1.btn_ExecClick(Sender: TObject);
begin
WinExec('MyEXE.exe',SW_SHOW);
end;
procedure TForm1.btn_SetParentClick(Sender: TObject);
var
iHD : THandle;
begin
iHD := FindWindow(nil,'Form_ExeTest');
if iHD>0 then begin
Windows.SetParent(iHD,Handle);
end;
end;
------解决方案--------------------
D7+xpSp3是可以操作没有问题啊

------解决方案--------------------

不知道是不是你要的效果,直接调用了DLL的窗体了。
我用类似的代码, 倒时实现了嵌入, 但是原来的EXE收不到焦点, 不能操作了.
哪位朋友请指点下?
测试环境: Win7 + D7
procedure TForm1.btn_ExecClick(Sender: TObject);
begin
WinExec('MyEXE.exe',SW_SHOW);
end;
procedure TForm1.btn_SetParentClick(Sender: TObject);
var
iHD : THandle;
begin
iHD := FindWindow(nil,'Form_ExeTest');
if iHD>0 then begin
Windows.SetParent(iHD,Handle);
end;
end;
------解决方案--------------------
D7+xpSp3是可以操作没有问题啊
var
iHD: THandle;
begin
iHD := FindWindow(nil, 'form1');
if iHD > 0 then
begin
Windows.SetParent(iHD, Handle);
end;
end;
------解决方案--------------------
不知道是不是你要的效果,直接调用了DLL的窗体了。
var
DLLHandle: THandle;
DLLSub: InvokeDLLForm;
begin
DLLHandle := LoadLibrary('prjDLL.dll');
if DLLHandle <> 0 then
begin
@DLLSub := GetProcAddress(DLLHandle, 'CreateDLLForm');
if Assigned(DLLSub) then
begin
DLLForm := DLLSub(Application, Screen);
end;
end;
end;