这里有好几个问题(如何关联文件。。。)(100分)

  • 主题发起人 主题发起人 next
  • 开始时间 开始时间
N

next

Unregistered / Unconfirmed
GUEST, unregistred user!
先谢过!
1。请问如何让自己写的程序关联某种类型的文件?

2。如何把程序放到开始菜单,如何建立桌面快捷方式,如何建立程序组?

3。怎样使一个TIcon类的图标在输出为文件时(SaveToFile)不是16色(保持256色)呢?

我用ExtractIconEx得到应用程序的图标,但保存时只能是16色的,唉!

4、在用MciSendString做CD播放器,请问如何在播放完一首后自动播放下一首.


 
首先注册文件关联肯定要应用注册表
所以在程序的uses部分加入Registry单元;
然后这里有个已经定义的过程,如下:
代码:
procedure SetFileAssociate(MyExt,MyFileType,FileTypeDescription,Exefile:string);
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try 
    Reg.RootKey := HKEY_CLASSES_ROOT;
    Reg.OpenKey(MyExt, True);
    Reg.WriteString('', MyFileType);
    Reg.CloseKey; 
    Reg.OpenKey(MyFileType, True);
    Reg.WriteString('', FileTypeDescription);
    Reg.CloseKey; 
    Reg.OpenKey(MyFileType + '/DefaultIcon', True);
    Reg.WriteString('', Exefile + ',1');
    Reg.CloseKey;
    Reg.OpenKey(MyFileType + '/Shell/Open', True); 
    Reg.WriteString('', '&Open');
    Reg.CloseKey;
    Reg.OpenKey(MyFileType + '/Shell/Open/Command', True);
    Reg.WriteString('', '"' + Exefile + '" "%1"');
    Reg.CloseKey;
    //SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
  finally
    Reg.Free;
  end;
end;
结束。。。
然后通过
代码:
 SetFileAssociate('.swf','文件类型名称','文件类型注释',application.ExeName);
-------------------
当程序打开后执行以下代码来代开所要打开的关联文件:
代码:
 filename := '';
 if paramcount<>0 then
   For i := 1 To ParamCount do
    begin
     filename := filename + ParamStr(i);
    end;
结束。。。
 
至于第四个问题可以使用一个定时器,进行条件判断
如果歌曲已经结束就进行下一首的播放
当然这种方法不是很好
 
感谢gongji,给你送上50分.
 
接受答案了.
 
后退
顶部