Cara Menulis Skrip AutoHotkey

AutoHotkey adalah perisian yang hebat tetapi rumit. Pada mulanya ia bertujuan untuk mengembalikan hotkey tersuai kepada tindakan yang berbeza tetapi kini merupakan rangkaian automasi Windows penuh.

AHK tidak begitu sukar dipelajari untuk pengguna baru, kerana konsep umum cukup mudah, tetapi bahasa pengaturcaraan Turing lengkap. Anda akan memilih sintaks dengan lebih mudah jika anda mempunyai latar belakang pengaturcaraan atau biasa dengan konsepnya.

Memasang dan Menggunakan AutoHotkey

Proses pemasangan AutoHotkey sangat mudah. Muat turun pemasang dari laman web rasmi dan jalankan. Pilih "Pemasangan Ekspres." Setelah memasang perisian, anda boleh mengklik kanan di mana sahaja dan memilih Baru> Skrip AutoHotkey untuk membuat skrip baru.

Skrip AHK adalah fail teks dengan .ahk peluasan. Sekiranya anda mengklik kanannya, anda akan mendapat beberapa pilihan:

  • "Run Script" akan memuat skrip anda dengan runtime AHK.
  • "Compile Script" akan menggabungkannya dengan AHK yang dapat dijalankan untuk membuat file EXE yang dapat anda jalankan.
  • "Edit Skrip" akan membuka skrip anda di editor teks lalai anda. Anda boleh menggunakan Notepad untuk menulis skrip AHK, tetapi kami mengesyorkan menggunakan SciTE4AutoHotkey, editor untuk AHK yang menyokong penyorotan sintaks dan penyahpepijatan.

Semasa skrip sedang berjalan - baik itu EXE atau tidak - anda akan mendapati ia berjalan di latar belakang di kawasan pemberitahuan Windows, juga dikenal sebagai baki sistem. Cari ikon hijau dengan huruf "H" di atasnya.

Untuk keluar, jeda, muat semula, atau edit skrip, klik kanan ikon pemberitahuan dan pilih pilihan yang sesuai. Skrip akan terus berjalan di latar belakang sehingga anda keluar. Mereka juga akan hilang semasa anda keluar dari Windows atau reboot PC anda, tentu saja.

Bagaimana AutoHotkey berfungsi?

Pada intinya, AHK melakukan satu perkara - mengikat tindakan pada hotkey. Terdapat banyak tindakan yang berbeza, kombinasi hotkey, dan struktur kawalan, tetapi semua skrip akan beroperasi berdasarkan prinsip yang sama. Berikut adalah skrip AHK asas yang melancarkan Google Chrome setiap kali anda menekan Windows + C:

#c :: Jalankan pengembalian Chrome

