我有一个小的Delphi XE5程序,其唯一目的是执行另一个Windows程序.该程序通过Windows终端仿真器的调用启动.我们正在尝试使用服务器上的DLL在服务器上执行程序.因此,将当前目录设置为包含DLL的服务器上的目录非常重要.终端仿真程序不允许设置当前目录.因此需要这个计划.
程序运行正常并解决了我们的"当前目录"问题,除了我们得到一个控制台屏幕,当程序启动时,屏幕会短暂出现在屏幕上.由于它不是控制台应用程序,我无法理解为什么会出现此控制台类型屏幕.任何人都可以告诉我如何摆脱这个并让程序执行而不显示自己?
以下是代码:
program DoProg;
uses
SysUtils, ShellAPI, Windows;
const
ExeAreaDir = '\\public\dd3\Release';
ExeArea = ExeAreaDir + '\';
procedure RunProg(Path, Param: String);
var
SEInfo: TShellExecuteInfo;
begin
FillChar(SEInfo, SizeOf(SEInfo), 0);
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
with SEInfo do
begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := 0;
lpFile := Pchar(Path);
lpParameters := Pchar(Param);
lpDirectory := Pchar(ExtractFilePath(Path));
nShow := SW_SHOWNORMAL;
end;
ShellExecuteEx(@SEInfo);
end;
begin
SetCurrentDir(ExeAreaDir);
RunProg(ExeArea + ParamStr(1), ParamStr(2));
end.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |