devxlogo

CreateFileAssociation – Associate a file extension to a program

CreateFileAssociation – Associate a file extension to a program

Private Declare Sub SHChangeNotify Lib "shell32.dll" (ByVal wEventId As Long, _    ByVal uFlags As Long, ByVal dwItem1 As Long, ByVal dwItem2 As Long)Const SHCNE_ASSOCCHANGED = &H8000000Const SHCNF_IDLIST = 0' Create the new file association'' Extension is the extension to be registered (eg ".cad"' ClassName is the name of the associated class (eg "CADDoc")' Description is the textual description (eg "CAD Document"' ExeProgram is the app that manages that extension (eg "c:CadMyCad.exe")'' NOTE: requires CreateRegistryKey and SetRegistryValue functionsSub CreateFileAssociation(ByVal Extension As String, ByVal ClassName As String, _    ByVal Description As String, ByVal ExeProgram As String)    Const HKEY_CLASSES_ROOT = &H80000000        ' ensure that there is a leading dot    If Left(Extension, 1) <> "." Then        Extension = "." & Extension    End If       ' create a new registry key under HKEY_CLASSES_ROOT    CreateRegistryKey HKEY_CLASSES_ROOT, Extension    ' create a value for this key that contains the classname    SetRegistryValue HKEY_CLASSES_ROOT, Extension, "", ClassName    ' create a new key for the Class name    CreateRegistryKey HKEY_CLASSES_ROOT, ClassName & "ShellOpenCommand"    ' set its value to the command line    SetRegistryValue HKEY_CLASSES_ROOT, ClassName & "ShellOpenCommand", "", _        ExeProgram & " ""%1"""    ' notify Windows that file associations have changed    SHChangeNotify SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0End Sub

See also  Is Machine Learning Automating Creativity in Graphic Design?
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist