播放文件与播放软件的关联 + 修改图标(100分)

  • 主题发起人 主题发起人 guojinbin
  • 开始时间 开始时间
G

guojinbin

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现播放文件与播放软件的关联,即双击播放文件就打开播放软件,还有如何修改播放文件的图标,安装或运行第一次就把播放文件的图标改了
 
在安装程序里制作!
 
to:wtopia
不能程序里实现吗?
 
uses

registry, shlobj;

procedure TForm1.RegisterFileType(prefix: string;
exepfad: string);

var

reg: TRegistry;

begin


reg := TRegistry.Create;

try

reg.RootKey := HKEY_CLASSES_ROOT;

//create a new key --> .pci

reg.OpenKey('.' + prefix, True);

try

//create a new value for this key --> pcifile

reg.Writestring('', prefix + 'file');

finally

reg.CloseKey;

end;


//create a new key --> pcifile

reg.CreateKey(prefix + 'file');

//create a new key pcifile

reg.OpenKey(prefix + 'file', True);

//and create a value where the icon is stored --> c:.exe,0

try

reg.Writestring('', exepfad + ',0');

finally

reg.CloseKey;

end;


reg.OpenKey(prefix + 'file', True);

//create value where exefile is stored --> c:.exe "%1"

try

reg.Writestring('', exepfad + ' "%1"');

finally

reg.CloseKey;

end;


finally

reg.Free;

end;


SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);

end;


 

procedure TForm1.Button1Click(Sender: TObject);

begin


RegisterFileType('txt', '你的执行文件如:c:/edit.exe');

end;
 
好复杂呀!
 
to Genl:
能具体一点吗?
 
其实不复杂,就是在注册表里处理一下,告诉系统扩展名(如“txt”)对应的键(如“TxtFile”),在这个“TxtFile”下面就有一些子键指定打开的程序和显示时使用的图标,完成更改注册表后,再告诉系统立即刷新一下就OK了。

如果需要的话,我这有一个小的示例程序,需要的话请来信说明!coolqiang@163.net
 
改注册表
 
看看WINRAR在注册表里的关联方法就OK了,非常简单.
 
文件关联
改写注册表就能实现文件关联;

双季播放
在主窗体的OnCreate或OnShow中添加
if ParamCount > 0 then

begin

ShewMessage(ParamStr(1));//ParamStr(1)是双击文件文件名
end;
 
多人接受答案了。
 
后退
顶部