怎样调用一个程序,后面有参数。(50分)

  • 主题发起人 主题发起人 daileking
  • 开始时间 开始时间
D

daileking

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个check.exe的程序,后面要跟文件名。用法如下:
在win98的MSdos下键入:check filename。
我想在我的程序里调用这个程序。比如单击一个按钮,
在OpenDilog里选中要处理的文件(上面的filename),然后执行它。
怎么实现?急急急……
 
shellexecute
 
同意楼上。
shellexecute(路径/文件名)
 
要先uses shellApi
再用shellexecute
或用Winexec
其他的请查help
 
winexec可以
 
{function ShellExecute(hWnd: HWND;
Operation, FileName, Parameters,
Directory: PChar;
ShowCmd: Integer): HINST;
stdcall;}
uses
shellapi;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(handle,'open','C:/',nil, nil, SW_SHOWNORMAL);
end;
 
ShellExecute
ShellExecuteEx
Winexec,三个都可以。
 
ShellExecute(Handle,nil,PathFile,FileParm,nil,SW_SHOW);
其中PathFile指定要执行文件的位置
FileParm指定执行文件的运行参数
注意是Pchar类型
 
WinExec('check.exe '+AnsiQuotedStr(OpenDialog1.filename,'"'),SW_NORMAL);
因为文件名可能有空格,所以要AnsiQuotedStr
 
if OpenDialog1.Execute then
begin
WinExec('d:/share/check1.exe '+AnsiQuotedStr(OpenDialog1.FileName)
,SW_SHOWNORMAL);
end;
这样不行啊。
ShellExecute(handle,'d:/share/check1.exe ','d:/share/test.txt'
,nil, nil, SW_SHOWNORMAL);
这样也不行。
 
ShellExecute(handle,'open','d:/share/check1.exe',pchar(AnsiQuotedStr(OpenDialog1.FileName)
),'d:/share/',sw_hide);
应该可以吧。
 
那就
if OpenDialog1.Execute then
begin
WinExec('d:/share/check1.exe '+OpenDialog1.FileName,SW_SHOWNORMAL);
end;

 
uses shellapi;
if OpenDialog1.Execute then
ShellExecute(handle,pchar('d:/share/check1.exe '+opendialog1.filename),nil,nil, nil, SW_SHOWNORMAL);
 
后退
顶部