Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Associare file

E' possibile associare un icona di un prog a un file creato da questo prog
in VB? Se si come? Grazie fin d'ora per l'aiuto che potete darmi. Ciao
Francesco

 Francesco
Post vecchi

Aspetto una risposta! Grazie! Ciao Francesco
"francesco1027" <france...@liberoNOSPAM.it> ha scritto nel messaggio
news:PTUP6.11877$WT5.4...@news.infostrada.it...


 Aspetto una risposta! Grazie! Ciao Francesco
http://groups.google.com/groups?hl=en&lr=&safe=off&group=it.comp.lang.visual
-basic
o anche, se non ricordo male, Sito Comune
ciao
ugo

 ha scritto nel messaggio
news:9f0uur$9t6$1...@lacerta.tiscalinet.it...




Al solito, gradiremmo tutti se si desse un'occhiata ai post vecchi
visto che il problema e' abbastanza tipico.
Poi c'e' il Sito Comune e le Faq.
Comunque, guarda qua in mezzo. Taglia quello che non ti serve.
*********************************
Option Explicit
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
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String,
ByVal lpReserved As Long, lpType As Long, ByVal lpData As Any,
lpcbData As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long)
As Long
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
Const KEY_QUERY_VALUE = &H1
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const SYNCHRONIZE = &H100000
Const READ_CONTROL = &H20000
Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or
KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
Const REG_SZ = 1 'stringa
'tipi richiesti da alcune API
Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
End Type
'per aggiungere un documento nei recenti di windows
Declare Sub SHAddToRecentDocs Lib "shell32.dll" (ByVal uFlags As Long,
ByVal pv As String)
'per associare un'estensione all'applicazione
Private Declare Function RegCreateKey Lib "advapi32.dll" 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
'valori di ritorno per le precedenti funzioni
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 MAX_PATH = 260&
Public Sub AssociaEstensione(Estensione As String, Descrizione As
String, IdIcona As Integer, Eseguibile As String)
Dim ApplicationName As String
Dim NomeChiave As String   'Holds Key Name in registry.
Dim ValoreChiave As String  'Holds Key Value in registry.
Dim Risultato&           'Holds error status if any from API calls.
Dim Chiave&        'Holds created key handle from RegCreateKey.
    ApplicationName = OttieniNomeApplicazione
'This creates a Root entry called "MyApp".
    NomeChiave = Descrizione
    ValoreChiave = Descrizione
    Risultato& = RegCreateKey&(HKEY_CLASSES_ROOT, NomeChiave, Chiave&)
    Risultato& = RegSetValue&(Chiave&, "", REG_SZ, ValoreChiave, 0&)
'This creates a Root entry called .BAR associated with "MyApp".
    NomeChiave = "." & Estensione
    ValoreChiave = Descrizione
    Risultato& = RegCreateKey&(HKEY_CLASSES_ROOT, NomeChiave, Chiave&)
    Risultato& = RegSetValue&(Chiave&, "", REG_SZ, ValoreChiave, 0&)
'This sets the command line for "MyApp".
    NomeChiave = Descrizione
    ValoreChiave = Eseguibile & " %l"
    Risultato& = RegCreateKey&(HKEY_CLASSES_ROOT, NomeChiave, Chiave&)
    Risultato& = RegSetValue&(Chiave&, "shell\open\command", REG_SZ,
ValoreChiave, MAX_PATH)
    Risultato& = RegSetValue&(Chiave&, "DefaultIcon", REG_SZ, _
        App.Path & "\" & App.EXEName & ".exe," & IdIcona, MAX_PATH)
End Sub
Public Function ControllaEstensione(Estensione As String) As Boolean
Dim hKey As Long
Dim Esiste As String
Dim lenEsiste As Long
Dim Tipo As Long
Dim Risultato As Long
 
    'apro la chiave del registry
    Risultato = RegOpenKeyEx(HKEY_CLASSES_ROOT, Estensione, 0,
KEY_READ, hKey)
    If Risultato = 0 Then
        ControllaEstensione = True
    Else
        ControllaEstensione = False
    End If
 
    'chiudo la chiave del registro
    Risultato = RegCloseKey(hKey)
End Function
*****************************
Saluti.
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro RomagnoloŽ, diffidate dalle imitazioni!
 Opel/ECC Calibrezio EVO-VI --- Kawasaki "Gas Gas" ZZ-R 1100
 ICQ# 36893168 - IRCNet: bugbarbeq, @ on #linux-it & #NetBSD
   On contrary of popular belief, Unix *IS* user friendly:
    it just appears to be selective who it is friend with

   VBR - Vero Birro Romagnolo®, diffidate dalle imitazioni!


frequente. Ciao Francesco
Ci mancherebbe :)
Un'altra cosa molto utile sarebbe se quotassi soltanto la parte di
testo necessaria e se scrivessi *sotto* il testo quotato.
Questo significa che tutto quello che, del mio messaggio, non serve,
dovresti cancellarlo e che, visto che rispondi a me, dovresti scrivere
sotto quello che ho scritto io.
Ad esempio, questa volta ho scaricato un tuo messaggio di 108 righe di
cui erano sufficienti le prime 2.
Considera che ogni giorno vengono veicolate decine di GB per i
newsgroups e immagina se tutti quotano male cosa succede :)
Saluti.
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro RomagnoloŽ, diffidate dalle imitazioni!
