Miten saan tehtyä tiedostosidoksen mahdollisimman helposti?
Käyttäjän napsauttaessa resurssienhallinnassa tiedostoa, avautuisi se ohjelmaani.
Toki käyttäjä voi tehdä tämän manuaalisestikin, mutta haluaisin kuitenkin toteuttaa koodilla.
http://www.codeproject.com/KB/vb/
Ei edes tuossa mukana tullut esimerkki toiminut.
Moikka Petja!
tässä hieman enemmän kuin ehkä osasit toivoakaan...
Imppaa täältä NetFileAssociation.zip, pura sisältö johonkin kansioon, avaa komentokehote, siirry samaiseen kansioon, kirjoita: gacutil /i NetFileAssociation.dll, painele enter-näpykkää ja lisää referenssi projektiin...
'esimerkki (väännetty SharpDevelop 4.0:lla)
Imports System
Imports NetFileAssociation
'COM-Referenssi (pikakuvake):
'Windows Script Host Object Model (wshom.ocx)
Imports IWshRuntimeLibrary
Public Partial Class MainForm
Public Sub New()
Me.InitializeComponent()
End Sub
Sub MainForm_Load(sender As Object, e As EventArgs)
Dim extension As String = ".oma" 'esim
Dim fainfo As FileAssociationInfo = _
New FileAssociationInfo(extension)
Dim fullPath As String = _
Process.GetCurrentProcess.MainModule.FileName
Dim progName As String = _
Process.GetCurrentProcess.ProcessName
If Not fainfo.Exists Then
fainfo.Create(progName & ".exe")
fainfo.ContentType = "application/omatiedosto"
fainfo.OpenWithList = new string() _
{"notepad.exe", "wordpad.exe"} 'esim.
End If
Dim painfo As ProgramAssociationInfo = _
New ProgramAssociationInfo(fainfo.ProgID)
If Not painfo.Exists Then
painfo.Create(progName & " - tiedosto", _
New ProgramVerb("Open",fullPath & " %1"))
painfo.DefaultIcon = new ProgramIcon( _
System.Reflection.Assembly. _
GetExecutingAssembly.Location() & ", 0")
End If
'* Luo pikakuvakkeen työpöydälle...
Dim lnkTargetPath As String = _
Environment.GetFolderPath( _
Environment.SpecialFolder.Desktop)
Dim appName As String = _
System.Reflection.Assembly. _
GetExecutingAssembly.GetName().Name
Dim lnkPath As String = lnkTargetPath + "\" + _
appName + ".lnk"
If Dir(lnkPath) = "" Then
Dim MyWsh As New WshShell
Dim shortCut As IWshRuntimeLibrary.IWshShortcut
shortCut = CType(MyWsh.CreateShortcut( _
lnkPath), IWshRuntimeLibrary.IWshShortcut)
With shortCut
.TargetPath = _
System.Reflection.Assembly.GetExecutingAssembly.Location()
.WindowStyle = 1
.Description = "Käynnistä " + appName
.WorkingDirectory = lnkTargetPath
.IconLocation = System.Reflection.Assembly. _
GetExecutingAssembly.Location() & ", 0"
.Arguments = userID & ", " & passWord
.Save()
End With
shortCut = Nothing: MyWsh = Nothing
End If
End Sub
End ClassPS. tutki NetFileAssociation.dll'n luokkia ClassBrowserilla...
Heippa taas!
halutessaan täältä voi impata ehkä paremmin demoavan esimerkkiohjelman...
Heippa taas!
halutessaan täältä voi impata lähes vastaavan esimerkin VB6:lle (ei kommentoitu)...
Aihe on jo aika vanha, joten et voi enää vastata siihen.