请问Deiphi如何接受命令行参数?

shijies 2016-03-17 05:15:50
用Deiphi编程时如何获取命令行参数?
...全文
224 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuaialang 2016-03-17
  • 打赏
  • 举报
回复
我擦,100分啊,我要回答 ParamStr(0) EXE自身文件名 ParamStr(1) 第1个参数 ParamStr(2) 第2个参数 ParamStr(3) 第3个参数 ParamStr(4) 第4个参数 复制楼上各位的,另外说一下参数可以加 - 也可以不加哦
lyhoo163 2016-03-17
  • 打赏
  • 举报
回复
订正:i 值取0-ParamCount
lyhoo163 2016-03-17
  • 打赏
  • 举报
回复
一、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命令行参数

  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事件中

  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);
moonspot 2016-03-17
  • 打赏
  • 举报
回复
简的可以使用 ParamCount 获取参数个数 ParamStr(0) 表示程序本身名称 ParamStr(1) 表示第一个参数 ParamStr(2)表示第二个参数 ... 比如: for i:=1 to ParamCount do ShowMessage(ParamStr(i)); 如果参数比较长带有空格,使用API函数GetCommandLine获取或许更可靠。

16,746

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