程序必须接受命令行参数.
Explorer通过将Swf文件的文件名作为第一个参数调用你的程序.

解决方案 »

  1.   

    因为你没有传递参数给程序,你参考一下下面的贴子
    http://www.csdn.net/expert/topic/742/742491.xml?temp=.5188105
      

  2.   

    http://www.csdn.net/expert/topic/674/674985.xml?temp=.9888727
      

  3.   

    我想 artman是对的,把你的程序设计成可以接收参数吧!
      

  4.   

    楼上说的不错
    请参考我的方法procedure TForm1.N3Click(Sender: TObject);
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      try
        with Reg do
        begin
          RootKey := HKEY_CLASSES_ROOT;
          OpenKey('\*\Shell\加入eulb''s 文件改名器\Command', True);
          if N3.Checked then
            WriteString('', Application.ExeName + ' "%1"')
          else
            DeleteKey('\*\Shell\加入eulb''s 文件改名器');
        end;
      finally
        Reg.Free;
      end;
    end;其中' "%1"'的空格不能少,%1表示把用户双击的文件的完整路径作为第一个参数送到你的程序,而你的程序要做的就是处理好paramstr(1)
      

  5.   

    楼上说的不错
    请参考我的方法procedure TForm1.N3Click(Sender: TObject);
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      try
        with Reg do
        begin
          RootKey := HKEY_CLASSES_ROOT;
          OpenKey('\*\Shell\加入eulb''s 文件改名器\Command', True);
          if N3.Checked then
            WriteString('', Application.ExeName + ' "%1"')
          else
            DeleteKey('\*\Shell\加入eulb''s 文件改名器');
        end;
      finally
        Reg.Free;
      end;
    end;其中' "%1"'的空格不能少,%1表示把用户双击的文件的完整路径作为第一个参数送到你的程序,而你的程序要做的就是处理好paramstr(1)
      

  6.   

    在FormCreate事件中读取就可能了。
    if FileExists(ParamStr(1)) then