Computer Application, Maintenance and Supplies

Friday, May 23, 2008

Merubah Keyboard Map untuk Windows XP/2000

Bagi sebagian orang -- terutama dari kalangan unix-er -- letak tombol keyboard komputer desktop tidak familier. Misalnya, mereka lebih terbiasa dengan keyboard dengan tombol Left-Control terletak di sebelah kiri tombol A dan tombol Caps-Lock terletak di bawah tombol Left-Shift. Sedangkan keyboard komputer desktop pada umumnya memiliki konfigurasi posisi tombol yang berlawanan. Bagi sebagian besar programmer dan pengguna komputer, letak tombol keyboard yang tidak familier tersebut akan mengurangi produktifitas mereka. Apalagi kalau mereka menggunakan editor program yang banyak menggunakanan fasilitas tombol control, maka 'kebiasaan' sangat menentukan. Artikel ini membahas bagaimana cara merubah mapping keyboard Windows XP/2000

Scan Code Mapper untuk Windows 2000 dan XP

Scan Code Mapper menyediakan sebuah metode untuk pemetaan scan code. Peta scan code untuk Windows tersimpan di registry-key sebagai berikut:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Keyboard Layout

PENTING: Di sana juga ada sebuah key Keyboard Layouts (dengan 'Layouts', jamak) di bawah Control, tetapi kita tidak perlu merubahnya.

Di dalam Keyboard Layout itu, kita perlu menambahkan sebuah nilai bertipe REG_BINARY dan memiliki format data sebagai berikut:

Offset (byte) Panjang (byte) Data
0 4 Header: Informasi ttg versi
4 4 Header: Flag
8 4 Header: Jumlah mapping
12 4 Informasi mapping (lebih dari satu sesuai dengan jumlah yang ditentukan oleh header Jumlah (offset 8).
4 byte terakhir 4 Null terminator (0x00000000)

Data DWORD pertama dan kedua menyimpan informasi header dan harus di set ke zero untuk Scan Code Mapper versi ini. Data DWORD ketiga menentukan total jumlah mapping yang mengikutinya termasuk null terminator. Sehingga jumlah minimum data ketiga ini adalah 1 (bilamana tidak ada mapping sama sekali). Masing-masing mapping mengikuti data ketiga ini. Masing-masing mapping berupa sebuah data yang panjangnya DWORD yang terbagi dalam 2 field WORD. Masing-masing field menyimpan data tombol yang dipetakan.

Setelah data mapping tersimpan, kita perlu mereboot komputer agar perubahan tersebut memiliki efek.

Berikut ini sebuah contoh klasik, yaitu mapping untuk menukar tombol Caps-Lock dan Left-Control. Gunakan sebuah registry editor (umumnya regedt32.exe atau regedit.exe) untuk memodifikasi registry-key yang disebutkan di atas. Simpan data sebagai berikut ke dalam Scancode Map key:

00000000 00000000 03000000 3A001D00 1D003A00 00000000

Penting untuk diingat bahwa entri yang disimpan dalam registry key selalu dalam format little-endian. Berikut ini adalah tabel yang terdiri dari entri-entri yang terbagi dalam beberapa DWORD field dan keterangannya.

Nilai Keterangan
0x00000000 Header: Nomor versi. Semua diset zero
0x00000000 Header: Flag. Semua diset zero
0x00000003 Ada tiga entri dalam map (termasuk null terminator)
0x001D003A Tombol Left CTRL (0x1D) --> CAPS LOCK (0x3A)
0x003A001D Tombol CAPS LOCK (0x3A) --> Left Control (0x1D)
0x00000000 Null Terminator.

Referensi

  1. Scan Code Mapper for Windows
  2. Swapping Caps-Lock and Control on Windows

0 komentar :

Post a Comment

Your comments are inputs for our