Newsgroup: it.comp.lang.visual-basic
Titolo: Associare un file ad un programma

Ciao a tutti!
Vorrei sapere come associare ad una certa estensione di file (*.xxx) un dato
programma (pippo.exe) in modo automatico da Visual Basic 5 (senza RegEdit).
P.S.: gradirei una risposta via e-mail (non leggo sempre le news...)
Anticipatamente ringrazio.
mc...@iname.com

 Anticipatamente ringrazio.
Prego


Nel sito di Cesare Rizzi ho trovato "Per conoscere qual'è l'eseguibile
necessario per aprire un file" ma non come associare ad una certa estensione
un eseguibile. Se qualcuno mi può essere d'aiuto, lo ringrazio in anticipo


Bisogna giocare con le API e il registro di configurazione:
-------------------
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = &H80000006
Public Const REG_SZ = 1
Public Const REG_DWORD = 4
Public Const ERROR_MORE_DATA = 234
Public Const ERROR_SUCCESS = 0&
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA"
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
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 lpData As String, ByVal cbData
As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Function WriteString(ByVal key As Long, ByVal subKey As String,
ByVal szEntry As String, ByVal Stringa As String) As Integer
   Dim hkeySub As Long
   Dim rc, dwWhat As Long
   rc = RegCreateKey(key, subKey, hkeySub)
   If rc <> ERROR_SUCCESS Then
      MsgBox "Errore"
      WriteString = rc
      Exit Function
   End If
   rc = RegSetValueExString(hkeySub, szEntry, 0, REG_SZ, Stringa,
Len(Stringa))
   RegCloseKey (hkeySub)
   WriteString = rc
End Function
Public Sub AssociaFile(ByVal estensione As String, ByVal descrizioneFile As
String, ByVal pathAppAssociata As String, ByVal pathIcona As String)
   Dim PercorsoChiaveSecondaria As String
   Dim risultato As Long
   PercorsoChiaveSecondaria = estensione
   risultato = WriteString(HKEY_CLASSES_ROOT, PercorsoChiaveSecondaria, "",
descrizioneFile)
   PercorsoChiaveSecondaria = descrizioneFile & "\DefaultIcon"
   risultato = WriteString(HKEY_CLASSES_ROOT, PercorsoChiaveSecondaria, "",
pathIcona)
   PercorsoChiaveSecondaria = descrizioneFile & "\shell\Apri\command"
   risultato = WriteString(HKEY_CLASSES_ROOT, PercorsoChiaveSecondaria, "",
pathAppAssociata & " %1")
   PercorsoChiaveSecondaria = descrizioneFile
   risultato = WriteString(HKEY_CLASSES_ROOT, PercorsoChiaveSecondaria, "",
descrizioneFile)
End Sub
-------------------------------
Stupido esempio di utilizzo:
-----------------------------
AssociaFile ".txt", "Documento di testo", "C:\WINDOWS\NOTEPAD.EXE" ,
"C:\Programmi\Plus!\Themes\Scienza Risorse del computer.ico"
-----------------------------
Per maggiori informazioni su come variare le chiavi del registro di
configurazione, fai un giro sul sito comune:
http://www.murialdo.it/it_lang_vb
 __     __
<o>  <o>
      []
  \____/   ......(Statti bene!)
Pasquale Minerva
mine...@libero.it

>