Baris pertama mentakrifkan hotkey. Tanda paun (#) adalah kependekan dari kekunci Windows dan c merupakan kekunci C pada papan kekunci. Selepas itu, terdapat tanda titik dua (: :) untuk menandakan permulaan blok tindakan.

Baris seterusnya adalah tindakan. Dalam kes ini, tindakan melancarkan aplikasi dengan Run arahan. Blok itu selesai dengan return akhir. Anda boleh melakukan sebilangan tindakan sebelum return. Mereka semua akan menyala secara berurutan.

Sama seperti itu, anda telah menentukan pemetaan kunci-untuk-tindakan yang mudah. Anda boleh meletakkan seberapa banyak yang anda mahu dalam .ahk fail dan menetapkannya untuk berjalan di latar belakang, selalu mencari hotkey untuk dibuat semula.

Hotkeys dan Pengubah

Anda boleh mendapatkan senarai lengkap pengubah AHK dalam dokumentasi rasmi, tetapi kami akan memberi tumpuan kepada ciri yang paling berguna (dan keren).

Kekunci pengubah semua mempunyai singkatan huruf tunggal. Contohnya # ! ^ +, masing-masing Windows, Alt, Control, dan Shift. Anda juga boleh membezakan antara Alt, Control, dan Shift kiri dan kanan dengan <dan >pengubah, yang membuka banyak ruang untuk hotkey tambahan. Contohnya, + adalah Shift kanan. Lihat senarai kunci untuk semua yang anda boleh rujuk. (Spoiler: Anda dapat merujuk hampir setiap kunci. Anda juga boleh merujuk peranti input bukan papan kekunci lain dengan sambungan kecil).

Anda boleh menggabungkan seberapa banyak kekunci yang anda mahukan ke dalam satu kekunci panas, tetapi anda akan kehabisan kombinasi kunci untuk diingat. Di sinilah pengubah, yang membolehkan anda melakukan perkara yang lebih gila, masuk. Mari kita susun contoh dari dokumen AHK:

Hijau #IfWinActivedisebut  arahan , dan menerapkan konteks tambahan untuk hotkey secara fizikal di bawahnya dalam skrip. Kekunci panas apa pun selepas itu hanya akan dinyalakan jika syaratnya benar, dan anda boleh mengelompokkan beberapa kekunci panas di bawah satu arahan. Arahan ini tidak akan berubah sehingga anda mendapat arahan lain, tetapi anda boleh menetapkannya semula dengan kosong #If(dan jika itu kelihatan seperti peretasan, selamat datang ke AHK).

Arahan di sini adalah memeriksa apakah tetingkap tertentu terbuka, yang ditentukan oleh ahk_class Notepad. Apabila AHK menerima input "Win + C", tindakan tersebut akan diaktifkan #IfWinActive hanya jika arahan dikembalikan benar, dan kemudian periksa yang kedua jika tidak. AHK mempunyai banyak arahan, dan anda boleh mendapatkan semuanya dalam dokumen.

AutoHotkey juga mempunyai hotstrings, yang berfungsi seperti hotkeys kecuali menggantikan keseluruhan rentetan teks. Ini serupa dengan cara kerja autocorrect — sebenarnya, terdapat skrip autocorrect untuk AHK — tetapi menyokong tindakan AHK apa pun.

Hotstring akan sesuai dengan rentetan hanya jika ia ditaip tepat. Ia secara automatik akan menghapus teks yang sesuai untuk menggantikan hotstring juga, walaupun tingkah laku ini dapat disesuaikan.

Tindakan

Tindakan dalam AHK adalah apa-apa yang mempunyai kesan luar pada sistem operasi. AHK mempunyai banyak tindakan. Kami tidak mungkin menjelaskan semuanya, jadi kami akan memilih yang berguna.

  • Menghantar input, sama ada teks atau pelbagai penekanan butang.
  • Menggerakkan tetikus. Sebenarnya, AHK kadang-kadang secara keliru ditandai sebagai perisian cheat untuk permainan video, kerana orang telah membuat aimbot berfungsi sepenuhnya dengannya.
  • Mengklik tetikus, dengan kedudukan relatif dengan tetingkap semasa.
  • Memaparkan menu dialog, lengkap dengan borang dan medan input.
  • Menggerakkan tingkap, menyesuaikan ukuran, dan membuka dan menutup.
  • Bermain muzik.
  • Menulis ke Registry Windows. Ya betul.
  • Mengubah kandungan Papan Keratan.
  • Membaca dan menulis fail. Anda boleh mencari fail dan menjalankan tindakan pada setiap baris. AHK bahkan boleh menulis ke .ahk fail dan menyesuaikan kodnya sendiri.

Sebilangan besar tindakan ini juga mempunyai arahan berorientasikan maklumat yang berkaitan dengannya. Sebagai contoh, anda boleh menulis ke papan keratan, tetapi anda juga boleh mendapatkan kandungan Papan Keratan untuk disimpan dalam fungsi pemboleh ubah dan jalankan apabila papan keratan berubah.

Mengikat Semuanya Dengan Struktur Kawalan

AHK tidak akan wujud tanpa semua struktur kawalan yang menjadikannya Turing-lengkap.

Sebagai tambahan kepada #Ifarahan, anda juga mempunyai akses ke If blok tindakan. AHK mempunyai For gelung, blok pendakap keriting, Try dan Catchpernyataan, dan banyak lagi yang lain. Anda boleh mengakses data luar dari dalam blok tindakan, dan menyimpannya dalam pemboleh ubah atau objek untuk digunakan kemudian. Anda boleh menentukan fungsi dan label tersuai. Sungguh, apa sahaja yang boleh anda lakukan dengan mudah dalam bahasa pengaturcaraan lain yang mungkin anda boleh lakukan di AHK dengan sedikit sakit kepala dan melihat melalui dokumen.

Sebagai contoh, bayangkan anda mempunyai tugas yang membosankan dan berulang-ulang yang memerlukan anda mengklik beberapa butang berturut-turut dan menunggu pelayan bertindak balas sebelum melakukannya berulang kali tanpa henti. Anda boleh menggunakan AHK untuk mengautomasikan ini. Anda ingin menentukan beberapa gelung untuk menggerakkan tetikus ke lokasi tertentu, klik, dan kemudian pindah ke tempat seterusnya dan klik lagi. Buangkan beberapa pernyataan menunggu agar tidak hancur. Anda juga boleh membaca warna piksel di layar untuk menentukan apa yang berlaku.

Satu perkara pasti — skrip anda mungkin tidak cantik. Tetapi tidak ada AutoHotkey, dan tidak mengapa.