你可以搜一下,很多文章,主要是修改注册表HKEY_CLASSES_ROOT中的东西

解决方案 »

  1.   

    uses Registry;procedure TMainForm.RegistryFile;
    const
      Key = 'Open With my Program\command';
    var
      reg: TRegistry;
    begin
      reg := TRegistry.Create;
      reg.RootKey := HKEY_CLASSES_ROOT;
      reg.OpenKey('*\shell', true);
      reg.CreateKey(key);
      reg.CloseKey;
      reg.OpenKey('*\shell\' + key, true);
      reg.WriteString('', Application.ExeName + ' %1');
      reg.CloseKey;
      reg.Free;
    end;
      

  2.   

    楼上的,你的程序在 NT 下不行的,NT 不允许直接创建多级键值,只能一层一层的创建,删除时也是如此。
      

  3.   

    if ParamStr > 0 then
    ShowMessage(ParamStr(0));