DNS Server dengan Bind9 di Ubuntu 9.04

Ini hasil aku membuat DNS Server di bantu oleh faizal reza
pertama install dulu ubuntu
kemudian masuk ke terminal sebagai root
xwaja@xwaja:~$ sudo su

[sudo] password for xwaja:
kita install dulu bind9
root@xwaja:/home/xwaja# apt-get install bind9

setelah terinstall kita
edit /etc/bind/named.conf.local
root@xwaja:/home/xwaja# gedit /etc/bind/named.conf.local

kemudian kita tambahkan di paling bawah sebagai berikut:

zone "xwaja.com" {

type master;

file "/etc/bind/zones/xwaja.com.db";

};



zone "100.100.100.in-addr.arpa" {

type master;

file "/etc/bind/zones/rev.100.in-addr.arpa";

};

kemudian kita edit /etc/bind/named.conf.options
root@xwaja:/home/xwaja# gedit /etc/bind/named.conf.options

kemudian kita tambahkan
forwarders {

202.134.0.155;

};
ip diantas ip yang diberikan oleh ISP
kemudian kita buat direktory /etc/bind/zones
root@xwaja:/home/xwaja# mkdir /etc/bind/zones/

kemudian kita buat file /etc/bind/zones/xwaja.com.db

root@xwaja:/home/xwaja# gedit /etc/bind/zones/xwaja.com.db

kita tuliskan sebagai berikut
$TTL 86400

@ IN SOA xwaja.com. admin.xwaja.com. (

20091123 ;Serial

604800 ;Refresh

86400 ;Retry

2419200 ;Expire

604800 ) ; Negative Cache TTL



@ IN NS xwaja.com.

@ IN A 100.100.100.99

www IN A 100.100.100.99

untuk serial kalau kita mengedit maka ditambah 1 angka aja
langkah selanjutnya buat file /etc/bind/zones/rev.100.in-addr.arpa

root@xwaja:/home/xwaja# gedit /etc/bind/zones/rev.100.in-addr.arpa

kita tuliskan sebagai berikut
$TTL 86400



@ IN SOA xwaja.com. admin.xwaja.com. (

20081123 ;Serial

604800 ;Refresh

86400 ;Retry

2419200 ;Expire

604800) ; Negative Cache TTL

;

IN NS xwaja.com.

IN PTR www.xwaja.com.


yang terakhir kita edit gedit /etc/resolv.conf

root@xwaja:/home/xwaja# gedit /etc/resolv.conf

kita ubah menjadi
search xwaja.com

domain xwaja.com

nameserver 127.0.0.1
kemudian kita restart bind
root@xwaja:/home/xwaja# /etc/init.d/bind9 restart

kemudian untuk melihat keberhasilan silahkan anda gunakan dig
root@xwaja:/home/xwaja# dig www.xwaja.com



; <<>> DiG 9.5.1-P2 <<>> www.xwaja.com

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1042

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1



;; QUESTION SECTION:

;www.xwaja.com. IN A



;; ANSWER SECTION:

www.xwaja.com. 86400 IN A 100.100.100.99



;; AUTHORITY SECTION:

xwaja.com. 86400 IN NS xwaja.com.



;; ADDITIONAL SECTION:

xwaja.com. 86400 IN A 100.100.100.99



;; Query time: 1 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Tue Sep 15 15:44:21 2009

;; MSG SIZE rcvd: 77


lihat hasilnya
kalau answer hasilnya 0 maka DNS server anda belum berhasil

kemudian untuk penggunaannya silahkan anda masukkan ip yang ada DNS server sebagai DNS pada clientt. Sehingga menurut kesimpulan saya sebagai DNS server juga di gunakan sebagai server gateway dan router sehingga ipnya digunakan sebagai DNS.
Kalau di windows n belum juga berhasil membuka di web browser www.xwaja.com silahkan anda masuk ke command prompt kemudian anda ketikan ipconfig /flushdns

sekian dulu
semoga bermanfaat

chung chin
special thank to faizal reza

Script Inno Setup untuk MYSQL dan AppServ

berikut aku buatkan script agar MYSQL yang berada di Appserv dapat terinstall kemudian adanya ODBC yang ddigunakan untuk menghubungkannya.
silahkan di baca seterusnya


; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Elearning"
#define MyAppVerName "Elearning 9.8"
#define MyAppPublisher "www.xwaja.co.nr"
#define MyAppURL "http://www.xwaja.co.nr/ & http://s0dikin.blogspot.com"
#define MyAppExeName "ElearningSMP.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{EDD1BECE-1CE1-4D32-84D0-B891642904AC}
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=C:\InnoSetup\Elearning\Hasil
OutputBaseFilename=setup
ShowTasksTreeLines=yes
SetupIconFile=C:\InnoSetup\Elearning\conect.ico
Password=ELEARNING_2009
WizardImageFile=C:\InnoSetup\Elearning\setup5.bmp
WizardSmallImageFile=C:\InnoSetup\Elearning\setup4.bmp
Compression=lzma/max
SolidCompression=yes
LicenseFile=C:\InnoSetup\Elearning\Lisensi.txt
InfoBeforeFile=C:\InnoSetup\Elearning\Files\readme.txt
MinVersion=4.1.1998,4.00.1381

[Types]
Name: "full"; Description: "Full installation"
Name: "compact"; Description: "Compact installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom

[Components]
Name: "SERVER"; Description: "Untuk Server"; Types: full
Name: "CLIENT"; Description: "Untuk Client"; Types: full

[Languages]
Name: "id"; MessagesFile: "C:\InnoSetup\Elearning\Indonesian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\InnoSetup\Elearning\Files\ElearningSMP.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\BuatDatabase.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\Silver.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\Aqua.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\Black.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\APPSERV.EXE"; DestDir: "{app}"; Flags: ignoreversion; Components: SERVER
Source: "C:\InnoSetup\Elearning\Files\ODBC.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: CLIENT
Source: "C:\InnoSetup\Elearning\Files\readme.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\elearning.cc@"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\theme.cjstyles"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\cetak.cc@"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\pegawai.cc@"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\siswa.cc@"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\soal.cc@"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\msvbvm60.ocx"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\VB6STKIT.DLL"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\COMCAT.DLL"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\stdole2.tlb"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\asycfilt.dll"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\olepro32.dll"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\oleaut32.dll"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\msvbvm60.dll"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\TABCTL32.OCX"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\MSDATGRD.OCX"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\MSCOMCT2.OCX"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\MSCOMCTL.OCX"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\Codejock.CommandBars.v12.0.1.ocx"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\Codejock.SkinFramework.v12.0.1.ocx"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\arpro2.dll"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace


; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\APPSERV.EXE"; Description: "Menginstall MYSQL Server 5"
Filename: "{app}\ODBC.exe"; Description: "Menginstall MYSQL Connector ODBC 3.51"

silahkan di baca n di praktekan.

semoga bermanfaat.

salam

Chung Chin

Repository local Ubuntu 9.04 di ICT Center Rembang

ketik pada terminal dengan sebagai root
cp /etc/apt/sources.list /home/
gedit /etc/apt/sources.list

hapus semua yang ada di gantikan dengan dibawah ini

deb http://118.98.162.203/ubuntu/repo1 jaunty main restricted
deb http://118.98.162.203/ubuntu/repo2 jaunty main multiverse restricted
deb http://118.98.162.203/ubuntu/repo3 jaunty universe
deb http://118.98.162.203/ubuntu/repo4 jaunty universe
deb http://118.98.162.203/ubuntu/repo5 jaunty universe
deb http://118.98.162.203/ubuntu/repo6 jaunty universe



Create file Cab dan Expand with VB6

jika kita akan merubah file setup windows jika file themeui.dll dibuat menjadi themeui.dl_
Program ini saya buat guna menyingkat waktu dalam mengekstrak file windows yang berektensi *.dl_ , *.cp_, *.ex_ dan lain-lainnya kemudian mengembalikan file tersebut ke bentuk semula.
Kenapa kog harus di ekstrak padahal file tersebut kan sudah ada di file windows yang sudah terinstall tinggal pakai ambil aja di c:\windows\system32 kan ga repot. He..he..
Tapi kalau anda pengin membuat modifikasi file windows tersebut dari file setup pada CD windows pasti anda akan kebingungan. Sebenarnya bisa pakai command prompt yang disediakan oleh windows tapi akan memperlama anda dalam mengetik di command prompt.
Kemudian karena aku terinspirasi dengan perintah-perintah di command prompt sehingga aku membuat program ini. Mungkin aja para master akan tertawa melihat source code yang saya kirim ini maklum newbie dalam penulisan bahasa program.

