วิธีการเขียนสคริปต์ AutoHotkey

AutoHotkey เป็นซอฟต์แวร์ที่ยอดเยี่ยม แต่ซับซ้อน ในตอนแรกมีจุดประสงค์เพื่อเชื่อมโยงปุ่มลัดที่กำหนดเองกลับเข้ากับการกระทำต่างๆ แต่ตอนนี้เป็นชุดระบบอัตโนมัติของ Windows เต็มรูปแบบ

AHK ไม่ใช่เรื่องยากที่จะเรียนรู้สำหรับผู้ใช้ใหม่เนื่องจากแนวคิดทั่วไปค่อนข้างง่าย แต่เป็นภาษาการเขียนโปรแกรมแบบทัวริงที่สมบูรณ์ คุณจะใช้ไวยากรณ์ได้ง่ายขึ้นมากหากคุณมีพื้นฐานการเขียนโปรแกรมหรือคุ้นเคยกับแนวคิด

การติดตั้งและใช้ AutoHotkey

กระบวนการติดตั้งของ AutoHotkey นั้นตรงไปตรงมา ดาวน์โหลดตัวติดตั้งจากเว็บไซต์ทางการและเรียกใช้งาน เลือก "การติดตั้งด่วน" หลังจากติดตั้งซอฟต์แวร์แล้วคุณสามารถคลิกขวาที่ใดก็ได้แล้วเลือกใหม่> AutoHotkey Script เพื่อสร้างสคริปต์ใหม่

สคริปต์ AHK คือไฟล์ข้อความที่มี.ahk นามสกุล หากคุณคลิกขวาคุณจะมีตัวเลือกต่างๆดังนี้

  • “ เรียกใช้สคริปต์” จะโหลดสคริปต์ของคุณด้วยรันไทม์ AHK
  • “ สคริปต์คอมไพล์” จะรวมเข้ากับไฟล์ปฏิบัติการ AHK เพื่อสร้างไฟล์ EXE ที่คุณสามารถเรียกใช้
  • “ แก้ไขสคริปต์” จะเปิดสคริปต์ของคุณในโปรแกรมแก้ไขข้อความเริ่มต้น คุณสามารถใช้ Notepad เพื่อเขียนสคริปต์ AHK ได้ แต่เราขอแนะนำให้ใช้ SciTE4AutoHotkey ซึ่งเป็นโปรแกรมแก้ไขสำหรับ AHK ซึ่งรองรับการเน้นไวยากรณ์และการดีบัก

ในขณะที่สคริปต์กำลังทำงานไม่ว่าจะเป็น EXE หรือไม่ก็ตามคุณจะพบว่าสคริปต์ทำงานอยู่เบื้องหลังในพื้นที่แจ้งเตือนของ Windows หรือที่เรียกว่าซิสเต็มเทรย์ มองหาไอคอนสีเขียวที่มี "H" อยู่

หากต้องการออกหยุดชั่วคราวโหลดซ้ำหรือแก้ไขสคริปต์ให้คลิกขวาที่ไอคอนการแจ้งเตือนและเลือกตัวเลือกที่เหมาะสม สคริปต์จะยังคงทำงานอยู่เบื้องหลังจนกว่าคุณจะออกจากสคริปต์ นอกจากนี้ยังจะหายไปเมื่อคุณออกจากระบบ Windows หรือรีบูตพีซีของคุณแน่นอน

AutoHotkey ทำงานอย่างไร

ที่แกนหลัก AHK ทำสิ่งหนึ่งนั่นคือผูกการกระทำกับปุ่มลัด มีการกระทำที่แตกต่างกันการรวมปุ่มลัดและโครงสร้างการควบคุมมากมาย แต่สคริปต์ทั้งหมดจะทำงานบนหลักการเดียวกัน นี่คือสคริปต์ AHK พื้นฐานที่เปิด Google Chrome เมื่อใดก็ตามที่คุณกด Windows + C:

#c :: เรียกใช้ Chrome return

