Home » » VB.Net Özel uzantılı dosya oluşturma

VB.Net Özel uzantılı dosya oluşturma


Bu örnek uygulamada özel bir dosya uzantısı mesela ".xxx" uzantılı bir dosyayı tanımlayacağız ve bunu istediğimiz bir uygulamaya veya kendi yapmış olduğumuz bir programa bağlayacağız.Böylelikle daha önce sisteme tanımlı olmayan ".xxx" uzantılı tüm dosyaları direkt açmak istediğimizde karşımıza birlikte aç penceresi çıkmayacak.
Aşağıdaki kodları aynen bir module yapıştıralım.

Option Explicit
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 RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function SHChangeNotify Lib "shell32.dll" (ByVal wEventID As Long, ByVal uFlags As Long, ByVal dwItem1 As String, ByVal dwItems As String) As Long

Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const SHCNE_ASSOCCHANGED = &H8000000
Private Const SHCNF_IDLIST = &H0


Public Sub Program_Uzantısı(ByVal AnahtarAdı As String, ByVal Çalıştır As String, ByVal Uzantı As String, Optional ByVal IkonAdresi As String)
Dim lRegKey As Long     
Çalıştır = Çalıştır & " %1"

’Kayıt defterinde "HKEY_CLASSES_ROOT" altında yeni bir kayıt anahtarı açıyoruz
Call RegCreateKey(HKEY_CLASSES_ROOT, "." & Uzantı, lRegKey) Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal AnahtarAdı, Len(AnahtarAdı))
’Anahtarı kapatıyoruz
Call RegCloseKey(lRegKey)
’Kayıt defterinde "HKEY_CLASSES_ROOT" altında yeni bir kayıt anahtarı açıyoruz
Call RegCreateKey(HKEY_CLASSES_ROOT, AnahtarAdı & "\\Shell\\Open\\Command", lRegKey)
’Çalıştırılacak programı anahtara atıyoruz.
Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal Çalıştır, Len(Çalıştır))
Call RegCloseKey(lRegKey)

’Ikon atamak için...
If Len(IkonAdresi) Then         
Call RegCreateKey(HKEY_CLASSES_ROOT, AnahtarAdı & "\\DefaultIcon", lRegKey)         
Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal IkonAdresi, Len(IkonAdresi))         
Call RegCloseKey(lRegKey)     
End If

’İkonların güncellenmesi için bunu çalıştırıyoruz.
SHChangeNotify SHCNE_ASSOCCHANGED, SHCNF_IDLIST, vbNullString, vbNullString
End Sub
Artık en önemli kısmı bitirdik.Aşağıdaki fonksiyonumuzu artık istediğimiz şekilde kullanabiliriz.
Fonksiyonun kullanım şekli:
Program_Uzantısı "AnahtarAdı", "Çalıştırılacak Program", "Uzantı", "Uzantının Varsayılan İkonu"

Örnek :Bir metin dosyası hazırlayalım ve bu dosyanın uzantısını örneğin ".xxx" olarak değiştirip "c"nin içine kaydedelim.Daha sonra kodları fonksiyonumuzuda şu şekilde hazırlayıp uygulamamızı çalıştıralım.
Program_Uzantısı "Deneme", "C:\\WINDOWS\\system32\\notepad.exe", "xxx", "C:\\WINDOWS\\system32\\notepad.exe,0"


Böylelikle c nin içine kaydetmiş olduğumuz .xxx uzantılı dosyamızı artık notepad ile bağlanmış oldu ve ikonuda ona göre değişti.Bu programı direkt çalıştırmak istediğimizde artık notepad ile çalışacak.
 
Support : Vaganzi
Copyright © 2013. Visual Studio Kod Bankası - All Rights Reserved
Powered By Vaganzi