Setiap aplikasi/program memiliki setting atau konfigurasi yang berhubungan dengan aplikasi itu sendiri, seperti password untuk masuk ke aplikasi, ukuran/size dari form, dan lain-lain. Setting-setting tersebut harus disimpan ke dalam tempat penyimpanan sementara agar bisa diambil kembali. Biasanya setting aplikasi disimpan di tiga tempat, yaitu pada file berekstensi .ini yang terletak di dalam folder yang sama dengan file program, pada database milik program, atau bisa juga disimpan di registry milik Windows. Kali ini, kita akan membahas cara menyimpan dan mengambil setting di registry Windows.
Visual Basic telah menyediakan dua buah fungsi untuk menyimpan dan mengambil data (konfigurasi) di registry, yaitu:
Untuk mengambil data dari registry:
GetSetting(AppName As String, Section As String, Key As String, [Default]) As String |
Keterangan:
AppName = nama aplikasi anda.
Section = bagian atau bisa disebut sebagai folder
Key = nama setting
Default = nilai kembalian jika setting tidak ditemukan. Ini bisa dikosongkan.
Untuk menyimpan data ke registry:
SaveSetting(AppName As String, Section As String, Key As String, Setting As String) |
Keterangan:
AppName = nama aplikasi anda.
Section = bagian atau bisa disebut sebagai folder
Key = nama setting
Setting = nilai dari setting
Posisi Data di Registry
Posisi data yang disimpan di registry jika menggunakan fungsi-fungsi di atas adalah tersimpan di:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings
Contoh Penggunaan
Berikut ini contoh pengunaan fungsi di atas. Di sini kita akan membuat program yang menyimpan posisi form di layar (ke dalam registry) saat program tersebut ditutup. Kemudian saat program dijalankan kembali, maka form akan dimunculkan ke posisi yang sama saat program ditutup.
Instruksi: Buat program berisi sebuah Form. Kode-kodenya sebagai berikut:
Option Explicit |
Keterangan:
Dari contoh di atas bisa dilihat kita menggunakan dua buah event milik Form, yaitu event Load dan event Unload. Event Load terjadi saat program mulai dijalankan (tetapi Form belum muncul). Sedangkan event Unload terjadi saat program ditutup.
Untuk mengetes contoh diatas, pertama jalankan programnya, lalu pindahkan form ke posisi mana saja di layar monitor anda. Lalu tutup program tersebut. Setelah itu, jalankan kembali program itu dan posisi form akan berada pada posisi saat program ditutup tadi.
Setelah menjalankan contoh di atas, mungkin anda ingin melihat dimana setting yang tersimpan di registry. Caranya: bukalah program Registry Editor (Klik tombol Start, lalu Run. Kemudian ketikkan regedit, lalu ENTER). Lalu bukalah path registry berikut:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings
Nanti akan terlihat kurang lebih seperti ini:

