Senin, 07 Mei 2012

Mengubah Regional Setting Windows dari VB.NET

Terkadang kita sebagai programmer merasa kesulitan terhadap setting komputer. Misal tanggal di program mengharuskan setting sesuai regional Indonesia misal dd/mm/YYYY tetapi di komputer pengguna malah settingnya US, atau mm/dd/YYYY. Atau sebalikanya.

Sedangkan untuk memberikan instruksi kepada Pengguna untuk merubah regional settingnya bukan hal yang tepat, karena bisa jadi ada program lain di komputer Pengguna yang membutuhkan regional setting yang lain.

Solusinya kita harus ubah regional setting hanya di dalam program yang kita buat tentu saja secara pemrograman. Di Visual Basic.NET kita bisa gunakan kode program berikut ini :

My.Application.ChangeCulture("en-US") 'Untuk mengubah setting menjadi English United States

My.Application.ChangeCulture("id-ID") 'Untuk mengubah setting menjadi Indonesia

Atau untuk mengubah setting hanya pada satu thread saja bisa digunakan

Imports System.Threading
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US", False)
' Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US", False)

'Thread.CurrentThread.CurrentCulture
MsgBox(Thread.CurrentThread.CurrentUICulture)

Sedangkan untuk mengubah Regional Setting Windows dari Registry, gunakan fungsi berikut :

Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", "sShortDate", "dd/MM/yyyy")


Trik untuk sesaat menyimpan Regional Setting kemudian sesaat mengubah Regional Setting menjadi Indonesia misal saat mencetak Report, kemudian Kembalikan lagi ke Regional Aslinya :)

Dim asal as String = My.Application.Culture.Name 
My.Application.ChangeCulture("id-ID") 

'... Lakukan Sesuatu

My.Application.ChangeCulture(asal)

Semoga bermanfaat