ก่อนจะเริ่มลงมือเขียนต้องเข้าใจก่อนว่า AutoIt สามารถดึงเอารายละเอียดบางอย่างของ
คอมพิวเตอร์ที่ใช้งานอยู่ขึ้นมาได้ เช่น ข้อมูลว่าใช้ Windows อะไร เป็นแบบ 32 หรือ 64 บิต,รายละเอียดของฮาร์ดดิสก์, และ Username ของผู้ใช้ที่กำหนดล็อกอินอยู่ ข้อมูลพวกนี้เป็นข้อมูลพื้นฐานทั่วไป ซึ่งจะมีคำสั่งสำหรับดึงขึ้นมาใช้งานใน AutoIt เรียบร้อยแล้ว ดังรูปด้านล่างนี้ ผมสั่งให้แสดงข้อมูล Username ของเครื่องที่เปิดโปรแกรม AutoIt ขึ้นมา
1. ใช้คำสั่ง @UserName ตรวจสอบ Username ที่กำลังล็อกอิน
2. ใช้คำสั่ง DriveGetSerial ตรวจสอบ หมายเลข Serial ของฮาร์ดดิสก์
3. ใช้คำสั่ง FileExists ตรวจสอบ ไฟล์ที่ซ่อนเอาไว้ในเครื่อง
วิธีใช้งานคำสั่งดังกล่าว ทำได้ด้วยการนำชุดคำสั่งไปวางไว้ในตอนต้นของสคริปต์ AutoIt ตัวอย่างมีดังนี้
1. ทำงานเฉพาะ Username ที่กำหนด วิธีเขียนเราจะใช้คำสั่ง @UserName ดึงเอารายชื่อ Username ที่กำลังล็อกอินเปิดโปรแกรมอยู่มาเป็นตัวตัดสินว่าจะให้โปรแกรมทำงานหรือไม่ ตามตัวอย่างนี้ผมกำหนดให้โปรแกรมตรวจสอบว่า Username ชื่อ POS หรือไม่ ถ้าใช่ก็ทำงานได้ ถ้าไม่ใช่ก็ปิดโปรแกรม ถ้าคุณจะนำไปใช้กับเครื่องอื่นๆ ก็เปลี่ยนตรงชื่อ POS เป็นชื่อ Username ที่คุณกำหนด
if @UserName = "POS" then
msgbox(64, "ทำงาน", "Username ใช้งานโปรแกรมได้")
Else
msgbox(64, "ไม่สามารถทำงานได้", "Username นี้ใช้งานโปรแกรมไม่ได้")
Exit
EndIf
2.ทำงานเฉพาะฮาร์ดดิสก์ที่กำหนด วิธีนี้เราจะใช้คำสั่ง DriveGetSerial ดึงเอาหมายเลข Serial ของฮาร์ดดิสก์ออกมา ซึ่งฮาร์ดดิสก์แต่ละตัวจะมีไม่เหมือนกัน ก่อนใช้เราต้องรู้หมายเลขของฮาร์ดดิสก์เสียก่อน โดยใช้คำสั่ง
$var = DriveGetSerial( "c:\" )
MsgBox(4096, "Serial Number: ", $var)
นำเอาคำสั่งด้านบนเปิดในเครื่องที่กำหนด แล้วจดเอาหมายเลขฮาร์ดดิสก์เอาไว้ เครื่องของผมจะได้หมายเลข 1088306497
วิธีเขียนก็ทำได้ดังนี้ (เขียนให้ทำงานได้เฉพาะเครื่องผม) ถ้าคุณเอาไปใช้กับเครื่องอื่นก็ต้องไปตรวจดูหมายเลขของฮาร์ดดิสก์ของเครื่องนั้นๆ เสียก่อน ค่อยนำเอามาใส่แทนหมายเลขของผม
$var = DriveGetSerial( "c:\" )
if $var = "1088306497" then
msgbox(64, "ทำงาน", "ใช้งานโปรแกรมได้")
Else
msgbox(64, "ไม่สามารถทำงานได้", "ใช้งานโปรแกรมไม่ได้")
Exit
EndIf
หมายเหตุ
คำสั่ง DriveGetSerial จะดึงเอาหมายเลข Serial ของฮาร์ดดิสก์โดยอ้างอิงจากวินโดวส์ติดตั้ง ดังนั้นถึงแม้คุณจะใช้ฮาร์ดดิสก์ตัวเดิม แต่ถ้าลงวินโดวส์เป็นคนละเวอร์ชั่น หรือคนละแพทช์ หมายเลขที่ได้จากตัวฮาร์ดดิสก์ก็จะเปลี่ยนไปด้วยเช่นกัน
3. วิธีการในสองวิธีข้างต้นค่อนข้างจะมีข้อจำกัดอยู่พอสมควร หากคุณต้องควบคุมเครื่องคอมพิวเตอร์หลายๆ เครื่อง การกำหนดให้ทำงานเฉพาะเครื่องที่กำหนด อาจใช้วิธีการซ่อนไฟล์ในตำแหน่งใดตำแหน่งหนึ่ง แล้วเขียนโปรแกรมตรวจสอบว่าเครื่องนั้นมีไฟล์ที่เราซ่อนเอาไว้หรือเปล่า ถ้ามีก็ให้ทำงานตามที่กำหนดเอาไว้
คำสั่งที่ใช้ในการตรวจสอบว่ามีไฟล์อยู่หรือไม่ เราจะใช้คำสั่ง FileExists วิธีการใช้งานมีขั้นตอนคือ
[1] นำไฟล์ไปวางไว้ในตำแหน่งที่กำหนด เช่น C:\Windows ตัวอย่างนี้ผมจะนำไฟล์ชื่อ ABC.txt ไปวางไว้
[2] เขียนโปรแกรมโดยใช้คำสั่ง FileExists ตรวจสอบดังนี้
If FileExists("C:\Windows\ABC.txt") Then
msgbox(64, "ทำงาน", "ใช้งานโปรแกรมได้")
Else
msgbox(64, "ไม่สามารถทำงานได้", "ใช้งานโปรแกรมไม่ได้")
Exit
EndIf
หมายเหตุ
คำสั่ง FileExists นอกจากจะตรวจสอบว่ามีไฟล์อยู่หรือไม่แล้ว ยังสามารถใช้ตรวจสอบว่ามีโฟลเดอร์อยู่หรือไม่ ได้ด้วยเช่นกัน ตัวอย่างเช่น ถ้าจะตรวจสอบว่ามีโฟลเดอร์ชื่อ AAA อยู่ในไดรฟ์ C: หรือไม่ก็เขียนเป็น FileExists("C:\AAA")
###จบแล้วครับ###
0 comments:
Post a Comment
ส่วนนี้สำหรับแสดงความคิดเห็นทั่วไป สอบถามปัญหาตั้งถามได้ที่ฟอรั่ม
>>> [โปรดอ่าน] เนื่องจาก บทความการใช้งานบางโปรแกรมได้โฟสไปนานแล้ว
โปรแกรมอาจมีการอัปเดท วิธีการใช้งาน อาจใช้ไม่ได้ หรือมีวิธีที่ง่ายกว่าในเวอร์ชั่นใหม่
หากคุณพบว่าวิธีการใช้งานไม่ตรงกับบทความในบล็อกนี้ สามารถแนะนำเพิ่มเติมได้ครับ