Il modo più semplice è registrare un tipo di file nell'applicazione (chiamata anche File Association), ad esempio ".myp" e quando l'utente preme "start myapp" sul sito scarica un file "startapp.myp".
Windows esaminerà quindi l'estensione del file e scoprirà che è registrato nell'app e avvierà l'applicazione con il file come parametro di comando. La tua app può quindi leggere il file e fare cose a seconda del contenuto.
Ecco il codice per registrare un tipo di file per l'applicazione fatto in VB.Net:
(esempio è tratto da http://www.developerfusion.com/article/36/file-assocation/2/ ma copiato qui per ragione persistente, consultare il sito originale per i commenti)
'// Registry windows api calls
Private Declare Function RegCreateKey& Lib "advapi32.DLL" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String, ByVal lphKey As Long)
Private Declare Function RegSetValue& Lib "advapi32.DLL" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpszSubKey As String, ByVal fdwType As Long, ByVal lpszValue As String, ByVal dwLength As Long)
'// Required constants
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const MAX_PATH = 256&
Private Const REG_SZ = 1
'// procedure you call to associate the tmg extension with your program.
Private Sub MakeDefault()
Dim sKeyName As String '// Holds Key Name in registry.
Dim sKeyValue As String '// Holds Key Value in registry.
Dim ret As Long '// Holds error status if any from API calls.
Dim lphKey As Long '// Holds created key handle from RegCreateKey.
'// This creates a Root entry called "TextMagic"
sKeyName = "TextMagic" '// Application Name
sKeyValue = "TextMagic Document" '// File Description
ret = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey)
ret = RegSetValue&(lphKey&, Empty, REG_SZ, sKeyValue, 0&)
'// This creates a Root entry called .tmg associated with "TextMagic".
sKeyName = ".tmg" '// File Extension
sKeyValue = "TextMagic" '// Application Name
ret = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey)
ret = RegSetValue&(lphKey, Empty, REG_SZ, sKeyValue, 0&)
'//This sets the command line for "TextMagic".
sKeyName = "TextMagic" '// Application Name
If Right$(App.Path, 1) = "\" Then
sKeyValue = App.Path & App.EXEName & ".exe %1" '// Application Path
Else
sKeyValue = App.Path & "\" & App.EXEName & ".exe %1" '// Application Path
End If
ret = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey)
ret = RegSetValue&(lphKey, "shell\open\command", REG_SZ, sKeyValue, MAX_PATH)
End Sub
Private Sub Form_Load()
'// ensure we only register once. When debugging etc, remove the SaveSetting line, so your program will
'// always attempt to register the file extension
If GetSetting(App.Title, "Settings", "RegisteredFile", 0) = 0 Then
'// associate tmg extension with this app
MakeDefault()
SaveSetting(App.Title, "Settings", "RegisteredFile", 1)
End If
'// check command line argument:
If Command$ <> Empty Then
'// we have a file to open
'// Fetch the file name from Command$ and then read the file if needed.
End If
End Sub
Quale piattaforma? – arul
Windows per ora, ma ho idee ... – kmontgom