A.exe要调用B.exe,B需要返回一些值给A使用,请问B的返回值,在应用程序B中应该怎么写呀?同时A调用了B后,如何读取他的返回值呀?请各位大侠帮帮,谢谢!
解决方案 »
- 如何等待线程结束后再执行其他程序?
- 帮我写一个简单的RC4加密的例子
- 高分求解:如何使窗口尺寸超出分辨率等!
- IXMLNode转换的问题---急,在线等
- 关于在ACCESS 中 用SQL语句 导入 另一个带 密码的 数据库 的问题!!!!!!!!!!!!
- 关于界面设置的问题,帮帮忙~~
- 那里有支持通过串口传送文件的工具
- 高分求就,那里有介绍关于包和dll的文字和实例资料?
- 哪里有图标库可以下载
- 在用Twebbrowser 浏览网页时,如果窗体的样式一改变,网页文档就不见了。这是怎么回事?
- 动态链接库不注册直接放在程序目录下能用不?
- 我在DLL中建立了一个TImage,但调用时出现错误"Cannot assign a TFont to a TFont"
把A的窗体句柄传递给B
//...
public
procedure WMUSER10(var Msg: TMessage); message WM_USER + 10;
end;
//...
implementation
//...
procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec(PChar(ParamStr(0) + ' ' + IntToStr(Handle)), SW_SHOW);
end;procedure TForm1.WMUSER10(var Msg: TMessage);
begin
Caption := IntToStr(Msg.WParam); //接收消息
end;B中处理后发送给A的窗体
procedure TForm2.Button1Click(Sender: TObject);
begin
SendMessage(StrToIntDef(ParamStr(1), 0), WM_USER + 10, 12345, 0);
end;
function ExecProcess(mCommandLine: string): Longword;
var
vStartupInfo: TStartupInfo;
vProcessInformation: TProcessInformation;
begin
FillChar(vStartupInfo, SizeOf(TStartupInfo), 0);
FillChar(vProcessInformation, SizeOf(TProcessInformation), 0);
vStartupInfo.cb := SizeOf(TStartupInfo);
vStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
vStartupInfo.wShowWindow := SW_NORMAL; if CreateProcess(nil, PChar(mCommandLine), nil, nil, False,
CREATE_NEW_PROCESS_GROUP or NORMAL_PRIORITY_CLASS,
nil, nil, vStartupInfo, vProcessInformation) then
begin
WaitForSingleObject(vProcessInformation.hProcess, INFINITE);
GetExitCodeProcess(vProcessInformation.hProcess, Result);
CloseHandle(vProcessInformation.hThread);
CloseHandle(vProcessInformation.hProcess);
end else Result := 0;
end; { ExecProcess }procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := IntToStr(ExecProcess('C:\temp\B.exe')); // 调用B
end;B工程中最后一句加上你要返回的值即可:
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
ExitCode := 1234; //《〈〈〈〈〈〈〈〈〈〈
end.