1.用你的程序替换winamp.exe
2.修改注册表HKEY_CLASS_ROOT下面mp3files下面的command的路径 就行了

解决方案 »

  1.   

    这种方法我知道的但是我要求是和winamp一起运行的说
    哦,大概类似于插件吧。
    修改打开程序的话的确是可以的,但是我要求是不破坏原来的文件关联
    我需要的仅仅是程序关联的
    是有点象病毒,实际上我要做的是一个程序关联的加密因为爸妈经常偷看我的某些东西汗
      

  2.   

    使用hook就可以了
    网上有很多相关的资料可以参考
      

  3.   

    csdn vb文档中心中有篇叫:"文件关联    visualbasic2000(原作) "
    不过文章后的ss=command()返回文件名要注意啊!如c:\11.mp3
    但在command()返回的是"c:\11.mp3",多了双引号啊
    应该ss=left(right(command(),len(command())-1),1)
      

  4.   

    ------------------------------------------------------------------------------------ 文件关联的目的是要实现某种扩展名的文件由相应的应用程序来打开,对于编写的应用软件来说,由于一般都有设计者特定的扩展名的数据文件,软件编制者应在程序中实现自动关联而不能由用户手工去实现。下面给出实现文件关联的实用程序。 ---- 实现文件关联的核心是对注册表的操作, 所有的文件关联都在HKEY—CLASSES— ROOT 下面, 要实现文件关联必须在HKEY—CLASSES—ROOT 中增加两个键值,一是和文件扩展名对应的类型说明,二是对这种类型文件的操作所需要执行的应用程序。下面举例说明,本例实现将扩展名为.xyz的文件定义为“我自己的文件”类型,双击此种类型的文件时执行的打开功能使用记事簿程序。 实现这一功能需要用到Delphi中的函数 RegCreateKey、RegSetValue。实现如下: ---- 在窗体中放置一个按钮,双击按钮写如下代码: procedure TForm1.Button1Click(Sender: TObject); 
    var 
    lphKey: HKEY; 
    sKeyName: string; 
    sKeyValue: string; 
    begin 
    sKeyName := ′myfile′; 
    sKeyValue := ′我的文档′; 
    RegCreateKey(HKEY—CLASSES—ROOT, 
    pchar(sKeyName), lphKey); 
    RegSetValue(lphKey, ′′, REG—SZ, 
    pchar(sKeyValue), 0); 
    sKeyName := ′.xyz′; 
    sKeyValue := ′myfile′; 
    RegCreateKey(HKEY—CLASSES—ROOT, 
    pchar(sKeyName), lphKey); 
    RegSetValue(lphKey, ′′, REG—SZ, 
    pchar(sKeyValue), 0); 
    sKeyName := ′myfile′; 
    sKeyValue := ′c:\Windows\NotePad.exe %1′; 
    RegCreateKey(HKEY—CLASSES—ROOT, 
    pchar(sKeyName), lphKey); 
    RegSetValue(lphKey, ′shell\open\command′, REG—SZ, 
    pchar(sKeyValue), MAX—PATH); 
    end; ---- 建立一新文件,使其扩展名为.xyz,然后双击它看是否是启动记事簿来打开的