怎样调用外部程序且显示在一个From的固定地方? 我曾想用OLE来实现但没有成功,请大家来讨论 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用CreateProcess,然后你就获得一个线程Handle。调用EnumThreadWindows,枚举所有Windows,在回调函数中改变窗口的位置SetWindowPos你也可以用FindwindowEx,然后SetWindowPos 用 CreateProcess参数很多,如果是固定Caption,可以用 FindWindow示例如下,将一个计算器放入Panel; procedure set1( a, b: thandle); begin SetParent(a, b); end;procedure TForm1.PutCalcClick(Sender: TObject);var pos: tpoint;begin WinExec(PChar('C:\WINNT\System32\calc.exe'),SW_HIDE); a := findwindow('SciCalc', '计算器'); Set1(a ,panel1.handle); pos.x := 0; pos.y := 0; Panel1.ClientToScreen(pos); SetWindowPos(a, HWND_TOP, pos.x, pos.x, panel1.Width, panel1.Height, SWP_SHOWWINDOW); ShowWindow(a, SW_SHOW);end; qiubolecn:我用你的方法在调用winword时候不行啊,这种方法不太稳定 procedure TForm1.Button1Click(Sender: TObject);var StartupInfo:TStartupInfo; ProcessInfo:TProcessInformation;begin // 初始化工作 FillChar(StartupInfo,Sizeof(StartupInfo),#0); StartupInfo.cb := Sizeof(StartupInfo); StartupInfo.dwFlags := STARTF_USESHOWWINDOW; CreateProcess(nil, 'Calc', // 运行计算器 nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);end; 关于调用c++的dll问题 有人对delphi和flash采用ExternalInterface交互熟悉么? 不太清楚 ShareMem 单元对 Dll 到底有什么影响 一个不大不小的问题ABOUT PANEL 请大家谈谈中国的软件行业! adoquery2怎么样将adoquery1作为自己的输入集合? (紧急)怎样设置使微软TTS发出中文语音 com高手请进,我有点小问题,先谢过了。 请问如何在一个可执行文件运行时修改自身 请问用ado从sqlserver表中取出的值如何去掉空格 delphi6里clx是什么意思,主要技术特点是什么? 一个字符对应控件上多少个距离单位?
begin
SetParent(a, b);
end;
procedure TForm1.PutCalcClick(Sender: TObject);
var
pos: tpoint;
begin
WinExec(PChar('C:\WINNT\System32\calc.exe'),SW_HIDE);
a := findwindow('SciCalc', '计算器');
Set1(a ,panel1.handle);
pos.x := 0;
pos.y := 0;
Panel1.ClientToScreen(pos);
SetWindowPos(a, HWND_TOP, pos.x, pos.x, panel1.Width, panel1.Height, SWP_SHOWWINDOW);
ShowWindow(a, SW_SHOW);
end;
我用你的方法在调用winword时候不行啊,这种方法不太稳定
var
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
// 初始化工作
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo); StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
CreateProcess(nil,
'Calc', // 运行计算器
nil,
nil,
false,
CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS,
nil,
nil,
StartupInfo,
ProcessInfo);
end;