Deiphi如何接受命令行参数

字体大小: 中小 标准 ->行高大小: 标准
一、Delphi的A.EXE文件,执行时。通过以下方式调用:
  shellexecute(handle,'open',pchar(FileName),pchar(sParam),nil,sw_shownormal);
  sParam就是Dos命令形式的参数,格式如下:
  命令行“A.exe 参数1 参数2 参数3 参数4......”

二、A.EXE执行后,它会自动读入sParam,sParam分解
    命令行“A.exe 参数1 参数2 参数3 参数4......”
    Delphi 默认变量 ParamCount 获取参数个数;
    变量 ParamStr(i) 参数数组,i值取0-ParamCount-1,它们分别:
    ParamStr(0) EXE自身文件名
    ParamStr(1) 第1个参数
    ParamStr(2) 第2个参数
    ParamStr(3) 第3个参数
    ParamStr(4) 第4个参数

三、实例
   1、调用EXE设置Dos命令行参数 
Delphi/Pascal code
?
1
2
3
4
5
6
7
8
9
10
11
  FileName:=MainPath+'WageA.exe';
  sParam:=OpenSN;                               // 参数1 打开模块密码
  sParam:=sParam+' '+OperateName;               // 参数2 操作者
  for i:=0 to MyList.Count-1 do
  begin
    sParam:=sParam+' '+MyList.Strings[i];       // 参数3-6
  end;
  if FileExists(FileName)
  then begin
    shellexecute(handle,'open',pchar(FileName),pchar(sParam),nil,sw_shownormal);
  end;


    2、EXE 获取参数,在窗口的Onshow事件中
Delphi/Pascal code
?
1
2
3
4
5
6
7
8
9
10
11
12
  for i:=1 to ParamCount do
    ShowMessage(ParamStr(i));   // 显示参数
// 读取 DOS命令行参数
  if ParamStr(1)<>OPenSN then      //  第一个参数,约定密码   
  begin
    if Not InputQuery('本模块程序,只能调用!''密码进入:     ', SN)  // 非调方式,录入密码
       then ExitProcess(0);
    if SN<>OPenSN then ExitProcess(0);              // 检查密码不对退出程序
    InputQuery('用户名?''用户:     ', S)        // 密码对,再录入用户名
  end;
  OperateName:=ParamStr(2);                         // 读取客户名
  if S<>'' then OperateName:=Trim(S);

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/70546.html