บรรทัดแรกกำหนดฮ็อตคีย์ เครื่องหมายปอนด์ (#) ย่อมาจากแป้น Windows และc เป็นแป้น C บนแป้นพิมพ์ หลังจากนั้นจะมีเครื่องหมายจุดคู่ (: :) เพื่อแสดงถึงจุดเริ่มต้นของบล็อกการดำเนินการ

บรรทัดถัดไปคือการกระทำ ในกรณีนี้การดำเนินการเปิดแอปพลิเคชันด้วยRun คำสั่ง บล็อกเสร็จสิ้นด้วยreturn การสิ้นสุด คุณสามารถมีการดำเนินการจำนวนเท่าใดก็ได้ก่อนหน้าไฟล์return. พวกเขาทั้งหมดจะยิงตามลำดับ

เช่นเดียวกับที่คุณได้กำหนดการแมปคีย์ - แอคชันง่ายๆ คุณสามารถวางสิ่งเหล่านี้ได้มากเท่าที่คุณต้องการใน.ahk ไฟล์และตั้งค่าให้ทำงานในพื้นหลังโดยมองหาปุ่มลัดเพื่อทำการแมปใหม่เสมอ

ปุ่มลัดและตัวปรับแต่ง

คุณสามารถดูรายการโมดิฟายเออร์ทั้งหมดของ AHK ได้ในเอกสารอย่างเป็นทางการ แต่เราจะเน้นไปที่คุณสมบัติที่มีประโยชน์ที่สุด (และเจ๋ง)

คีย์ตัวปรับแต่งทั้งหมดมีตัวย่ออักขระเดียว ตัวอย่างเช่น# ! ^ +Windows, Alt, Control และ Shift ตามลำดับ นอกจากนี้คุณยังสามารถแยกความแตกต่างระหว่าง Alt, Control และ Shift ด้านซ้ายและขวาด้วยตัวปรับแต่ง<และ>ตัวปรับแต่งซึ่งจะเปิดช่องว่างสำหรับปุ่มลัดพิเศษ ตัวอย่างเช่น + คือ Shift ที่ถูกต้อง ดูรายการสำคัญสำหรับทุกสิ่งที่คุณสามารถอ้างอิงได้ (สปอยเลอร์: คุณสามารถอ้างอิงได้เกือบทุกคีย์คุณยังอ้างอิงอุปกรณ์อินพุตอื่น ๆ ที่ไม่ใช่คีย์บอร์ดที่มีนามสกุลขนาดเล็กได้ด้วย)

คุณสามารถรวมคีย์ได้มากเท่าที่คุณต้องการเป็นฮ็อตคีย์เดียว แต่ในไม่ช้าคุณจะไม่มีคีย์ผสมที่ต้องจดจำ นี่คือที่ที่ตัวดัดแปลงซึ่งช่วยให้คุณทำสิ่งที่บ้าคลั่งได้เข้ามาลองแยกตัวอย่างจากเอกสาร AHK:

สีเขียว#IfWinActiveเรียกว่า  คำสั่งและใช้บริบทเพิ่มเติมกับปุ่มลัดที่อยู่ด้านล่างในสคริปต์ ฮ็อตคีย์ใด ๆ หลังจากนั้นจะเริ่มทำงานก็ต่อเมื่อเงื่อนไขนั้นเป็นจริงและคุณสามารถจัดกลุ่มฮ็อตคีย์หลายตัวภายใต้คำสั่งเดียวได้ คำสั่งนี้จะไม่เปลี่ยนแปลงจนกว่าคุณจะไปถึงคำสั่งอื่น แต่คุณสามารถรีเซ็ตได้โดยเว้นว่าง#If(และหากดูเหมือนว่าเป็นการแฮ็กยินดีต้อนรับสู่ AHK)

ahk_class Notepadสั่งนี่คือการตรวจสอบหากมีหน้าต่างที่เฉพาะเจาะจงเปิดที่กำหนดโดย เมื่อ AHK ได้รับอินพุต“ Win + C” มันจะเริ่มการทำงานภายใต้#IfWinActive คำสั่งแรกก็ต่อเมื่อคำสั่งส่งคืนเป็นจริงจากนั้นตรวจสอบคำสั่งที่สองหากไม่เป็นเช่นนั้น AHK มีคำสั่งมากมายและคุณสามารถค้นหาคำสั่งทั้งหมดได้ในเอกสาร

AutoHotkey ยังมี hotstrings ซึ่งทำหน้าที่เหมือนปุ่มลัดยกเว้นการแทนที่สตริงข้อความทั้งหมด สิ่งนี้คล้ายกับวิธีการทำงานของการแก้ไขอัตโนมัติที่จริงแล้วมีสคริปต์การแก้ไขอัตโนมัติสำหรับ AHK แต่รองรับการทำงานของ AHK

hotstring จะจับคู่สตริงก็ต่อเมื่อพิมพ์ตรงกันเท่านั้น มันจะลบข้อความที่ตรงกันโดยอัตโนมัติเพื่อแทนที่ hotstring เช่นกันแม้ว่าจะสามารถปรับพฤติกรรมนี้ได้

การดำเนินการ

การดำเนินการใน AHK คือสิ่งใดก็ตามที่มีผลกระทบภายนอกระบบปฏิบัติการ AHK มีแอคชั่นมากมาย เราไม่สามารถอธิบายได้ทั้งหมดดังนั้นเราจะเลือกสิ่งที่มีประโยชน์

  • การส่งข้อมูลไม่ว่าจะเป็นข้อความหรือการกดปุ่มต่างๆ
  • เลื่อนเมาส์ไปรอบ ๆ ในความเป็นจริงบางครั้ง AHK ถูกตั้งค่าสถานะอย่างไม่ถูกต้องว่าเป็นซอฟต์แวร์โกงสำหรับวิดีโอเกมเนื่องจากผู้คนได้สร้าง aimbots ที่ทำงานได้อย่างเต็มที่
  • คลิกเมาส์โดยวางตำแหน่งที่สัมพันธ์กับหน้าต่างปัจจุบัน
  • การแสดงเมนูโต้ตอบพร้อมแบบฟอร์มและช่องป้อนข้อมูล
  • เลื่อนหน้าต่างไปรอบ ๆ ปรับขนาดและเปิดและปิด
  • เล่นดนตรี.
  • การเขียนลง Windows Registry ใช่จริงๆ.
  • การแก้ไขเนื้อหาของคลิปบอร์ด
  • การอ่านและเขียนไฟล์ คุณสามารถวนซ้ำไฟล์และเรียกใช้การดำเนินการในแต่ละบรรทัด AHK สามารถเขียนลง.ahk ไฟล์และปรับรหัสของตัวเองได้

การดำเนินการเหล่านี้ส่วนใหญ่จะมีคำสั่งที่เน้นข้อมูลเกี่ยวข้องด้วย ตัวอย่างเช่นคุณสามารถเขียนลงในคลิปบอร์ดได้ แต่คุณยังสามารถรับเนื้อหาของคลิปบอร์ดเพื่อเก็บไว้ในตัวแปรและเรียกใช้ฟังก์ชันเมื่อคลิปบอร์ดเปลี่ยนไป

ผูกมันทั้งหมดด้วยโครงสร้างการควบคุม

AHK จะไม่เป็นอย่างที่เป็นอยู่หากไม่มีโครงสร้างการควบคุมทั้งหมดที่ทำให้ทัวริงสมบูรณ์

นอกจาก#Ifคำสั่งแล้วคุณยังสามารถเข้าถึงIf ด้านในของบล็อกการดำเนินการได้อีกด้วย AHK มีFor ลูปบล็อกวงเล็บปีกกาTry และCatchข้อความและอื่น ๆ อีกมากมาย คุณสามารถเข้าถึงข้อมูลภายนอกจากภายในบล็อกการดำเนินการและเก็บไว้ในตัวแปรหรือวัตถุเพื่อใช้ในภายหลัง คุณสามารถกำหนดฟังก์ชันและป้ายกำกับแบบกำหนดเองได้ จริงๆแล้วอะไรก็ตามที่คุณสามารถทำได้อย่างง่ายดายในภาษาโปรแกรมอื่นที่คุณสามารถทำได้ใน AHK ด้วยอาการปวดหัวเล็กน้อยและดูเอกสาร

ตัวอย่างเช่นสมมติว่าคุณมีงานที่น่าเบื่อและซ้ำซากจำเจที่คุณต้องคลิกปุ่มหลาย ๆ ปุ่มติดต่อกันและรอให้เซิร์ฟเวอร์ตอบกลับก่อนที่จะทำซ้ำอีกครั้งในโฆษณา infinitum คุณสามารถใช้ AHK เพื่อทำสิ่งนี้โดยอัตโนมัติ คุณต้องการกำหนดสองสามลูปเพื่อเลื่อนเมาส์ไปยังตำแหน่งที่ต้องการคลิกจากนั้นย้ายไปยังจุดถัดไปแล้วคลิกอีกครั้ง ทุ่มงบรอสักนิดเพื่อให้ไม่พัง คุณสามารถลองอ่านสีของพิกเซลบนหน้าจอเพื่อดูว่าเกิดอะไรขึ้น

สิ่งหนึ่งที่แน่นอนคือสคริปต์ของคุณอาจจะไม่สวย แต่ AutoHotkey ไม่ใช่และก็ไม่เป็นไร