如做播放器时:
   rmvb,rm,ra等是图标A
   avi,mpg等是图标B
   mp4是图标C请问怎么做?

解决方案 »

  1.   

    你好,你的意思是指,在圖標a按下去時,程式就會播放rmvb,rm,ra的格式嗎?問題請詳細說明,謝謝。
      

  2.   

    macchen1224: 你好,非常抱歉我的问题没有说明清楚。是这样的,当安装好暴风影音后,根据视频文件的格式,他们的图标也不一样。
          rmvb等格式的图标是A.ico,就像这样
         avi等是格式的图标B.ico
         mp4等是格式的图标C.ico还是看图片吧:
      

  3.   

    其实这就是在注册表中进行了文件关联(包括文件打开关联,文件图标关联),看下面这个例子:procedure TForm1.Button1Click(Sender: TObject);
    var
      reg: TRegistry;
    begin
      reg := TRegistry.Create;
      reg.RootKey := HKEY_CLASSES_ROOT;  {在注册表中添加我们虚拟的 .tst 格式, 并指定默认项的值是 TestFile}
      reg.OpenKey('.tst', True);
      reg.WriteString('', 'TestFile');
      reg.CloseKey;  {文件打开关联}
      reg.OpenKey('TestFile\shell\open\command', True);
      reg.WriteString('', ParamStr(0) + ' %1');
      reg.CloseKey;  {文件图标关联}
      reg.OpenKey('TestFile\DefaultIcon', True);
      reg.WriteString('', ParamStr(0) + ',0');
      reg.CloseKey;  reg.Free;  {刷新图标显示}
      SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
    end;{清除上面的设置}
    procedure TForm1.Button2Click(Sender: TObject);
    var
      reg: TRegistry;
    begin
      reg := TRegistry.Create;
      reg.RootKey := HKEY_CLASSES_ROOT;
      reg.DeleteKey('.tst');
      reg.DeleteKey('TestFile');
      reg.Free;
      SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
    end;也可以通过手动设置文件关联,方法是:打开一个文件夹--工具--文件夹选项--“文件类型”选项卡---单击下面的“高级”。