2009-07-28 8 views

답변

0

좋아, VB 2005에서 함께 던졌지만 VB 2008에서도 작동해야합니다.

Imports System 
Imports Microsoft.Win32.Registry 

Public Class Form1 
    ' Controls: 
    ' txtFT: Textbox, where the user inputs the filetype (eg. ".jpg") 
    ' txtIcon: Textbox, where the user inputs the path to the icon (eg. "C:\icon.ico") 
    ' btnChangeIcon: Button, to call the function. 
    '----------------------------------------------------------------------------------------------- 


    Public Sub SetDefaultIcon(ByVal FileType As String, ByVal Icon As String) 
     Dim rk As Microsoft.Win32.RegistryKey = ClassesRoot 
     Dim rk1 As Microsoft.Win32.RegistryKey = ClassesRoot 
     Dim ext As Microsoft.Win32.RegistryKey = rk.OpenSubKey(FileType) 
     Dim regtype As String = ext.GetValue("") 
     ext = rk1.OpenSubKey(regtype, True).OpenSubKey("DefaultIcon", True) 
     ext.SetValue("", Icon) 
     MessageBox.Show(ext.ToString) 
    End Sub 

    Private Sub btnChangeIcon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnChangeIcon.Click 
     SetDefaultIcon(txtFT.Text, txtIcon.Text) 
    End Sub 
End Class 

Windows XP에서 테스트되었습니다.

보시다시피, 파일 형식을 가져오고 (기본값) 값을 가져옵니다. 이 값은 DefaultIcon 키가 포함 된 연결을 나타냅니다. 사용자는 "txtFT"에 파일 유형을 입력하고 "txtIcon"에 아이콘 파일을 입력합니다. 양식은 Form1입니다. 사용자가 btnChangeIcon을 클릭하면 SetDefaultIcon 함수가 호출됩니다. 사용자가 정보를 입력하지 않고 btnChangeIcon을 클릭하면 문제가 될 수 있으므로 해당 경로를 사용하는 경우 오류 처리를 추가해야합니다. 코드를 통해 설정한다면 괜찮을 것입니다.

연결이없는 아이콘의 경우 사용자가 직접 연결하는 것 외에 다른 방법을 사용합니다.

  • SP
0

Windows에서 파일 확장명 및 관련 아이콘과 프로그램은 시스템 전체 연결에 대해 레지스트리에 HKEY_CLASSES_ROOT\으로 저장됩니다.

Windows XP부터는 현재 사용자의 파일 연결에 대해 HKEY_CURRENT_USER\Software\Classes\이 있지만 지금까지 거의 사용되지 않았습니다.

당신이 .txt에 대한 정보를 변경하려는 경우 예를 들어, 당신이 먼저 (가 txtfile있어 내 시스템에서) 기본값 HKEY_CLASSES_ROOT\.txt\을 확인 것이고, 다시 HKEY_CLASSES_ROOT에 일치 키로 이동 - 예, 그것은 것 HKEY_CLASSES_ROOT\txtfile\DefaultIcon이되어야합니다.

하지만 VB.NET을 사용하지 않아 더 이상 도움이되지 않습니다. (아마도 여기에 설명 된 것보다 이 더 좋은 방법 일 것입니다.)

관련 문제