kak ,kalau untuk menyimpan sebuah command button gimana?
BalasHapuscontohnya saya membuat setting "Matikan Command button 1"
setelah kita tekan "Matikan Command button 1" kan otomatis command button 1 mati,lalu kita keluar dari aplikasi nya lalu kita masuk lagi dan command button nya harus mati
gimana tuh caranya ?
viandwicyber@yahoo.com
Halo Vian, mungkin yang Vian maksud 'matikan tombol' sama dengan 'disabled'. Caranya kurang lebih sbb:
Hapus- Saat tombol diklik, ada dua proses terjadi: 1. tombol dibuat jadi disabled. 2. simpan ke registry bahwa status tombol adalah disabled.
- Saat program mulai dijalankan, yaitu saat even 'Form Load', ambil kembali status tombol dari registry lalu terapkan ke tombol tersebut.
Kira-kira scriptnya seperti begini (maaf di laptop saya tdk terinstall vb) :
Private Sub CommandButton1_Click()
CommandButton1.Enabled = false
SaveSetting "Nama program", "tombol1", "enable", 0
End Sub
Private Sub Form_Load()
Dim X As String
X = GetSetting("Nama program", "tombol1", "enable", "1")
If x = "1" then
CommandButton1.Enabled = true
Else
CommandButton1.Enabled = false
End if
End Sub
kk plsss help me
BalasHapuskalo saya ingin setting save pada combo gimana
artikel doatas kan command dan form
nah klo di combo gimana apakah
savesetting app.exename, "options", "bahasa", combo.text ???? apa combo.itemdata ???
x_X plssss ka help me
dah panas nih pala
mohon contoh codinganya yah kk
Halo Rizki, ini contoh codingnya, tapi sekedar info, saya sudah lama tdk buka vb, dan dulunya vb yg saya pakai adalah vb6. Jadi mungkin codingnya perlu disesuaikan dgn versi vb yg Rizki pakai saat ini:
HapusDisini nilai dari combobox saya gunakan adalah nilai indexnya (SelectedIndex).
Kalau tdk berfungsi, boleh coba pakai 'combobox.SelectedItem' atau 'combobox.Text'.
Private Sub Form_Unload(Cancel As Integer)
SaveSetting "Nama Program", "comboBox1", "nilai", comboBox1.SelectedIndex
End Sub
Private Sub Form_Load()
Dim X As String
X = GetSetting("Nama Program", "comboBox1", "nilai", "-")
If X == "-" Then
comboBox1.SelectedIndex = 0
Else
comboBox1.SelectedIndex = CInt(X)
EndIf
End Sub
makasih nih Sebelumnya nanti ane cba
BalasHapusnamun
masih kurang fahan tentang
GetSetting(AppName As String, Section AsString, Key As String, [Default]) As String
Keterangan:AppName = nama aplikasi
# nama aplikasi kita contoh semacam project 1 ( saat kita baru membuat projet ) atau pas pada kita jadikan exe ??
Section = bagian atau bisa disebut sebagai folder
# letak dimana kita menaruh project / exe. nya
Key = nama setting
# tuh pada regitrinya ??
Default = nilai kembalian jika setting tidak ditemukan. Ini bisa dikosongkan.
klo bisa tolong gan masih newbi
Apaakh Ini menggunakan moddule ??
Halo Rizki, mudah2an jawaban ini memuaskan.
HapusAppName bagusnya adalah nama project, tapi sebenarnya bisa bebas. Bisa nama title form, atau nama file exe.
Section = bagian dari aplikasi. bisa nama form (semua setting yg ada di sebuah form), atau yg lainnya. Tergantung dari kita mengatur dan mengelompokkan semua setting yg ada.
Key = nama variabel setting. mirip seperti variabel biasa seperti :
Dim S As String
S = "tes"
S adalah key-nya. "tes" adalah value-nya.
Perintah GetSetting dan SaveSetting bisa dipakai dimana saja, bisa didalam form, module, atau class.
bug pada = clnt (x)
BalasHapusntuh combo1 atau combobox1 yg bener yg mana ???
- nama combobox disesuakan dgn yg digunakan.
Hapus- cInt ganti dgn: Int32.TryParse
Dim i As Integer
Int32.TryParse(X, i)
comboBox1.SelectedIndex = i
ane dah sukses pada saat saveserting namun pas getnya gak mau ngeload dri regist
Hapusok ok gan , namu hehhe sorry nih , arti dri clnt itu apa yah ,asing soalnya
and int.tryparse itu apa ???
sebelumnya makasih arsi (y)
ada gmail gak ??
ane dah sukses pada saat saveserting namun pas getnya gak mau ngeload dri regist
BalasHapusok ok gan , namu hehhe sorry nih , arti dri clnt itu apa yah ,asing soalnya
and int.tryparse itu apa ???
sebelumnya makasih arsi (y)
ada gmail gak ??
gan int32 tuh jga debug contoh project aja gan korim ke rizkiadityavt@gmail.com
BalasHapusini vb 6.0 kan
sekarang saya pakai visual basic 2010 express -- gratis 100% !!!
Hapusjadi tdk perlu pakai bajakan.
ane masalahnya cman pas getsetting . apa mungkin salah di situ ( "-" ) ??
BalasHapusbisa paste kodenya dan juga informasi tentang errornya gan.
HapusDim x As String
BalasHapusPrivate Sub Form_Load()
x = GetSetting("latihan", "form", "combo", "-")
If x = "-" Then
Combo1.Text = 0
Else
Combo1.Text = CInt(x)
End If
End Sub
Private Sub form_unload(cancel As Integer)
SaveSetting "latihan", "form", "combo", Combo1.Text
End Sub
Option Explicit
BalasHapusDim x As String
Private Sub Form_Load()
x = GetSetting("latihan", "form", "combo", "-")
If x = "-" Then
Combo1.Text = 0
Else
Combo1.Text = CInt(x) ' =============== Eror Di sini
End If
End Sub
Private Sub form_unload(cancel As Integer)
SaveSetting "latihan", "form", "combo", Combo1.Text
End Sub
ini saya sdh coba, mdah2an sesuai:
HapusPrivate Sub Form_Load()
Dim X As String
X = GetSetting("latihan", "form", "combo", "-")
If X = "-" Then
Combo1.SelectedIndex = 0
Else
Combo1.Text = X
End If
End Sub
Private Sub form_unload(cancel As Integer)
SaveSetting("latihan", "form", "combo", Combo1.Text)
End Sub
thankssssssssssssssssssssssssssssss
Hapusgan Work nih
Tpi sempet bug karena program ane gak ada selectindex ane make text
thanksssssssssss yah gannnnnnnn
kira kira tuh kodingan ane salah dimananya ??
HapusAne subscribe nanti dah gan
gini aja Gan Niat ane lagi bikin software
BalasHapusnah ane butuh pengaturan pastinya
nah ane bingung untuk menyimpan setiingan itu
APA CUMAN INI UNTUK MENYIMPAN FORM DI VB
ex mau simpan text , option , combo dll
setahu saya Gan, ini cara yg paling mudah dan praktis menyimpan berbagai setting didalam program/form. Cara lain: menyimpan kedalam file berekstensi (.INI) lebih rumit lagi karena menggunakan fungsi API. Apalagi kalau disimpan ke database, itu lebih panjang lagi kodenya !!! :-)
Hapusowh ya gan satu lagi bisa gak program vb seperti dxdiag yg membaca ram , hardisk windows
BalasHapusada gak ??
Semua kodenya bisa didapat dgn mudah. cukup lewat google.
HapusContoh: untuk membaca ram, masukkan kata kunci ke google : visual basic get ram
tpi gan sebelumnya makasih nih , namun apakah bisa letak di regist bisa di ubah ( selain pada regist vb and vba program setting ??
BalasHapustpi gan sebelumnya makasih nih , namun apakah bisa letak di regist bisa di ubah ( selain pada regist vb and vba program setting ??
BalasHapusKalau menggunakan fungsi "GetSetting" dan "SaveSetting", letaknya otomatis ada di vb and vba program setting.
HapusKalau ingin menyimpan/mengambil setting di tempat lain di dalam registry, kodenya lumayan panjang dan rumit. contohnya bisa dilihat di url ini:
https://support.microsoft.com/en-us/kb/145679
jika text1 sama sajakan cman ganti caption1 diganti dgn text1 kan ??
BalasHapusnah satu lagi nih gak sorry klo gak repot klo yg image1 tuh gmana
BalasHapusmungkin PictureBox ya? Kalau tdk salah PictureBox bisa langsung ditentukan gambarnya dari jendela properties. Saat loading form, akan muncul dgn sendirinya. kecuali kalau filenya diubah lewat kode.
HapusPictureBox1.Picture = LoadPicture(App.Path & "\gambar.jpg")
..atau..
PictureBox1.Image = System.Drawing.Bitmap.FromFile( _
My.Application.Info.DirectoryPath & "\gambar.jpg")
ok gan masih bisa diakalin dengan cara agan pake url dituju ke text and txt tsb yg ane save thanks
BalasHapusklo kita bikin form terlalu banyak timer and misalkan ada windows media player tuh ada pengaruhnya gak ??
harus dites Gan, dilihat apa berat atau tidak jalannya.
BalasHapuscara test nya gmana dirun gtu ??/ apa harus dijadiin exe ???
BalasHapusSORRY GAN KLO BIKIN SPAM
boleh di-build (exe). tapi kalau dirun trus jalannya ringan, berarti lancar-lancar saja.
HapusKalau penggunaan dll yg disediakan vb 6 / net tuh untuk apa yah ??
BalasHapushalo, dll dipakai sama programmer yg sdh berpengalaman. dll isinya kumpulan fungsi-fungsi siap pakai, supaya saat membuat program/project lain, kita tinggal memanfaatkan fungsi yg ada didalamnya tanpa perlu membuatnya dari awal lagi. jadi program bisa lebih cepat selesai.
Hapusfungsi dll yg lain supaya mudah mengupgrade program tanpa memperbarui keseluruhan program. contohnya antivirus, selalu harus diupdate baik database virusnya maupun engine (berisi file2 dll dan lainnya utk mendeteksi virus).
kira2 begitu. lebih jelasnya bisa cari di google banyak penjelasannya :)
Nah kebetulan tuh gan ane dah buat , hosting + server namun pas updaternya yg terbaru harus buat ulang /ada cara lain
HapusMohon Bantuannya Yah
Mass tolong ya....
BalasHapusCara mematikan funsi tombol window,alt tab control esc dengan vb itu gmn mas. Apakah memakai savesetting juga... Minta solusinya ya mas.... Thanks....
coba mas lihat di url ini:
Hapushttp://www.codeproject.com/Questions/438722/Disable-Control-keys-and-windows-key
btw, mas mau buat program apa ya? kok sampai harus disable tombol windows dll.
permisi gan, boleh numpang tanya??
BalasHapusbagaimana cara membuat file txt yang sudah tersimpan oleh vb itu bisa enter, yang saya coba ini datanya sejajar trus. yang saya inginkan data yang tersimpan pada file txt ini bisa rapi dan ada enternya gitu, jadi runtut kebawah.
BalasHapusterima kasih gan
mungkin maksud agan textbox bisa lebih dari 1 baris jadi ada enternya. kalau itu yg agan maksud, klik textboxnya lalu cari property "Multiline". setel menjadi true.
Hapusproperty lain yg juga bisa diterapkan: 'WordWrap' untuk mengatur supaya paragraf bisa ditampilkan semua dan 'Scrollbars' untuk memunculkan scrollbar vertikal dan horizontal.
gan gmna caranya agar text di textbox tidak hilang ketika aplikasi nya dikeluarkan/dimatikan
BalasHapuskurang lebih sama dengan contoh penggunaan di atas, hanya saja perintah menyimpan text (SaveSetting) diletakkan di event keypress atau keydown dari textbox. Jadi setiap selesai mengetikkan huruf akan langsung tersimpan, dan saat load aplikasi akan mengambil teks tersimpan dan meletakkannya kembali ke dalam textbox. kira2 seperti itu alur programnya :)
Hapusmaaf naruh kode nya itu di mana ya ? apa bisa kalo kita bikin tombol save dan load data ? tapi fungsi nya sama kyk yg di atas dan bagai mana coding nya help me pliss trims atas jawapan nya
BalasHapusBisa gan, bikin dulu tombol save dan tombol load-nya. lalu dobel-klik tombolnya, itu akan masuk ke event 'click'.
HapusKode di dalam "Form_Unload" di atas pindahkan ke dalam event 'click' dari tombol save. Sedangkan kode di dalam "Form_Load" di atas pindahkan ke dalam tombol load. Mudah2an berfungsi lancar :)