File terdiri dari
frmMain (4 label, 4 commandbutton)
modMakeFolder
CommonDialog (User Control)
Langsung aja ya. Kita tuliskan codenya
Untuk frmMain.frm
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = -1&
Dim FileNama As String
Private Sub ShellAndWait(ByVal program_name As String)
Dim process_id As Long
Dim process_handle As Long

process_id = Shell(program_name, vbHide)
DoEvents
' tunggu sampai program selesai
process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
If process_handle <> 0 Then
WaitForSingleObject process_handle, INFINITE
CloseHandle process_handle
End If
End Sub

Private Sub cmdAbout_Click()
MsgBox "Program dibuat oleh Sodikin" + Chr(13) + _
"Email : hack.chin@gmail.com" + Chr(13) + _
"Site :http://s0dikin.blogspot.com" + Chr(13) + _
"Thank for :" + Chr(13) + _
"------------------------------------------" + Chr(13) + _
"Allah SWT" + Chr(13) + _
"Bokap n Nyokap" + Chr(13) + _
"Istri Tercinta" + Chr(13) + _
"All Frinds" + Chr(13) + _
"------------------------------------------" + Chr(13) + _
"Forum : www.xcode.co.id; www.vb-bego.net", vbInformation + vbOKOnly, "About Me?"

End Sub

Private Sub cmdExit_Click()
End
End Sub

Private Sub cmdExpand_Click()
With CD
.Filter = "*.sy_, *.dl_, *.ex_, *.cp_|*.sy_;*.dl_;*.ex_;*.cp_|"
.DialogTitle = "Buka File Xwaja"
.ShowOpen
End With
txtSource.Text = CD.FileName
Label2.Caption = CD.FileTitle
txtHasil.Text = Left(CD.FileName, Len(txtSource.Text) - Len(Label2.Caption)) + "HasilExpand"
CreateDirectory txtHasil.Text, Keamanan
'buat file BAT untuk melakukan Expand
FileNama = GetSystemPath + "chungchin.bat"
Open FileNama For Output As #1
Print #1, Tab(1); "expand.exe -r " + txtSource.Text + " " + txtHasil.Text
Close #1
'Jalankan file BAT yang telah dibuat
ShellAndWait FileNama
'Hapus file BAT yang telah dibuat
Kill FileNama
MsgBox "expand file : " + txtSource.Text + Chr(13) + _
"silahkan di lihat di " + txtHasil.Text
End Sub

Private Sub cmdMakeCab_Click()
With CD
.Filter = "*.sys, *.dll, *.exe|*.sys;*.dll;*.exe|"
.DialogTitle = "Buka File BM@"
.ShowOpen
End With
txtSource.Text = CD.FileName
Label2.Caption = CD.FileTitle
Label3.Caption = Left(CD.FileName, Len(txtSource.Text) - Len(Label2.Caption)) + "HasilCab"
txtHasil.Text = Label3.Caption + "\" + Left(CD.FileTitle, Len(Label2.Caption) - 1) + "_"
CreateDirectory Label3.Caption, Keamanan
'buat file BAT untuk melakukan MakeCAB
FileNama = GetSystemPath + "chungchin.bat"
Open FileNama For Output As #1
Print #1, Tab(1); "makecab.exe " + txtSource.Text + " " + txtHasil.Text
Close #1
'Jalankan file BAT yang telah dibuat
ShellAndWait FileNama
'Hapus file BAT yang telah dibuat
Kill FileNama
MsgBox "MakeCAB file : " + txtSource.Text + Chr(13) + _
"silahkan di lihat di " + txtHasil.Text

End Sub

Kemudian anda ketikkan code ini untuk Module (modMakeFolder)
Option Explicit
Public Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Public Declare Function NdamelAnak Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Public Declare Function GetSystemDirectory Lib "kernel32.dll" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Keamanan As SECURITY_ATTRIBUTES
Public Sub GaweAnakManeh(Ibu As String, Anak As String)
NdamelAnak Ibu, Anak, 0
End Sub


Public Function GetSystemPath() As String

On Error Resume Next
Dim Buffer As String * 255
Dim x As Long
x = GetSystemDirectory(Buffer, 255)
GetSystemPath = Left(Buffer, x) & "\"

End Function

