Newsgroup: it.comp.lang.visual-basic
Titolo: Esecuzione applicazioni

Domanda semplice semplice:
Ho scritto un programma che apre dei file con una certa estensione. Come
faccio capire a winzoz che il doppio click sui files con questa estensione
deve aprirmi il programma?
Grazie
P.S. Quale chiave di registro è coinvolta in questa operazione?
Ancora grazie
Injektilo

Non ti serve modificare il registro ti basta andare in gestione risorse e in
visualizza-opzioni cartella... scheda tipi di file e il resto è ovvio....
---------
Ciao
sabba

 deve aprirmi il programma?
In questo modo crei un associazione tra il tuo programma e l'estensione
che hai scelto
(Inviata da Pasquale Minerva)
-------------------
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"
-----------------------------
Quando fai doppio click sul file windows attiva la tua applicazione
passandogli il nome del file, che puoi leggere con Command.
Ciao
PS: Domanda all'ng, come si può indicare a win che il registro di
sistema è variato? senza riavviare
	  :-) Hd (-:
-^- Verso l'infinto e oltre -^-

 wrote in message
s7gU4.35770$F46.3...@news.infostrada.it...


Ops pardon (scemo io).
Allora nel registro devi andare in HKEY_CLASSES_ROOT e aggiungere
l'estensione che vuoi.
es: .pip
quindi aggiungere la relativa classe in predefinito che va aggiunta ache
essa nella stessa chiave HKEY_CLASSES_ROOT. In predefinito della classe
aggiungi una descrizione quindi aggiungi sotto di essa shell-open-command in
cui inserisce in predefinito la tua appiclicazione con la sua riga di
comando.
Il tutto è modificabile con le API. Se ti mancano le funzioni te le possi
postare io.
--------
Ciao
Sabba

Sabba ed HD grazie mille ;-) !!!!!!