什么是文件关联?如何修改文件关联的问题?谢谢了,我只是想了解一下。

什么是文件关联?如何修改文件关联的问题?谢谢了,我只是想了解一下。,第1张

当你双击一个TXT文件时,通常情况下系统会启动“记事本”打开这个文件。可是,当系统中安装的另一个应用程序接管了这个任务后,双击TXT文件,打开该文件的程序就会变成另外一个。我们说,这是文件关联发生了变化。如何关联文件,如何改变文件的关联,如何恢复文件的默认关联,如何取消文件的关联等问题是初学者常常感到为难和需要解决的问题。下文可以为你指点迷津。文件关联就是将一种类型的文件与一个可以打开它的程序建立起一种依存关系。举个例子来说,位图文件(BMP文件)在Windows中的默认关联程序是“画图”,如果将其默认关联改为用ACDSee程序来打开,那么ACDSee就成了它的默认关联程序。一个文件可以与多个应用程序发生关联,我们可以利用文件的“打开方式”进行关联选择。我们也可以删除因误 *** 作而引起的错误文件关联,可以根据需要新建文件关联,在有些软件中还可以恢复文件的关联。正汪下面就具体来谈谈文件关联的一些方法和技巧。一、利用“打开方式”即时新建文件关联 用鼠标双击一个没有被任何程序关联的文件,桌面上就会d出一个“打开方式”的窗口。在这里就可以根据不同文件的打开方式选择合适的程序来打开文件了。这里要注意的是,如果在下面的“始终使用该程序打开这种类型的文件”前打勾,就会默认为当你双击这类文件时将自动启动那个被选中的程序来打开这类文件。   二、利用“文件夹选项”全面定制文件关联 应用程序和文档之间的文件关联是可以自己新建的:打开Windows的“资源管理器”,选择系统菜单中的“查看”→“文件夹选项”→“文件类型”,在其中单击“新类型”,可以打开“添加新文件类型”窗口,在这里可以编辑新的文件类型。假定希望扩展名为AAA的文件用“记事本”程序打开,就可以在“相关扩展名”中输入AAA。点击“更改图标”按钮,可以选择自己喜欢的文件图标。因为是新建的文件类型,“ *** 作”栏中没有任何用来编辑或打开的程序。点击“新建”按钮就可以进行这项编辑。在d出的“新 *** 作”窗口的“ *** 作”栏中输入open,为默认的打开命令,在“用于执行 *** 作的应用程序”栏中输入打开程序的路径,也可以通过“浏览”按钮进行选择(这里使用“记事本”作为编辑程序)。好了,新建一个扩展名为AAA的文件看看,是不是可以用“记事本”直接打开了?三、为一个文档建立多个程序关联 当一个文档与多个应用程序建立了关联后,在右键菜单中会形成多个不同的打开该文档的程序选项,这样可以根据不同需要选择不同的方式打开文件。为一个文档建立多个程序关联的方法与第二项中提到的方法相同,只是重复几个过程罢了。这里不再赘述。四、更改文件关联的方法 要关联一个已经被关联的文件,可以在用鼠标右键单击这个文件的同时按住Shift键不放,这样在d出的菜单中就会出现一个“打开方式”的裤樱选项,选中这一项会d出“打开方式”的窗口,同样可以选择其中的一个程序作为它的默认打开方式。 上面说的是Windows 98的情况,在Windows 2000以上版本中不需要按Shift键,直接用右键菜单选择打开程序。 五、删除误 *** 作的文件关联选项 有时我们可能会误把图片类文件当作文本文件用“记事本”程序打开,那么在这类图片文件的“打开方式”菜单中就会出现“举纯仔记事本”一项,非常讨厌。这时可以通过修改注册表来删除误 *** 作的文件关联项目。方法如下:打开“注册表编辑器”,找到[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts]子键,再选择要修改的“打开方式”菜单的扩展名的子项,然后选择该子项中的OpenwillList,删除右侧窗口中误编辑的程序的键值后,重新启动电脑就可以了。 启动“注册表编辑器”的方法是,在“开始”菜单的“运行”命令框中键入regedit,然后回车。 六、恢复常用软件的文件关联 你可能会遇到这样的情况,当安装了一个新软件后,原来熟悉的文件图标突然改变了,打开它的程序也不是原来的了。其实,如果你想要恢复原来的默认打开方式,还是有办法的。一般来说,一款负责任的应用程序本身就提供这种文件关联的恢复功能。这里列举三个软件来说说如何恢复常用软件的文件关联。 1.看图软件ACDSee。打开“工具”菜单上的“文件关联”,会d出一个“ACDSee集成环境”窗口,在“图像文件”栏中可以恢复常用的图像文件与ACDSee的关联。2.播放软件Winamp。在Winamp界面上单击鼠标右键,依次选择“选项”→“参数选择”→“文件类型”,在“文件类型设置”中可以恢复音乐文件与Winamp的关联。 3.压缩软件WinZip。依次选择“选项”→“配制”→“系统”→“关联”,会d出一个“WinZip关联窗口”,在这里可以恢复压缩文件WinZip的关联

自己先建立两个命令按钮cmdReg、cmdDel,接着拷贝下列代码。

'建立子项subkey , shubkey2

'裤模CreateNewKey HKEY_CURRENT_USER, "Software\SubKey1\SubKey2"

'建立REG_SZ类型键"text" ,并赋予项值"this is just a test"

'SetKeyValue HKEY_CURRENT_USER, "Software\SubKey1\SubKey2", "Test","0", "This is just a test", REG_SZ

'删除子项毁闷subkey \ shubkey2下的纤纯弯"test"键

