Minggu, 14 November 2010

Membuat Tipe File Sendiri

Pernah terpikir untuk membuat tipe file buatan anda sendiri ?. Pastinya dengan membuat tipe file sendiri, aplikasi Anda akan tampak lebih professional. Pembuatan tipe file biasanya bertujuan agar user dapat mengetahui file tersebut dikhususkan untuk aplikasi Anda dan agar file tersebut tidak tertukar dengan aplikasi yang lain.
Buat sebuah Module baru dan ketikkan :

[ VB 6.0 ]
Private Declare Sub SHChangeNotify Lib "shell32" (ByVal wEventId As Long, ByVal uFlags As Long, ByVal dwItem1 As Long, ByVal dwItem2 As Long)

Public Sub NewFileType(ByVal Extension As String, ByVal ContentName As String, ByVal TypeName As String, Optional ByVal IconFileName As String = "")
Dim Reg, a As String
a = Replace(App.Path & "\" & App.EXEName & ".exe", "\\", "\")
If InStr(a, " ") <> 0 Then a = Chr(34) & a & Chr(34)

Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKEY_CLASSES_ROOT\." & Extension & "\", ContentName
Reg.RegWrite "HKEY_CLASSES_ROOT\" & ContentName & "\", TypeName
Reg.RegWrite "HKEY_CLASSES_ROOT\" & ContentName & "\DefaultIcon\", IconFileName
Reg.RegWrite "HKEY_CLASSES_ROOT\" & ContentName & "\Shell\Open\Command\", a & " %1"
SHChangeNotify &H8000000, 0, 0, 0
End Sub

Public Sub DelFileType(ByVal Extension As String)
On Error GoTo Ero
Dim Reg, s As String
Set Reg = CreateObject("WScript.Shell")
s = Reg.RegRead("HKEY_CLASSES_ROOT\." & Extension & "\")

Reg.RegDelete "HKEY_CLASSES_ROOT\." & Extension & "\"
Reg.RegDelete "HKEY_CLASSES_ROOT\" & s & "\DefaultIcon\"
Reg.RegDelete "HKEY_CLASSES_ROOT\" & s & "\Shell\Open\Command\"
Reg.RegDelete "HKEY_CLASSES_ROOT\" & s & "\Shell\Open\"
Reg.RegDelete "HKEY_CLASSES_ROOT\" & s & "\Shell\"
Reg.RegDelete "HKEY_CLASSES_ROOT\" & s & "\"

SHChangeNotify &H8000000, 0, 0, 0
Ero:
End Sub

Public Function CheckFileType(ByVal Extension As String) As Boolean
On Error GoTo Ero
Dim Reg, s As String, a As String
Set Reg = CreateObject("WScript.Shell")
s = Reg.RegRead("HKEY_CLASSES_ROOT\." & Extension & "\")
s = Reg.RegRead("HKEY_CLASSES_ROOT\" & s & "\Shell\Open\Command\")
a = Replace(App.Path & "\" & App.EXEName & ".exe", "\\", "\")
If InStr(a, " ") <> 0 Then a = Chr(34) & a & Chr(34)

CheckFileType = (Left(s, Len(a)) = a)
Exit Function
Ero:
CheckFileType = False
End Function


[ VB .NET ]
Private Declare Sub SHChangeNotify Lib "shell32" (ByVal wEventId As Integer, ByVal uFlags As Integer, ByVal dwItem1 As Integer, ByVal dwItem2 As Integer)

Public Sub NewFileType(ByVal Extension As String, ByVal ContentName As String, ByVal TypeName As String, Optional ByVal IconFileName As String = "")
Dim Reg = CreateObject("WScript.Shell")
Dim a As String = Application.ExecutablePath
If InStr(a, " ") <> 0 Then a = Chr(34) & a & Chr(34)
Reg.RegWrite("HKEY_CLASSES_ROOT\." & Extension & "\", ContentName)
Reg.RegWrite("HKEY_CLASSES_ROOT\" & ContentName & "\", TypeName)
Reg.RegWrite("HKEY_CLASSES_ROOT\" & ContentName & "\DefaultIcon\", IconFileName)
Reg.RegWrite("HKEY_CLASSES_ROOT\" & ContentName & "\Shell\Open\Command\", a & " %1")
SHChangeNotify(&H8000000, 0, 0, 0)
End Sub

Public Sub DelFileType(ByVal Extension As String)
On Error GoTo Ero
Dim Reg = CreateObject("WScript.Shell")
Dim s As String = Reg.RegRead("HKEY_CLASSES_ROOT\." & Extension & "\")

Reg.RegDelete("HKEY_CLASSES_ROOT\." & Extension & "\")
Reg.RegDelete("HKEY_CLASSES_ROOT\" & s & "\DefaultIcon\")
Reg.RegDelete("HKEY_CLASSES_ROOT\" & s & "\Shell\Open\Command\")
Reg.RegDelete("HKEY_CLASSES_ROOT\" & s & "\Shell\Open\")
Reg.RegDelete("HKEY_CLASSES_ROOT\" & s & "\Shell\")
Reg.RegDelete("HKEY_CLASSES_ROOT\" & s & "\")

SHChangeNotify(&H8000000, 0, 0, 0)
Ero:
End Sub

Public Function CheckFileType(ByVal Extension As String) As Boolean
On Error GoTo Ero
Dim Reg = CreateObject("WScript.Shell")
Dim a As String = Application.ExecutablePath
If InStr(a, " ") <> 0 Then a = Chr(34) & a & Chr(34)
Dim s As String = Reg.RegRead("HKEY_CLASSES_ROOT\." & Extension & "\")
s = Reg.RegRead("HKEY_CLASSES_ROOT\" & s & "\Shell\Open\Command\")
CheckFileType = (Microsoft.VisualBasic.Left(s, Len(a)) = a)
Exit Function
Ero:
CheckFileType = False
End Function



Contoh penggunaanya :
Misalnya Anda ingin membuat tipe file *.pvb dengan nama "Dokumen Pribadiku".
Kodenya adalah :
NewFileType "pvb", "pvbfile", "Dokumen Pribadiku"
Sedangkan untuk menghapus / membatalkannya, ketikkan :
DelFileType "pvb"
Untuk mengecek apakah tipe file tersebut terdaftar untuk aplikasi Anda, ketikkan :
MsgBox CheckFileType("pvb")


Setelah semuanya berhasil, sekarang Anda tinggal menyambungkan perintah pembukaan file tersebut ke aplikasi. Untuk lebih jelasnya klik disini.

Label: , , ,

0 Komentar:

Posting Komentar

Pengunjung yang baik selalu meninggalkan jejak berupa komentar. :)

Berlangganan Posting Komentar [Atom]

<< Beranda