Senin, 28 Mei 2012

Aplikasi autohotkey - multi shortcut

Sebelumnya saya telah membahas beberapa dasar dari autohotkey yang merupakan suatu bahasa program yang memiliki kemampuan untuk memanipulasi suatu input dari keyboard dan lain - lain.

pada kesempatan ini saya akan memberikan sedikit tutorial mengenai aplikasi dari autohotkey itu sendiri. Tentunya lebih advance dari contoh - contoh sebelumnya :D

mari kita mulai pelajaran kali ini ^^

Berikut adalah source code dari program autohotkey kali ini:


1 !n::
2
3 {
4
5 ControlSend,, {F1 down}, ahk_class
6 Sleep 500
7 ControlSend,, {F1 up}, ahk_class
8
9
10 }
11 return
12 !a::
13 {ControlSend,, {F1 up},ahk_class
14 Sleep 500
15 ControlSend,, {F1 down},ahk_class
16 sleep 500
17 ControlClick,,ahk_class ,,2,x517 y424
18 sleep 500
19 ControlClick,,ahk_class ,,,2,x517 y424
20 sleep 1500
21
22 ControlSend,, {F2 up},ahk_class
23 Sleep 500
24 ControlSend,, {F2 down},ahk_class
25 sleep 500
26 ControlClick,,ahk_class ,,,2,x517 y424
27 Sleep 500
28 ControlClick,,ahk_class ,,,2,x517 y424
29 Sleep 1500
30
31 ControlSend,, {F4 up},ahk_class
32 Sleep 500
33 ControlSend,, {F4 down},ahk_class
34 sleep 500
35 ControlClick,,ahk_class ,,,2,x517 y424
36 sleep 500
37 ControlClick,,ahk_class ,,,2,x517 y424
38 sleep 1000
39
40 ControlSend,, {F3 up},ahk_class
41 Sleep 500
42 ControlSend,, {F3 down},ahk_class
43 sleep 500
44 ControlClick,,ahk_class ,,,2,x517 y424
45 Sleep 500
46 ControlClick,,ahk_class ,,,2,x517 y424
47
48 }
49 return


setelah melihat script dari program kali ini mari kita belajar kegunaan dari masing - masing baris program tersebut
!n:: & !a:: = memiliki kegunaan sebagai shortcut program atau perintah input yang berguna untuk menjalankan program dibawahnya
! = alt
n = n
a = a

jadi program akan berjalan pada saat key alt+n dan alt+a ditekan. Pertanyaannya kenapa dipakai 2 key ? alt + a dan alt + n
jawabannya karena tiap salah satu key yang ditekan maka akan menjalankan suatu program yang tepat dibawahnya dan pada kasus diatas program yang dijalankan key alt + n dan alt + a adalah 2 program yang berbeda. hal ini memungkinkan pengguna untuk melakukan perintah yang lebih interaktif jadi tidak perlu menjalankan suatu program terlebih dahulu yang seharusnya tidak diperlukan baru kemudian jalankan yang diinginkan.

inget program berjalan sequenstial atau menjalankan perintah baris perbaris seperti orang membaca dari kiri ke kanan kemudian pindah ke baris berikutnya. << jangan dilupakan ControlSend adalah suatu perintah yang berguna untuk mengirimkan input key atau tombol keyboard ke komputer dan memiliki beberapa atribut
seperti key yang ditekan, windows yang dituju dan lain- lain (dapat diliat pada pembahasan sebelumnya)
misalnya ControlSend,,{F4 up}, ahk_class a
perintah diatas berguna untuk memberikan perintah penekanan tombol key F4 dan windownya yang dituju adalah window yang bernama a (ahk_class dapat dilihat pada pembahasan sebelumnya)
Note : ControlSend harus selalu 1 pasang (up dan down) dan diselingin sleep.

ControlClick mirip seperti control send hanya saja mengirimkan perintah click dari mouse (dapat dilihat pada pembahasan sebelumnya)

sleep adalah perintah delay yang berfungsi untuk melakukan delay sebelum perintah berikutnya dijalankan.

nah perintah yang baru dari program ini adalah return
apa sih kegunaan return dari program berikut ini ?
return adalah baris perintah kunci dari program kali ini, Why ?
return memiliki kegunaan untuk memberikan perintah kembali ke baris paling awal dalam contoh diatas adalah baris 1
lihat pada baris 11 terdapat perintah return kegunaan dari perintah return dibaris 11 adalah perintah yang menandakan akhir dari prosedur alt + n jadi program yang berada dibawah perintah return tidak akan dijalankan.
sehingga kita dimungkinkan memberikan shortcut baru berupa alt + a.

Bagaimana kalau dibaris 11 tidak diberikan perintah return ?
jawabannya adalah program akan terus berlanjut hingga akhir dalam kasus kali ini baris ke 49 sehingga baris program yang tidak ingin kita jalankan mau tidak mau ikut dijalankan, Maka disimpulkan program salah atau error.

Sekian pelajaran hari ini ^^
jika ada pertanyaan atau kritik dan saran dapat dipost dikomentar :D

Selamat Mencoba ^^