关于Winexec winexec执行了一个bcp命令!(耗时十多秒)怎么判断这个命令结束?Winexec只是调用一个外部的命令,如何判断其结束! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用CreateProcess可以实现你想要的操作!!!但是比较麻烦,不是三言两语能说明白的!!! 是呀 CreateProcess复杂多了 但是更强大。。呵呵 不过WinExec,ShellExcute 也都是由CreateProcess实现的 unit Exec_Unit;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TExecForm = class(TForm) Execute: TButton; ExeName: TEdit; procedure ExecuteClick(Sender: TObject); private { Private declarations } public { Public declarations } Function Exec(FileName:string; Visibility:integer):integer; end;var ExecForm: TExecForm;implementation{$R *.DFM}{ TForm1 }function TExecForm.Exec(FileName: string; Visibility: integer): integer;var zAppName: array [0..512] of Char; zCurDir: array [0..255] of Char; WorkDir: string; StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; ExitCode: Cardinal;begin StrPCopy(zAppName, FileName); GetDir(0, WorkDir); StrPCopy(zCurDir, WorkDir); FillChar(StartupInfo, SizeOf(StartupInfo), #0); StartupInfo.cb := SizeOf(StartupInfo); StartupInfo.wShowWindow := Visibility; if not CreateProcess(nil, zAppName, nil, nil, false, Create_New_Console or Normal_priority_class, nil, nil, StartupInfo, ProcessInfo) then Result:=-1 else begin WaitForSingleObject(ProcessInfo.hProcess, Infinite); GetExitCodeProcess(ProcessInfo.hProcess, ExitCode); Result := ExitCode; end;end;procedure TExecForm.ExecuteClick(Sender: TObject);begin Exec(ExeName.Text, 0); ShowMessage('Ruturn');end;end.http://lysoft.7u7.net 使用APIHOOK拦截WSARecv的问题 求梦幻西游屏幕汉字识别代码 用idtcpclient 实现用户登录日志 数组问题 运动员做动作时怎么用摄像机或是摄像头进行录像事后并分析动作分解要领? 怎样在Delphi中调用word文档 如何编程获得摄像头的图像,并显示出来? TREEVIES的使用 Delphi.7.一直没有装过..刚搞了安装盘..不知道7和6相比.增加了什么.有什么好处.大家说说看. 如何用dxdbgrid连接显示数据?和dbgrid方法不一样吗? 自定义组件 我应当如何学习delphi?
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TExecForm = class(TForm)
Execute: TButton;
ExeName: TEdit;
procedure ExecuteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Function Exec(FileName:string; Visibility:integer):integer;
end;var
ExecForm: TExecForm;implementation{$R *.DFM}{ TForm1 }function TExecForm.Exec(FileName: string; Visibility: integer): integer;
var
zAppName: array [0..512] of Char;
zCurDir: array [0..255] of Char;
WorkDir: string;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
ExitCode: Cardinal;
begin
StrPCopy(zAppName, FileName);
GetDir(0, WorkDir);
StrPCopy(zCurDir, WorkDir);
FillChar(StartupInfo, SizeOf(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(nil, zAppName, nil, nil, false, Create_New_Console or Normal_priority_class,
nil, nil, StartupInfo, ProcessInfo) then Result:=-1
else begin
WaitForSingleObject(ProcessInfo.hProcess, Infinite);
GetExitCodeProcess(ProcessInfo.hProcess, ExitCode);
Result := ExitCode;
end;
end;procedure TExecForm.ExecuteClick(Sender: TObject);
begin
Exec(ExeName.Text, 0);
ShowMessage('Ruturn');
end;end.
http://lysoft.7u7.net