Yang terakhir anda buat Usercontrol kemudian beri nama CommonDialog (sebernarnya bisa pakai comdlg.ocx yang sudah terinstall, tapi program ga akan portable karena harus menyertakan comdlg.ocx. tapi kalau kita buat sendiri maka program yang kita buat bisa di jalankan di semua komputer (tapi yang berbasis windows tentunya)
Langsung aja setelah buat UserControl langsung tuliskan code berikut:

Option Explicit
Private Declare Function GetOpenFileName Lib _
"COMDLG32.DLL" Alias "GetOpenFileNameA" _
(pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetSaveFileName Lib _
"COMDLG32.DLL" Alias "GetSaveFileNameA" _
(pOpenfilename As OPENFILENAME) As Long

Private cdlg As OPENFILENAME
Private LastFileName As String

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Private Const OFN_ALLOWMULTISELECT = &H200
Private Const OFN_CREATEPROMPT = &H2000
Private Const OFN_ENABLEHOOK = &H20
Private Const OFN_ENABLETEMPLATE = &H40
Private Const OFN_ENABLETEMPLATEHANDLE = &H80
Private Const OFN_EXPLORER = &H80000
Private Const OFN_EXTENSIONDIFFERENT = &H400
Private Const OFN_FILEMUSTEXIST = &H1000
Private Const OFN_HIDEREADONLY = &H4
Private Const OFN_LONGNAMES = &H200000
Private Const OFN_NOCHANGEDIR = &H8
Private Const OFN_NODEREFERENCELINKS = &H100000
Private Const OFN_NOLONGNAMES = &H40000
Private Const OFN_NONETWORKBUTTON = &H20000
Private Const OFN_NOREADONLYRETURN = &H8000
Private Const OFN_NOTESTFILECREATE = &H10000
Private Const OFN_NOVALIDATE = &H100
Private Const OFN_OVERWRITEPROMPT = &H2
Private Const OFN_PATHMUSTEXIST = &H800
Private Const OFN_READONLY = &H1
Private Const OFN_SHAREAWARE = &H4000
Private Const OFN_SHAREFALLTHROUGH = 2
Private Const OFN_SHARENOWARN = 1
Private Const OFN_SHAREWARN = 0
Private Const OFN_SHOWHELP = &H10

Public Enum DialogFlags
ALLOWMULTISELECT = OFN_ALLOWMULTISELECT
CREATEPROMPT = OFN_CREATEPROMPT
ENABLEHOOK = OFN_ENABLEHOOK
ENABLETEMPLATE = OFN_ENABLETEMPLATE
ENABLETEMPLATEHANDLE = OFN_ENABLETEMPLATEHANDLE
EXPLORER = OFN_EXPLORER
EXTENSIONDIFFERENT = OFN_EXTENSIONDIFFERENT
FILEMUSTEXIST = OFN_FILEMUSTEXIST
HIDEREADONLY = OFN_HIDEREADONLY
LONGNAMES = OFN_LONGNAMES
NOCHANGEDIR = OFN_NOCHANGEDIR
NODEREFERENCELINKS = OFN_NODEREFERENCELINKS
NOLONGNAMES = OFN_NOLONGNAMES
NONETWORKBUTTON = OFN_NONETWORKBUTTON
NOREADONLYRETURN = OFN_NOREADONLYRETURN
NOTESTFILECREATE = OFN_NOTESTFILECREATE
NOVALIDATE = OFN_NOVALIDATE
OVERWRITEPROMPT = OFN_OVERWRITEPROMPT
PATHMUSTEXIST = OFN_PATHMUSTEXIST
ReadOnly = OFN_READONLY
SHAREAWARE = OFN_SHAREAWARE
SHAREFALLTHROUGH = OFN_SHAREFALLTHROUGH
SHARENOWARN = OFN_SHARENOWARN
SHAREWARN = OFN_SHAREWARN
ShowHelp = OFN_SHOWHELP
End Enum

Private CFm_CancelError As Boolean
Private CFm_DialogTitle As String
Private CFm_DefaultExt As String
Private CFm_FileName As String
Private CFm_FileTitle As String
Private CFm_Filter As String
Private CFm_Flags As DialogFlags
Private CFm_InitDir As String

Public Property Get CancelError() As Boolean
CancelError = CFm_CancelError
End Property

Public Property Let CancelError(PropVal As Boolean)
CFm_CancelError = PropVal
End Property

Public Property Get DialogTitle() As String
DialogTitle = CFm_DialogTitle
End Property

Public Property Let DialogTitle(PropVal As String)
CFm_DialogTitle = PropVal
End Property

Public Property Get DefaultExt() As String
DefaultExt = CFm_DefaultExt
End Property

Public Property Let DefaultExt(PropVal As String)
CFm_DefaultExt = PropVal
End Property

Public Property Get FileName() As String
FileName = CFm_FileName
End Property

Public Property Let FileName(PropVal As String)
CFm_FileName = PropVal
End Property

Public Property Get FileTitle() As String
FileTitle = CFm_FileTitle
End Property

Public Property Let FileTitle(PropVal As String)
CFm_FileTitle = PropVal
End Property

Public Property Get Filter() As String
Filter = CFm_Filter
End Property

Public Property Let Filter(PropVal As String)
CFm_Filter = PropVal
End Property

Public Property Get Flags() As DialogFlags
Flags = CFm_Flags
End Property

Public Property Let Flags(PropVal As DialogFlags)
CFm_Flags = PropVal
End Property

Public Property Get InitDir() As String
InitDir = CFm_InitDir
End Property

Public Property Let InitDir(PropVal As String)
CFm_InitDir = PropVal
End Property


Private Sub UserControl_Initialize()
UserControl.Height = 32 * 15
UserControl.Width = 32 * 15
End Sub

Private Sub UserControl_Resize()
UserControl.Height = 32 * 15
UserControl.Width = 32 * 15
End Sub

Public Sub ShowOpen()
Dim i As Integer
Dim flt As String, idir As String, trez As String
On Error Resume Next
flt = Replace(Filter, "|", Chr(0))

If Len(flt) = 0 Then flt = Replace("All Files (*.*)|*.*|", _
"|", Chr(0))
If Right(flt, 1) <> Chr(0) Then flt = flt & Chr(0)
If Len(InitDir) = 0 Then idir = FileName Else idir = InitDir

cdlg.hwndOwner = UserControl.Parent.hWnd
cdlg.hInstance = App.hInstance
cdlg.lpstrFilter = flt
cdlg.lpstrFile = FileName & String(255 - Len(FileName), _
Chr(0))
cdlg.nMaxFile = 256
cdlg.lpstrFileTitle = String(255, Chr(0))
cdlg.nMaxFileTitle = 256
cdlg.lpstrInitialDir = idir
cdlg.lpstrTitle = DialogTitle
cdlg.Flags = Flags
cdlg.lStructSize = Len(cdlg)
trez = IIf(GetOpenFileName(cdlg), Trim(cdlg.lpstrFile), "")

If Len(trez) > 0 Then FileName = trez: FileTitle = _
cdlg.lpstrFileTitle Else If CancelError Then _
Err.Raise -1, "CDL control", "Cancel"

End Sub

Public Sub ShowSave()

Dim i As Integer
Dim flt As String, idir As String, trez As String
On Error Resume Next
flt = Replace(Filter, "|", Chr(0))

If Len(flt) = 0 Then flt = Replace("All Files (*.*)|*.*|", _
"|", Chr(0))
If Right(flt, 1) <> Chr(0) Then flt = flt & Chr(0)
If Len(InitDir) = 0 Then idir = FileName Else idir = InitDir

cdlg.hwndOwner = UserControl.Parent.hWnd
cdlg.hInstance = App.hInstance
cdlg.lpstrFilter = flt
cdlg.lpstrFile = FileName & String(255 - Len(FileName), _
Chr(0))
cdlg.nMaxFile = 256
cdlg.lpstrFileTitle = String(255, Chr(0))
cdlg.nMaxFileTitle = 256
cdlg.lpstrInitialDir = idir
cdlg.lpstrTitle = DialogTitle
cdlg.Flags = Flags
cdlg.lStructSize = Len(cdlg)
trez = IIf(GetSaveFileName(cdlg), Trim(cdlg.lpstrFile), "")

If Len(trez) > 0 Then FileName = trez: FileTitle = _
cdlg.lpstrFileTitle Else If CancelError Then _
Err.Raise -1, "CDL control", "Cancel"

End Sub

Sudah selesai dalam penulisan silahkan aja di jalankan.
'|<<<<<<<<<<<<<..:: Programmer ::..>>>>>>>>>>>>>>|
'| Name : Sodikin |
'| site : http://s0dikin.blogspot.com |
'| email : hack.chin@gmail.com |
'| mr_hack77@yahoo.com |
'| chung_chin@joomlaku.info |
'| forum : www.xcode.or.id |
'| www.vb-bego.net |
'|<<<<<<<<<<<<<..:: End of File ::..>>>>>>>>>>>>>|