ตอนนี้เป็นตอนต่อของการสร้างปุ่ม 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
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment
ส่วนนี้สำหรับแสดงความคิดเห็นทั่วไป สอบถามปัญหาตั้งถามได้ที่ฟอรั่ม
>>> [โปรดอ่าน] เนื่องจาก บทความการใช้งานบางโปรแกรมได้โฟสไปนานแล้ว
โปรแกรมอาจมีการอัปเดท วิธีการใช้งาน อาจใช้ไม่ได้ หรือมีวิธีที่ง่ายกว่าในเวอร์ชั่นใหม่
หากคุณพบว่าวิธีการใช้งานไม่ตรงกับบทความในบล็อกนี้ สามารถแนะนำเพิ่มเติมได้ครับ