VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



Associate a file extension with your icon and your program.

by Franco Breciano (1 Submission)
Category: Registry
Compatability: Visual Basic 5.0
Difficulty: Unknown Difficulty
Originally Published: Mon 12th November 2001
Date Added: Mon 8th February 2021
Rating: (1 Votes)

Associate a file extension with your icon and your program.

API Declarations


Alias "RegCreateKeyA" (ByVal hKey As Long, _
ByVal lpSubKey As String, _
phkResult As Long) As Long

Private Declare Function RegSetValue Lib "advapi32.dll" _
Alias "RegSetValueA" (ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByVal dwType As Long, _
ByVal lpData As String, _
ByVal cbData As Long) As Long

' Return codes from Registration functions.
Const ERROR_SUCCESS = 0&
Const ERROR_BADDB = 1&
Const ERROR_BADKEY = 2&
Const ERROR_CANTOPEN = 3&
Const ERROR_CANTREAD = 4&
Const ERROR_CANTWRITE = 5&
Const ERROR_OUTOFMEMORY = 6&
Const ERROR_INVALID_PARAMETER = 7&
Const ERROR_ACCESS_DENIED = 8&

Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const MAX_PATH = 260&
Private Const REG_SZ = 1

Private Declare Sub SHChangeNotify Lib "shell32.dll" _
(ByVal wEventId As Long, _
ByVal uFlags As Long, _
dwItem1 As Any, _
dwItem2 As Any)

Const SHCNE_ASSOCCHANGED = &H8000000
Const SHCNF_IDLIST = &H0&


Rate Associate a file extension with your icon and your program.



 
   Dim sKeyName As String   ' Holds Key Name in registry.
   Dim sKeyValue As String  ' Holds Key Value in registry.
   Dim ret&           ' Holds error status if any from API calls.
   Dim lphKey&        ' Holds  key handle from RegCreateKey.
   Dim path As String
 
   path = App.path & "\"
   
' Creates a key for the program
    sKeyName = "MyProgram"
    sKeyValue = "MyProgram File"
   ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
   ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)
 
' Creates an entry for the program previously created and 
' associates the name to the file extension
   sKeyName = ".tst"
   sKeyValue = "NAME OF THE PROGRAMVmailProducer"
   ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
   ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)
 
' Associate the name of the program with the path of the program
   sKeyName = "MyProgram"
   sKeyValue = App.path + "\MyProgram.exe %1"
   ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
   ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ, _
                       sKeyValue, MAX_PATH)
 
' Set the icon
   sKeyName = "MyProgram"
   sKeyValue = path & "Icon.ico"
   ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
   ret& = RegSetValue&(lphKey&, "DefaultIcon", REG_SZ, _
                       sKeyValue, MAX_PATH)
 
' Notify the icon has changed
   SHChangeNotify SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0
 
End Function

Download this snippet    Add to My Saved Code

Associate a file extension with your icon and your program. Comments

No comments have been posted about Associate a file extension with your icon and your program.. Why not be the first to post a comment about Associate a file extension with your icon and your program..

Post your comment

Subject:
Message:
0/1000 characters