普通生成的程序都是双击执行,但是我想做成这样一种方式,如:def.exe /s就代表退出,直接运行就可以执行,请问各位高手,应该怎么做呢?

解决方案 »

  1.   

    for i := 1 to ParamCount  do begin
        if ParamStr(i) = '' then Continue;
        TmpStr := Copy(ParamStr(i),1,1);
        if TmpStr = '/' then begin
          TmpStr1 := TmpStr + UpperCase(Copy(ParamStr(i),2,1));
          TmpStr2 := Trim(Copy(ParamStr(i),3,Length(ParamStr(i))-2));
          if TmpStr2 <> '' then begin
            if TmpStr1 = '/N' then ReSourceName := TmpStr2;  {资源名}
            if TmpStr1 = '/P' then ReSPreFixName := TmpStr2; {资源前缀}
            if TmpStr1 = '/F' then LFilter := TmpStr2;       {资源文件过滤}
            if TmpStr1 = '/T' then ResType := TmpStr2;       {资源类型}
          end;
        end;
      end;
      

  2.   

    这是我的一个做资源文件的程序,里面可以带参数
    MakeRc.exe /n资源名 /p资源前缀 /f资源文件过滤 /t资源类型
      

  3.   

    在 Form的Create过程中加入代码,以下是举例,没测试过  if ParamCount>0 then
      begin
        if ParamStr(1)='/s' then Close;
      end ;
      

  4.   

    用ParamStr、ParamCount就可以获取参数,再作处理。
    如:ParamStr(0) 就是程序的文件名
        ParamStr(1) 就是/s
      

  5.   

    我在creat里加入了代码,但是运行里使用def.exe /s 没有退出,程序仍然运行。还有这种参数方式怎么调适,怎么加入这个“/s”调试
      

  6.   

    呵呵,好玩
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      if ParamCount>0 then
      begin
        if ParamStr(1)='-a' then
        begin
          Application.Terminate;
          Exit;
        end;
      end;
    end;
      

  7.   

    取参数的方法都已经教给楼主了,楼主怎么不会变通一下?
    比如说执行一定时间后退出程序:
    放个Timer,先设为Enabled=false,在Form Create时,如果是指定的参数,就设置Timer的执行间隔时间值,然后设Enabled=true;在Timer的执行事件里写好程序的退出语句。
    以上仅是一个思路,供参考~~~
      

  8.   

    to wudi_1982(闲半年了,要挣点钱过年了!):
    我是说我只会另外写个在进程里直接删除的程序来解决,显得很白痴
      

  9.   

    添加调试参数:
    主菜单--〉Run-->Paramters 在Paramters填写,其它空白
      

  10.   

    或者使用批处理文件。
    打开记事本,保存到Exe文件的目录,后缀名改为Bat,文件内容为:ExeFilename /参数