none
无法修改特定后缀名文件的关联程序!!怎么解决? RRS feed

全部回复

  • 怎么编辑不了关联并打开某后缀扩展名的文件了?我咋没发现这么个简单小问题居然能难住谁!

     

    在Vista里,想要修改默认的关联程序可在控制面板里设置啊,如下:

    Control Panel -> Default Programs -> Associate a file type or protocol with a program

     

    抱歉,我的是英文版,所以给出了英文的步骤,你如是中文版,也可在控制面板的“默认程序”设置里找到有对应的。

     

     

     

    另外最不济你还可以用那个万能方法,也就是说实际上控制面板的设置最终也要作用在注册表里,那你直接去改注册表是任何时候都通用的,就连你的控制面板被你的管理员给屏蔽了或临时坏掉不能用了,只要你还能在搜索框里启用并运行注册表编辑器regedit.exe或regedt32.exe,那么就可以通过编修注册表相应项来达到修改某特定后缀名的文件。

     

     

    我先假设你要修改文件后缀名为.abc吧(我瞎编的后缀名.abc,具体你想要改的是哪个后缀你就换成你的后缀就得了),那么你可以启动regedit.exe或regedt32.exe后,展开到如下这一项:

     

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\OpenWithList

    你看到没有?你可以在这里修改默认打开它的程序的路径位置和排列顺序。

     

    而至于你选择默认打开它的程序,则在:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\OpenWithProgids

    下面。

     

    而你作为用户手动选择了用哪些程序去打开它,则在

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\UserChoice

    下面。

     

    我这样一解释,你应该明白了吧,其实控制面板里的设置也是作用在注册表的这个地方的,由于你开贴没告诉人们你要修的后缀名是什么,而我举例一个.abc,你只消将我举例的.abc换成你想要修的后缀名即可,比如你想修的后缀是.xyz,那么就找注册表里展开到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xyz,然后按照我前面所述去修改相应设置,即可。好运,祝你修成!

    2008年8月30日 6:30
  • 控制面板不行,不然我就不问了

    那个修改注册表的,OpenWithProgids

    里面都是2进制串,怎么指定某个程序的路径?

    2008年8月30日 9:51
  •  教父 写:

    控制面板不行,不然我就不问了

    那个修改注册表的,OpenWithProgids

    里面都是2进制串,怎么指定某个程序的路径?

     

    老兄本以为您早都修好了,没成想还没开窍啊,看来您是一个不熟悉注册表基本知识的程序员了,当然我也是一个不熟悉注册表的程序员,但我似乎比您强上一点。既然您不太熟注册表,那就不是一句半句能说清楚的了,OpenWithProgids本来就是二进制一般0值,靠它的名与UserChoice以及注册表另外地方的类组件注册值来找到程序。

     

    这样好了,我告你一个最简单的法子,准保行,你先启动regedit.exe或regedt32.exe后,展开到如下这一项:

     

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pas

     

    然后请鼠标右击左窗格的.pas,从快捷菜单上选择“导出”(Export),把这里的设置导出为.reg文件(您自己命个名,比如取名“dotPas.reg”),这个是以作为防备万一的备份,如果有什么差池的话您可以通过双击这个文件来恢复相关注册表项。

     

    既然你已经防范万一了,那就无后顾了。先将HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pas\OpenWithProgids

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pas\UserChoice

    这两个都删除。删除的方法是对准它们,然后按Del键,当问你是否确认删除时选“是”。

     

    再把HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pas\OpenWithList下面的那些字符串键也统统删除,比如abc呀,都给删除掉,连给它们排序的MRUList也删除掉,(Default)或者中文(默认)是删不掉的,那你也对准它按一下Del键以确保它键值是设为未设状态(value not set)。这下就可以了,下一步为了你方便操作,你再到控制面板的“默认程序”里,Control Panel -> Default Programs -> Associate a file type or protocol with a program,为你的.pas扩展名的文件选上一个默认打开它的程序(要选对路径啊)。因为你之前已在注册表里将阻碍你改动它的那些已坏掉的设置都统统删除了,那么这回一定能在控制面板里设成,也定能选上freepascal作为默认打开你.pas后缀的程序;如还不行那可真是活见鬼了!(那请你给上图说明你设置的过程了,这里虽然不可贴图,但可以给出外链接,你可以把操作过程截图上传到某个允许外链的图库里,然后再在这里给出图的链接地址。有图的话,大家更好帮你参谋。但相信你只要照我说的去做,一定能行,如果你这样都还不成的话,那可真是活见鬼了。)

    2008年8月30日 17:33
  •  

    如果是Vista操作系统可以通过控制面板--默认程序--设置关联,选择要关联的文件后缀名后,修改关联的程序!

    关联程序也可以通过注册表的方法:

    举例关联txt后缀名的文件

    注册表的位置如下HKEY_CLASSES_ROOT\txtfile\shell\open\command下的“默认值”键值

    %SystemRoot%\system32\NOTEPAD.EXE %1

    如果要修改txt后缀名的文件给写字板默认打开,可以把“默认值”键值修改如下

    %ProgramFiles%\Windows NT\Accessories\wordpad.exe %1

     

    如果你想关联pas后缀名的文件请到如下注册表位置,参考上述方法修改就可以!

    HKEY_CLASSES_ROOT\pasfile\shell\open\command

    2008年8月30日 18:02
  •  HuangYuanNong 写:

     

    如果是Vista操作系统可以通过控制面板--默认程序--设置关联,选择要关联的文件后缀名后,修改关联的程序!

    关联程序也可以通过注册表的方法:

    举例关联txt后缀名的文件

    注册表的位置如下HKEY_CLASSES_ROOT\txtfile\shell\open\command下的“默认值”键值

    %SystemRoot%\system32\NOTEPAD.EXE %1

    如果要修改txt后缀名的文件给写字板默认打开,可以把“默认值”键值修改如下

    %ProgramFiles%\Windows NT\Accessories\wordpad.exe %1

     

    如果你想关联pas后缀名的文件请到如下注册表位置,参考上述方法修改就可以!

    HKEY_CLASSES_ROOT\pasfile\shell\open\command

     

    HKEY_CLASSES_ROOT\ 这个地方也就是我之前说过的“另外地方的类组件注册值”地方了,不过不推荐楼主改这个地方,这个位置一旦菜鸟改坏,后果很严重。

     

    事实是它的设置不仅仅在HKEY_CLASSES_ROOT\pasfile下面,还更在HKEY_CLASSES_ROOT\.pas等多个地方都有。

     

    而我前面给出的已经足够可以了,只要照做准行,这是我打从win95以来都屡试不爽的安全法子。待熟悉注册表了,再去了解什么HKEY_CLASSES_ROOT\pasfile下面以及HKEY_CLASSES_ROOT\.pas下面的设置究竟为何,这样才更好。

    2008年8月30日 18:18