ตอนนี้เป็นตอนต่อของการสร้างปุ่ม HotKey โดยเขียนโปรแกรมจากสคริปต์ AutoIt ความสามารถของโปรแกรมที่เราจะทำในตอนนี้คือ
- เรียกใช้โปรแกรมที่ต้องการโดยการกดปุ่ม HotKye ที่กำหนด (ตามตัวอย่างนี้คือปุ่ม F1)
- เมื่อกดปุ่ม F1 ครั้งแรกโปรแกรมจะเปิดขึ้นมา ถ้ากดปุ่ม F1 ซ้ำอีกครั้งโปรแกรมก็จะปิดตัวลง
- นำโปรแกรมที่เขียนขึ้นมาวางไว้ที่ SartUp เพื่อให้โปรแกรมเปิดขึ้นมาทำงานทุกครั้งที่เปิดเครื่อง
- กดปุ่ม ESC จะเป็นปิดการทำงานของโปรแกรมทันที
คำสั่งซึ่งจะเรียนรู้เพิ่มเติมในตอนนี้คือ
Global เป็นการประกาศตัวแปร เพื่อนำไปใช้ในส่วนใดก็ได้ของคำสั่ง เนื่องจากปกติแล้วเมื่อคำสร้างตัวแปรใน AutoIt ถ้าสร้างขึ้นมาในฟังก์ชั่น ตัวแปรจะมีผลเฉพาะฟังก์ชั่นนั้นๆ พอย้ายเข้าทำงานที่ฟังก์ชั่นใหม่ค่าตัวแปรก็จะไม่ทำงาน
อย่างไรก็ตามตัวอย่างในตอนนี้ จะประกาศหรือไม่หรือไม่ก็ได้ แต่ใส่เข้าไว้เผื่อว่าคุณอาจจะสร้าง HotKey ที่มีการใช้ตัวแปรร่วมกัน รูปแบบคำสั่งคือ Global ตามด้วยชื่อตัวแปร
ตัวอย่างคำสั่ง
Global $onoff =0
; สร้างตัวแปรชื่อ $onoff โดยกำหนดค่าเริ่มต้นเป็น 0
ToolTip เป็นคำสั่งแสดงทูลทิป(กรอบแสดงข้อความ) เพื่อกำหนดให้รู้สถานะการทำงานของโปรแกรม รูปแบบคำสั่ง ToolTip("ข้อความที่จะให้แสดงขึ้น") อย่างไรก็ตามปัญหาของการใช้คำสั่งนี้จะมีอยู่อย่างหนึ่งก็คือ เมื่อใช้ไปแล้วข้อความจะค้าง ดังนั้นเราจึงต้องใช้คำสั่ง ToolTip("") เพื่อล้างข้อความเดิมออกไป
ตัวอย่างคำสั่ง
ToolTip("เปิดโปรแกรม")
sleep(1000)
ToolTip("")
;แสดงข้อความว่า เปิดโปรแกรม เป็นเวลา 1 วินาทีแล้วจึงลบข้อความทิ้ง
ProcessClose ปิดชื่อโปรแกรมที่กำหนด คำสั่งนี้ใช้สำหรับปิดโปรแกรมที่เราสั่งให้เปิดขึ้นมา ชื่อโปรแกรมที่ใส่นั้นต้องเป็นชื่อเต็มของไฟล์โปรแกรมนั้นๆ เช่น Winamp ก็ต้องใส่เป็น Winamp.exe คือ มีชื่อและนามสกุลของไฟล์โปรแกรมด้วย รูปแบบคำสั่ง ProcessClose("ตามด้วยตำแหน่งและชื่อโปรแกรมที่ต้องการจะปิด")
ตัวอย่างคำสั่ง
ProcessClose("calc.exe")
;ปิดโปรแกรม calc (โปรแกรมเครื่องคิดเลข)
If...then…ElseIf...then...EndIf เป็นคำสั่งสำหรับใช้ตรวจสอบเงื่อนไขที่กำหนด เมื่อเงื่อนไขตรงก็จะทำงาน ตามตัวอย่างนี้เราจะทำการตรวจสอบเงื่อนไข โดยอ้างอิงจากตัวแปร $onoff ซึ่งจะมีค่าอยู่ค่าคือ 0 และ 1 รูปแบบคำสั่ง
If เงื่อนไขที่ให้ตรวจสอบ Then
ถ้าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งนี้
ถ้ายังไม่ตรง ให้ไปตรวจสอบเงื่อนไขถัดไป
ElseIf เงื่อนไขที่ให้ตรวจสอบ Then
ถ้าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งนี้
ถ้ายังไม่ตรง ให้ไปตรวจสอบเงื่อนไขถัดไป
EndIf
ตัวอย่างคำสั่ง
If $onoff =0 Then
;ถ้าค่าตัวแปร $onoff เป็น 0 ให้ทำตามคำสั่งถัดจากนี้
$onoff =1
run("calc.exe")
ElseIf $onoff =1 Then
;ถ้าค่าตัวแปร $onoff เป็น 1 ให้ทำตามคำสั่งถัดจากนี้
$onoff =0
ProcessClose("calc.exe")
EndIf
ต่อไปนี้เป็นตัวอย่างคำสั่งพร้อมคำอธิบาย
Global $onoff =0
;กำหนดค่าตัวแปร $onoff เริ่มต้นให้เป็น 0
HotKeySet("{F1}", "start1")
;สร้าง HotKey เมื่อกดปุ่ม F1 ให้กระโดดไปทำงานฟังก์ชั่น start1
HotKeySet("{ESC}", "end")
;สร้าง HotKey เมื่อกดปุ่ม ESC ให้กระโดดไปทำงานฟังก์ชั่น end
while 1
sleep(100)
ToolTip("")
wend
;คำสั่ง while 1 เพื่อให้โปรแกรมคงสถานะการทำงานต่อเนื่องไปเรื่อยๆ พร้อมแทรกคำสั่ง ToolTip("") ลงไปเพื่อข้อความที่ปรากฏขึ้นมาเมื่อกดปุ่ม F1
Func start1()
;เริ่มฟังก์ชั่น start1 เมื่อมีการกดปุ่ม HotKey ที่ F1
If $onoff =0 Then
;ตั้งเงื่อนไข ถ้า ตัวแปร $onoff เท่ากับ 0 ให้ทำตามคำสั่งถัดจากนี้ ถ้าไม่ตรงให้ข้ามไปส่วน ElseIf ที่อยู่ถัดไป
$onoff =1
;ตั้งเงื่อนไข ให้กำหนดค่าตัวแปร $onoff เป็น 1 ที่ให้ทำแบบนี้ก็เพื่อเปลี่ยนสถานะของตัวแปร ถ้ากดปุ่ม F1 ครั้งแรกตัวแปรนี้จะทำงาน เพราะค่า $onoff เท่ากับ 0 แต่เมื่อโปรแกรมวิ่งมาทำตามคำสั่งตามเงื่อนไขนี้ ค่าตัวแปร $onoff จะถูกตั้งใหม่เป็น 1 เพื่อให้การกดปุ่มครั้งต่อไป เงื่อนไขของคำสั่งจะไม่เป็นจริง และข้ามไปตรวจสอบเงื่อนไขถัดไป
ToolTip("เปิดโปรแกรม")
;สร้างทูลทิปข้อความว่า เปิดโปรแกรม run("calc.exe")
;สั่งเปิดโปรแกรมเครื่องคิดเลข
sleep(1000)
;หน่วงเวลา 1 วินาที (1 วินาที = 1000) เพื่อให้ข้อความแสดงให้เห็นก่อนจะถูกลบไป
ElseIf $onoff =1 Then
;ตั้งเงื่อนไข ถ้า ตัวแปร $onoff เท่ากับ 1 แสดงว่าโปรแกรมเครื่องคิดเลขถูกเปิดขึ้นมาแล้ว ให้ทำตามคำสั่งถัดจากนี้
$onoff =0
;ตั้งตัวแปร $onoff ให้เป็น 0 อีกครั้ง เพื่อให้การกดปุ่ม F1 ครั้งหน้า โปรแกรมจะเปิดโปรแกรมเครื่องคิดเลขขึ้นมา
ToolTip("ปิดโปรแกรม")
;สร้างทูลทิปแสดงข้อความ ปิดโปรแกรม
ProcessClose("calc.exe")
;สั่งปิดโปรแกรมเครื่องคิดเลข โดยใส่ชื่อโปรแกรมลงไป
sleep(1000)
;หน่วงเวลา 1 วินาที (1 วินาที = 1000) เพื่อให้ข้อความแสดงให้เห็นก่อนจะถูกลบไป
EndIf
;จบการตรวจสอบเงื่อนไข
EndFunc
;จบการทำงานฟังก์ชั่นนี้
Func end()
;เริ่มฟังก์ชั่น end เมื่อมีการกดปุ่ม HotKey ที่ ESC
Exit
;ใส่คำสั่ง exit เพื่อปิดโปรแกรม AuotIt
EndFunc
;จบการทำงานฟังก์ชั่นนี้
คำสั่งแบบไม่มีคำอธิบาย
Global $onoff = 0
HotKeySet("{F1}", "start1")
HotKeySet("{ESC}", "end")
While 1
Sleep(100)
ToolTip("")
WEnd
Func start1()
If $onoff = 0 Then
$onoff = 1
ToolTip("เปิดโปรแกรม")
Run("calc.exe")
Sleep(1000)
ElseIf $onoff = 1 Then
$onoff = 0
ToolTip("ปิดโปรแกรม")
ProcessClose("calc.exe")
Sleep(1000)
EndIf
EndFunc
Func end()
Exit
EndFunc
หน้าตาคำสั่งเมื่อเขียนลงไปใน SciTe
สำหรับการกำหนดให้โปรแกรมทำงานทุกครั้งที่เปิดเครื่อง ทำได้ด้วยการนำไฟล์โปรแกรมที่ Comile เสร็จแล้ว ลากมาวางบนโฟลเดอร์ StartUp ที่อยู่ใน Start Menu ครับ หรือใช้วิธีพิมพ์คำสั่ง
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
ลงไปที่ช่อง Address ของ Explorer ก็ได้เช่นกัน
ตอนแรกกะว่าจะสอนให้ใช้คำสั่งฝังโปรแกรมลงใน Registry แต่ดูแล้วเนื้อหาจะเยอะเกินไป เลยแนะนำแบบนี้จะสะดวกกว่า
สำหรับตอนหน้าจะเป็นตอนสุดท้ายแล้ว โดยจะสอนให้ใช้ Hotkey หยุดการทำงานของลูปโปรแกรม AutoIt ชั่วคราว ทั้งแบบที่หยุดจนกว่าเราจะกดปุ่มที่กำหนดถึงทำงานต่อ และหยุดแบบมีการนับเวลาถอยหลังจึงค่อยทำงาน
###จบแล้วครับ###
Oct 2, 2009
Related Post
เทคนิคเขียนสคริปต์ AutoIt ดึงรายชื่อไดร์ฟในเครื่องแบบอัตโนมัติ การเขียนสคริปต์ปกติของ AutoIt คุณจะต้องสร้างหน้าต่างตอบโตักับผู้ใช้ (GUI) เพื่อก
สร้างโปรแกรม Auto comment Hi5 และโปรแกรมควบคุมเว็บด้วย AutoIt :4 ส่วนนี้เป็นการสอนเขียนโปรแกรม หากคุณต้องการที่ทำเสร็จแล้ว ดาวน์โหลดได้ตามลิงก์นี้ครับPSsix Auto
Workshop AutoIt :1 ดึงข้อมูลจากเว็บในส่วนที่เราต้องการ รอยต่อระหว่างโลกและท้องฟ้าเป็นสิ่งที่คุณสามารถมองเห็นได้ แต่ไม่มีวันเดินไป
source code โปรแกรม PSsix Auto Comment 0.2b (สคริปต์เขียนมาจาก AutoIt) ตัว source code ของโปรแกรม PSsix Auto Comment เวอร์ชั่น 0.2b ซึ่งนำมาแจกใ
ทำไมโปรแกรม AutoIt จึงมีปัญหากับโปรแกรมป้องกันไวรัสบางโปรแกรม เมื่อก่อนนี้ ปัญหาหนึ่งที่คุณมักจะพบหากนำโปรแกรมที่สร้างจาก AutoIt ไปแจกจ่
วิธีตั้งค่าภาษาไทยให้กับ SciTE Script Editor ใน AutoIt สำหรับมือใหม่ที่เริ่มใช้ AutoIt เขียนสคริปต์โปรแกรมต่างๆ อาจจะพบปัญหาในโปร
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment
ส่วนนี้สำหรับแสดงความคิดเห็นทั่วไป สอบถามปัญหาตั้งถามได้ที่ฟอรั่ม
>>> [โปรดอ่าน] เนื่องจาก บทความการใช้งานบางโปรแกรมได้โฟสไปนานแล้ว
โปรแกรมอาจมีการอัปเดท วิธีการใช้งาน อาจใช้ไม่ได้ หรือมีวิธีที่ง่ายกว่าในเวอร์ชั่นใหม่
หากคุณพบว่าวิธีการใช้งานไม่ตรงกับบทความในบล็อกนี้ สามารถแนะนำเพิ่มเติมได้ครับ