Sabtu, 11 Agustus 2012

Mengakses registry windows lewat c++

Registry adalah database yang disusun secara struktural yang berisi data-data dan informasi yang digunakan oleh aplikasi-aplikasi maupun sistem operasi. Informasi di dalam registry ini biasanya berupa hasil konfigursi suatu aplikasi atau sistem operasi sehingga apabila kita merubah nilai tertentu dari registry maka nilai kita juga akan mengubah konfigurasi program yang mengambil nilai tertentu tersebut


    Membuka Dan Menutup Key

Fungsi yang digunakan adalah RegOpenKeyEx()
Deklarasi lengkap fungsi ini dapat anda lihat di sini
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724897%28v=VS.85%29.aspx

Untuk lebih jelasnya perhatikan contoh berikut :

Code: Select all
// Program API Membuka dan Menutup Registry #include <windows.h> #include <iostream> using namespace std; int main() { LONG lResult; HKEY hKey; lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, // "SYSTEM\\CurrentControlSet", // 0, // Membuka registry KEY_ALL_ACCESS, // &hKey); // if (lResult == ERROR_SUCCESS) { cout << "Registry berhasil dibuka" << endl; } else { cout << "Registry gagal dibuka" << endl; } RegCloseKey(hKey); system("PAUSE"); return 0; }


Ketika dieksekusi akan menampilkan

Registry behasil dibuka
Press any key to continue...

Nah telihat dari contoh diatas, progam berhasil membuka key"HKEY_LOCAL_Machine\SYSTEM\CurentControlSet". Ingat, dalam c++ untuk menuliskan karakter backslash (\) digunakan karakter double-backslash (\\)

    Membuat Key

Fungsi yang digunakan adalah RegCreateKeyEx()

Deklarasi lengkap fungsi ini dapat anda lihat di sini
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724844%28v=VS.85%29.aspx

perhatikan contoh berikut.

Code: Select all
// Program API Membuat Key #include <windows.h> #include <iostream> using namespace std; int main() { LONG lResult; HKEY hKey; lResult = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "system\\currentcontrolset\\KeyBaru", // 0, // NULL, // REG_OPTION_NON_VOLATILE, // Membuat key baru KEY_ALL_ACCESS, // bernama KeyBaru NULL, // dari CurrentControlSet &hKey, // dari CurrentControlSet NULL); // if (lResult == ERROR_SUCCESS) { cout << "Key berhasil dibuat" << endl; } else { cout << "Key gagal dibuat" << endl; } RegCloseKey(hKey); // menutup handle system("PAUSE"); return 0; }


Ketika dieksekusi akan menampilkan

Key berhsil dibuat
Press any key to continue...

Nah dari hasil eksekusi program diatas, program diatas berhasil membuat sebuak key bernama KeyBaru pada "HKEY_LOCAL_machine\SYSTEM\CurentControlSet". Ingat key pada registry tidak case-sensitive jika tidak percaya, cobalah buka Registry Editor Anda Dan carilah "HKEY_LOCAL_machine\SYSTEM\CurentControlSet\KeyBaru"
maka anda akan menemukannya.

    Memasukkan Data Kedalam Registry

Fungsi yang digunakan adalah RegSetValueEx()

Deklarasi lengkapnya bisa anda lihat di sini
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724923%28v=VS.85%29.aspx

Perhatikan contoh berikut :

Code: Select all
// Program API Memasukkan Nilai #include <windows.h> #include <iostream> using namespace std; int main() { HKEY hKey; LONG lResult; char szValue[] = "Nilai yang dimasukkan"; RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\KeyBaru", 0, KEY_ALL_ACCESS, &hKey); lResult = RegSetValueEx(hKey, "Value Baru", 0, REG_SZ, (LPBYTE) szValue, 22); if(lResult == ERROR_SUCCESS) { cout << "Nilai berhasil dimasukkan" << endl; } else { cout << "Nilai gagal dimasukkan" << endl; } RegCloseKey(hKey); system("PAUSE"); return 0; }


Ketika dieksekusi akan menampilkan,

Nilai berhasil dimasukkan
Press any key to continue...

Terlihat dari program di atas, program berhasil membuat sebuah value baru bernama "Value Baru" yang berisi "Nilai yang dimasukkan" pada key "HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\KeyBaru".

    Membaca Nilai Value

Fungsi yang digunakan adalah RegQueryValueEx().

Deklarasi lengkap nya dapat anda lihat di sini
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724911%28v=VS.85%29.aspx

Untuk jelasnya perhatikan contoh berikut :

Code: Select all
// Program API Membaca Nilai #include <iostream> #include <windows.h> using namespace std; int main() { HKEY hKey; BYTE penampung[200]; // penampung untuk parameter lpData unsigned long ukuran = 256; // variabel untuk lpcbData LONG lResult; RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\KeyBaru", 0, KEY_ALL_ACCESS, &hKey); lResult = RegQueryValueEx(hKey, "Value Baru", 0, 0, penampung, &ukuran); if (lResult == ERROR_SUCCESS) { cout << "Nilai dari value \"Value Baru\" adalah " << penampung << endl; } else { cout << "Nilai tidak dapat dibaca" << endl; } RegCloseKey(hKey); system("PAUSE"); return 0; }


Ketika dieksekusi akan menampilkan,

Nilai dari value "Value Baru" adalah Nilai yang dimasukkan
Press any key to continue...

Nah terlihat dari program diatas berhasil memanggil fungsi RegQueryValueEx() dan menampilkan hasil berupa nilai dari value "Value Baru" yang memiliki nili "Nilai yang dimasukkan".

    Menghapus Value

Fungsi yang digunakan adlah RegDeleteValue().

Deklarasi lengkapnya dapat anda lihat di sini
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724851%28v=VS.85%29.aspx

Perhatikan contoh berikut

Code: Select all
// Program API Menghapus Value #include <iostream> #include <windows.h> using namespace std; int main() { HKEY hKey; LONG lResult; RegOpenKeyEx( HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\KeyBaru", 0, KEY_ALL_ACCESS, &hKey); lResult = RegDeleteValue( hKey, "Value Baru"); if (lResult == ERROR_SUCCESS) { cout << "Value berhasil dihapus" << endl; } else { cout << "Value gagal dihapus" << endl; } RegCloseKey(hKey); system("PAUSE"); return 0; }


Ketika dieksekusi akan menampilkan,


Nah terlihat dari program diatas berhasil menghapus value "Value Baru"
pada key "HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\KeyBaru". Untuk buktinya, Anda dapat melihat gambar berikut


Terlihat pada key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\KeyBaru", Sudah tidak ada lagi value "Value Baru"

    Menghapus Key

Fungsi yang digunakan adalah RegDeleteKey().

Deklarasi lengkapnya dapat anda lihat di sini
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724845%28v=VS.85%29.aspx

perhatikan contoh berikut

Code: Select all
// Program API Menghapus Key #include <iostream> #include <windows.h> using namespace std; int main() { HKEY hKey; LONG lResult; lResult = RegDeleteKey(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\KeyBaru"); if (lResult == ERROR_SUCCESS) { cout << "Key behasil dihapus" << endl; } else { cout << "Key gagal dihapus" << endl; } system("PAUSE"); return 0; }


Sekian dulu ya tutorialnya....
Happy Coding.... :pendekar:

source : http://ayrbyte.blogspot.com

Tidak ada komentar:

Posting Komentar