delphi 调用exe 无输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 调用exe 无输出相关的知识,希望对你有一定的参考价值。

exe中自带输出,直接运行有输出文件,用shell调用的exe虽然运行了但无输出文件,在此请教
winexe试过了,效果一样 , 不在调用目录

应该是目录的问题,exe中输出是没有指定路径的,所以在当前工作目录进行了输出,调用前,设置一下当前路径就可以了。如果后面的操作与目录有关,还要设置回去。 参考技术A 换个调用函数看看。好像是WinExe什么的。 参考技术B 文件可能生成到了调用程序所在目录 参考技术C 如何去呼叫一个执行档
var
i:pchar;
begin
i:='C:\Program Files\Accessories\WORDPAD.EXE';
winexec(i,sw_show);
end;
用以上程式即可呼叫执行档,若须呼叫其它执行档,更改路径即可.

delphi 调用外部exe ,并等待调用程序运行结束

function TFmain.RunWait(FileName: string; Visibility: Integer): THandle;
var
  zAppName: array[0..512] of Char;
  zCurDir: array[0..255] of Char;
  WorkDir: string;
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  try
        StrPCopy(zAppName, FileName);
        GetDir(0, WorkDir);
             StrPCopy(zCurDir, WorkDir);
             FillChar(StartupInfo, SizeOf(StartupInfo), #0);
             StartupInfo.cb := SizeOf(StartupInfo);
             StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
             StartupInfo.wShowWindow := Visibility;
            if not CreateProcess(nil, zAppName, nil, nil, false, Create_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
            begin
                result := 0;
                Exit;
             end
             else
             begin
      WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
      GetExitCodeProcess(ProcessInfo.hProcess, result);
        end;
    finally
    end;
end;

调用

procedure TFmain.Img_buyClick(Sender: TObject);
var
msg:String;
begin

    Timer1.Enabled := False;

    RunWait(‘cs_buy.exe‘,SW_SHOWMAXIMIZED);

    Timer1.Enabled := True;

end;

 

其中 参数   Visibility 取值如下:


行号 参数 含义
1 SW_HIDE                        隐藏这个窗体,并激活其他窗体。
2 SW_MAXIMIZE                最大化指定的窗体。
3 SW_MINIMIZE                 最小化指定的窗体,并按顺序激活最上层的窗体。
4 SW_RESTORE               激活并显示窗体。如果窗体为最小化或者最大化,窗体恢复到原始大
                                          小和置。应用程序当恢复一个最小化的窗体时将指定标记。
5 SW_SHOW                      以当前的大小和位置激活并显示窗体。
6 SW_SHOWDEFAULT
7 SW_SHOWMAXIMIZED    激活并最大化显示窗体。
8 SW_SHOWMINIMIZED     激活并最小化现实窗体。
9 SW_SHOWMINNOACTIVE    最小化窗体,保持其激活状态。
10 SW_SHOWNA                     以当前状态显示窗体,保持其激活状态。
11 SW_SHOWNOACTIVATE   以当前的大小和位置显示窗体,并保持其激活状态。
12 SW_SHOWNORMAL 激活并显示一个窗体。如果窗体为最大化或者最小化,窗体恢复到原始的大小和位置。当窗体第一次显示的时候,应用程序记录标记

以上是关于delphi 调用exe 无输出的主要内容,如果未能解决你的问题,请参考以下文章

VS2017写的exe调用Delphi 7写的DLL

delphi 调用 EXE 并在Panle中运行

delphi调用外部程序~~~~~~~~~~~~

delphi,函数的调用和传参,求解。

delphi 调用外部exe ,并等待调用程序运行结束

delphi 如何把其他exe文件加入dll中,并调用