'DeleteValue HKEY_CURRENT_USER, "Software\SubKey1\SubKey2", "Test"

'删除子项shubkey2

'DeleteKey HKEY_CURRENT_USER, "Software\SubKey1\SubKey2"

Option Explicit

Private Const REG_SZ As Long = 1

Private Const REG_DWORD As Long = 4

Private Const HKEY_CLASSES_ROOT = &H80000000

Private Const HKEY_CURRENT_USER = &H80000001

Private Const HKEY_LOCAL_MACHINE = &H80000002

Private Const HKEY_USERS = &H80000003

Private Const ERROR_NONE = 0

Private Const ERROR_BADDB = 1

Private Const ERROR_BADKEY = 2

Private Const ERROR_CANTOPEN = 3

Private Const ERROR_CANTREAD = 4

Private Const ERROR_CANTWRITE = 5

Private Const ERROR_OUTOFMEMORY = 6

Private Const ERROR_INVALID_PARAMETER = 7

Private Const ERROR_ACCESS_DENIED = 8

Private Const ERROR_INVALID_PARAMETERS = 87

Private Const ERROR_NO_MORE_ITEMS = 259

Private Const KEY_ALL_ACCESS = &H3F

Private Const REG_OPTION_NON_VOLATILE = 0

Private Const SPI_SETDESKWALLPAPER = 20

Private Const SPIF_SENDWININICHANGE = &H2

Private Const SPIF_UPDATEINIFILE = &H1

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

Private Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long

Private Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long

Private Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Long, lpcbData As Long) As Long

Private Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long

Private Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long

Private Declare Function RegDeleteKey&Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String)

Private Declare Function RegDeleteValue&Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String)

Private Foucs As Boolean

Private TimerOver As Long

'删除子项

Private Function DeleteKey(lPredefinedKey As Long, sKeyName As String)

Dim lRetVal As Long

Dim hKey As Long

lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)

lRetVal = RegDeleteKey(lPredefinedKey, sKeyName)

RegCloseKey (hKey)

End Function

'删除键

Private Function DeleteValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)

Dim lRetVal As Long

Dim hKey As Long

lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)

lRetVal = RegDeleteValue(hKey, sValueName)

RegCloseKey (hKey)

End Function

'建立键

Private Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long

Dim lValue As Long

Dim sValue As String

Select Case lType

Case REG_SZ

sValue = vValue

SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, LenB(sValue))

Case REG_DWORD

lValue = vValue

SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, lValue, 4)

End Select

End Function

'建立子项

Private Function CreateNewKey(lPredefinedKey As Long, sNewKeyName As String)

Dim hNewKey As Long

Dim lRetVal As Long

lRetVal = RegCreateKeyEx(lPredefinedKey, sNewKeyName, 0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hNewKey, lRetVal)

RegCloseKey (hNewKey)

End Function

'建立键并赋值

Private Function SetKeyValue(lPredefinedKey As Long, sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long)

Dim lRetVal As Long

Dim hKey As Long

lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)

lRetVal = SetValueEx(hKey, sValueName, lValueType, vValueSetting)

RegCloseKey (hKey)

End Function

Private Sub cmdDel_Click()

DeleteKey HKEY_CLASSES_ROOT, ".jdc"

DeleteKey HKEY_CLASSES_ROOT, "AAAAAA\Shell\Open\Command"

DeleteKey HKEY_CLASSES_ROOT, "AAAAAA\Shell\Open"

DeleteKey HKEY_CLASSES_ROOT, "AAAAAA\Shell"

DeleteKey HKEY_CLASSES_ROOT, "AAAAAA\DefaultIcon"

DeleteKey HKEY_CLASSES_ROOT, "AAAAAA"

End Sub

Private Sub cmdReg_Click()

Dim ss As String

ss = Chr(34)

CreateNewKey HKEY_CLASSES_ROOT, ".jdc"

SetKeyValue HKEY_CLASSES_ROOT, ".jdc", "", "AAAAAA", REG_SZ

CreateNewKey HKEY_CLASSES_ROOT, "AAAAAA\DefaultIcon"

CreateNewKey HKEY_CLASSES_ROOT, "AAAAAA\Shell"

CreateNewKey HKEY_CLASSES_ROOT, "AAAAAA\Shell\Open"

CreateNewKey HKEY_CLASSES_ROOT, "AAAAAA\Shell\Open\Command"

SetKeyValue HKEY_CLASSES_ROOT, "AAAAAA\DefaultIcon", "", "%SystemRoot%\\System32\\shell32.dll,-153", REG_SZ

SetKeyValue HKEY_CLASSES_ROOT, "AAAAAA\Shell\Open", "", "打开(&O)", REG_SZ

SetKeyValue HKEY_CLASSES_ROOT, "AAAAAA\Shell\Open\Command", "", ss &"C:\MyId\Notepad.exe\" &ss &" " &ss &" %1" &ss, REG_SZ

End Sub

右键需要建立关联的文件,在d出的菜单中选“打开方式”,如果要修改的话,右键的时候需同时按shift键。(注意,一定要同时按住shift键,否则不会出现“打开方式”)。在随后的小窗口中选择打开该文件的程序即可!如果要建立永久性的关联,则还需要在下面的“始终使用该程序打开这种类型的文件”前打勾唤枯。该方法比较简单,但需要网友们对电脑有一定的了解,能大致知道何种文件调用何种程序。

所谓“文件关联”,通俗地讲就是调用一个(一些)程序来打开与这些皮笑程序相对应的文件!比如*.txt文件可和握洞以用notepad(记事本)或wordpad(写字板)程序来打开,*.zip文件可以用程序winzip来打开,*.chm文件用程序“hh”来打开等等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12133475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存