Home Webboard ArticlesKnowledges  

ผู้เขียน หัวข้อ: AutoIt3 ความรู้เบื้องต้น เกี่ยวกับ GUI (Graphic Unit Interfade) Function  (อ่าน 21401 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
GUI หมายถึง เป็นสคริ๊ปโค๊ด กึ่งสำเร็จรูป หมายความว่า โปรแกรมAutoIt3 ทำใว้ให้ส่วนหนึ่ง อีกส่วนหนึ่งเราต้องเขียนเพิ่มเติมเอง
มีหลักการและรูปแบบดังนี้
1. สร้างสิ่ง..? ให้เกิดขึ้น (Create)
2. ควบคุมสิ่ง..? ให้เป็นไปตามที่ต้องการ (Control)
----------------------------------------------------------------
จะยกตัวอย่างเปรียบเทียบแบบง่ายๆ เพื่อให้เห็นภาพ จะได้เข้าใจ เขียนออกมาได้ถูกต้อง
สั่งประกอบรถยนต์ (Function)
1.(Create&Display)เมื่อโรงงานผลิตรถยนต์ให้เราคันหนึ่ง ซึ่งองค์ประกอบของรถยนต์อาจจะยังไม่ครบ เช่นขาด
เครื่องยนต์,ล้อ,พวงมาลัย และน้ำมัน เป็นต้น เราต้องหามาใส่ให้ครบ
..แต่มีผู้ผลิตบางราย ที่เมื่อทำรถเสร็จ ก็ให้คนขับ ขับรถ มาส่งรถให้เราถึงบ้าน
2.(Control&Display) เรามีจุดประสงค์อย่างไร? กับรถยนต์ เช่น ต้องการให้รถยนต์เคลื่อนที่ ไปในทิศทางที่ต้องการ 
เราก็ต้องเพิ่มเติม สิ่งที่ทำให้รถยนต์เกิดการเคลื่อนไหว เช่น คนขับ เป็นต้น..
อันนี้ไม่ต้องอธิบายว่า คนขับทำให้รถยนต์เคลื่อนที่ไปในทิศทางที่ต้องการได้อย่างไร?
----------------------------------------------------------------
                                          (มีต่อคราวหน้า)                  
« แก้ไขครั้งสุดท้าย: 22, มิถุนายน 2009, 10:47:39 AM โดย sak2005 »


คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt3 ความรู้เบื้องต้น เกี่ยวกับ GUI (Graphic Unit Interfade) Function
« ตอบกลับ #1 เมื่อ: 24, มิถุนายน 2009, 11:06:27 PM »
เรียนรู้ AutoIt3 แบบ Steb By Steb (.au3)
--------------------------------
สิ่งที่กำลังจะเกิดขึ้น เรากำลังจะเรียนรู้เรื่อง การเขียนสคริ๊ป ให้ออกมาเป็นโปรแกรม
ซึ่งต่างจากการเรียนรู้ตามมหาวิทยาลัย คือ ใช้โปรแกรมเขียนให้ออกมาเป็นสคริ๊ป
-----------------------------------------
กำหนด Projectอะไรก็ได้ขึ้นมาชิ้นหนึ่ง และเมื่อสร้างเสร็จ นำมาทดลองใช้งาน ปรากฏว่า ใช่งานได้ดี ถือว่าสอบผ่าน
รูปแบบและหลักการดำเนินงาน ก็เหมือนกับโปรแกรมภาษาโดยทั่่วไป ดังนี้
1.สร้าง Form
2.ใส่ Object ต่างๆลงไปในฟอร์ม
3.เขียนสคริ๊ปควบคุม (Control)
4.Compile เปลียนสคริ๊ปให้สามารถใช้งานกับเครื่องอื่นได้ (.exe)
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt3 ความรู้เบื้องต้น เกี่ยวกับ GUI (Graphic Unit Interfade) Function
« ตอบกลับ #2 เมื่อ: 24, มิถุนายน 2009, 11:09:48 PM »
1.Form หมายถึง หน้าต่างหลักที่จำเป็นต้องสร้างขึ้นมา ขาดไม่ได้เลย ถ้าไม่มีForm ก็ไม่รู้ว่าจะเอา Object ชิ้นส่วนประกอบต่างๆไปวางไว้ตรงไหน!?
รูปแบบของฟอร์ม มีดังนี้
-----------------------------------------------------
โค๊ด: [Select]
GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )----------------------------------------------------------
:อธิบาย:
GUICreate เป็นคำสั่งสร้างฟอร์ม ส่วนที่อยู่ในวงเล็บ(Parameters) เป็นการกำหนดรายละเอียดต่างๆให้กับฟอร์ม
title หมายถึง มีไว้แสดงตัวอักษร บนไตเติ้ลบาร์ด้านบน
width หมายถึง ไว้ใช้กำหนดขนาด ความกว้าง ให้กับฟอร์ม
height หมายถึง ไว้ใช้กำหนดขนาด ส่วนสูง ให้กับฟอร์ม
left หมายถึง ไว้ใช้กำหนด ตำแหน่งที่จะวางฟอร์มบนเดสก์ทอป ว่าจะให้อยู่ตรงไหน?.. ทางซ้ายหรือทางขวา
top หมายถึง ไว้ใช้กำหนด ตำแหน่งที่จะวางฟอร์มบนเดสก์ทอป ว่าจะให้อยู่ตรงไหน?.. ข้างล่างหรือข้างบน
« แก้ไขครั้งสุดท้าย: 24, มิถุนายน 2009, 11:43:57 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt3 ความรู้เบื้องต้น เกี่ยวกับ GUI (Graphic Unit Interfade) Function
« ตอบกลับ #3 เมื่อ: 24, มิถุนายน 2009, 11:26:36 PM »
ใส่ส่วนประกอบ(object) ที่ต้องการใช้งานลงบนฟอร์ม เช่น. ปุ่ม (Button),ฉลาก (Label),ตัวอักษร (Data text) เป็นต้น. และอื่นๆอีกมากมาย
:สร้างปุ่มบนฟอร์ม:
โค๊ด: [Select]
GUICtrlCreateButton ( "text", left, top [, width [, height [, style [, exStyle]]]] )-----------------------------------------------------------------------------------------------------------
 เมื่อสร้างปุ่มควบคุมลงบนฟอร์มแล้ว ยังจะทำอะไรหรือแสดงผลออกมาไม่ได้ จนกว่าจะมีการกระตุ้นให้เกิดการทำงาน
เหมือนรถยนต์ที่ยังไม่ได้สตาร์ทเครื่อง
--------------------------------------------------------------------------------------------------------------------------
ควบคุมและสั่งงาน (Control)
:กระตุ้นให้เกิดการทำงาน: สตาร์ทเครื่องยนต์ , เร่งเครื่องยนต์ , ควบคุมพวงมาลัย
โค๊ด: [Select]
GUISetState()     

While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Button_1
Run('Notepad.exe')   
Case $msg = $Button_2
MsgBox(0, 'Testing', 'Button 2 was pressed')   
EndSelect
WEnd
EndFunc
« แก้ไขครั้งสุดท้าย: 25, มิถุนายน 2009, 12:46:06 AM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt3 ความรู้เบื้องต้น เกี่ยวกับ GUI (Graphic Unit Interfade) Function
« ตอบกลับ #4 เมื่อ: 25, มิถุนายน 2009, 12:25:46 AM »
ตัวอย่างสคริ๊ปที่เขียนเสร็จสมบูรณ์ แบบ Function Loop ใช้งานได้จริง
โค๊ด: [Select]
#include <GUIConstantsEx.au3>

Opt('MustDeclareVars', 1)

Example()

Func Example()
Local $Button_1, $Button_2, $msg
GUICreate("My GUI Button")

Opt("GUICoordMode", 2)
$Button_1 = GUICtrlCreateButton("Run Notepad", 10, 30, 100)
$Button_2 = GUICtrlCreateButton("Button Test", 0, -1)

GUISetState()   ;สคริ๊ปที่ทำให้เกิดการตอบสนอง  

While 1         
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Button_1     ;สร้างคำสั่งควบคุมผ่านปุ่มต่างๆ ทำให้เกิดการทำงาน ตามต้องการ
Run('Notepad.exe')   
Case $msg = $Button_2
MsgBox(0, 'Testing', 'Button 2 was pressed')   
EndSelect
WEnd
EndFunc  

-------------------------------------------------------------------------------
4.ถ้าจะนำไปใช้งานจริง ต้องCompile ก่อนนะครับ (.au3 to .exe)

« แก้ไขครั้งสุดท้าย: 25, มิถุนายน 2009, 01:07:29 AM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
เราได้เรียนรู้การเขียนสคริปให้ออกมาเป็นโปรแกรมกันแล้ว ทีนี้เรามาหัดเขียนโปรแกรมให้ออกมาเป็นสคริ๊ปกันบ้าง ด้วยโปรแกรม Koda Designer
เปิดใช้งานได้ที่ C:\Program Files\AutoIt3\SciTE\Koda หรือไม่รู้ว่าอยู่ตรงไหน!? ก็ดาวน์โหลดโปรแกรมเรียกShortcutมาใช้งาน
Download:http://upload.one2car.com/download.aspx?pku=460044D1EAL7IFMYWQ9R5Y8VXS38XF
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
รายละเอียดหน้าที่การใช้งานต่างๆของโปรแกรม Koda (ดูรูปภาพ)
ขั้นตอนต่างๆในการทำก็ง่าย ขอให้ท่านปฏิบัติตามดังนี้
1.เปิดฟอร์มขึ้นมา
2.นำสิ่งต่างๆที่ต้องการใช้งาน ไปวางไว้บนฟอร์ม
3.ปรับแต่งฟอร์มและสิ่งต่างๆเพิ่มเติม
4.ทดสอบผลงาน
5.นำโค๊ดที่ได้ไปแปลงเป็นไฟล์สคริ๊ป .au3 และเขียนสคริ๊ปควบคุมเพิ่มเติม
6.Compile จาก .au3 to .exe
----------------------------------------------------------
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
แบบฝึกหัด:การทำprogress Bar บางท่านอาจจะยังไม่ทราบ หรือรู้แต่เพียง นำProgressและปุ่ม ไปวางบนฟอร์ม
แต่ไม่รู้ขั้นตอนต่อไปว่าจะทำให้Progress Bar แสดงผลได้อย่างไร? ฉนั้นเรามาเรียนรู้กัน แบบ Steb By Steb
---------------------------------------------------------------
เมื่อเปิดโปรแกรมKodaขึ้นมา หน้าต่างฟอร์มก็จะเปิดขึ้นมาให้ด้วยอัตโนมัติ
นำProgress Barมาวางไว้บนฟอร์ม ..คลิ๊กที่ Win32 เลือกคลิ๊กที่ รูปProgress bar จากนั้นเลื่อนเมาท์มาคลิ๊กบนพื้นที่ฟอร์ม
รูปprogress barก็จะปรากฏขึ้นบนฟอร์ม
นำปุ่มคำสั่งมาวางไว้บนฟอร์ม ..คลิ๊กที่Standard เลือกคลิ๊กที่ ปุ่ม ok จากนั้นเลื่อนเมาท์มาคลิ๊กบนพื้นที่ฟอร์ม
รูปปุ่มก็จะปรากฏขึ้นบนฟอร์ม ที่เหลือก็เป็นการจัดระเบียบและปรับแต่งอื่นๆเพิ่มเติม
จากนั้นก็ลองคลิ๊กปุ่มทดสอบผลงานดูครับ

คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
เมื่อทดสอบและปรับแต่งผลงานจนเป็นที่ถูกใจแล้ว ก็จัดการแปลงเป็นสคริ๊ป .au3 คลิ๊กที่เมนู Tools เลือกคลิ๊กที่ Generate Form Code จากนั้นให้ดูที่Option ด้านล่าง คลิ๊กที่รูปสามเหลี่ยมเล็กสีดำ เปิดOptionออกมา คลิ๊กเลือกที่ Save to File จากนั้นให้คลิ๊กที่รูปแผ่นดิสเก็ตอีกครั้ง จะมีหน้าต่างยืนยันเปิดขึ้นมา ให้คลิ๊ก No ..ต่อไปก็เลือกสถานที่เก็บไฟล์ ..ตั้งชื่อไฟล์ ..คลิ๊ก Save
ก็จะได้ไฟล์ .au3 ออกมา ต่อไปก็เป็นขั้นตอนที่ต้องเขียนสคริ๊ปเพิ่มเติมเข้าไปให้สมบูรณ์ ..Progress Bar ถึงจะสามารถแสดงผลได้

คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
โดยทั่วไปสคริ๊ปที่สั่งและควบคุมการทำงาน Objectที่อยู่บนฟอร์ม มักจะเป็นแบบ Control Loop ดังนี้

คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
เมื่อเขียนสคริ๊ปได้ถูกต้องสมบูรณ์ Progress Bar ก็จะแสดงผลได้ดังรูป


----------------------------------------------------------------------------------------------------
Download:Sample Project5
http://upload.one2car.com/download.aspx?pku=280DFEA30W[F2JSHRIZDCBZ93OXWS
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
อันนี้เป็นการใส่ Counter % ลงไปด้วย

โค๊ด: [Select]
$Progress1 = GUICtrlCreateProgress(8, 40, 270, 25, BitOR($PBS_SMOOTH,$WS_CLIPSIBLINGS))
GUICtrlSetBkColor(-1, 0xFFFBF0)
$Button1 = GUICtrlCreateButton("ติดตั้ง", 8, 80, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("ยกเลิก", 200, 80, 75, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("0%", 128, 88, 26, 17)
$Label2 = GUICtrlCreateLabel("", 120, 8, 108, 20)
GUISetState([แอท]SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
For $i = 0 to 100 Step 1
GUICtrlSetData($Progress1, $i)
GUICtrlSetData($Label1, $i & "%")
GUICtrlSetData($Label2, "Installing...")
Sleep(100)
Next
If $i >= 100 Then
Sleep(1000)
GUICtrlSetData($Label2, "Completed.")
GUICtrlSetData($Label1, "Done.")
Sleep(1000)
ExitLoop
EndIf
Case $Button2
Exit
EndSwitch
WEnd


« แก้ไขครั้งสุดท้าย: 08, กรกฎาคม 2009, 01:32:35 AM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
การใช้งาน InputBox เบื้องต้น จุดประสงค์:ต้องการสร้างโปรแกรม AutoInstaller ไว้สำหรับติดตั้งโปรแกรมต่างๆแบบอัตโนมัติ
ผมออกแบบโปรแกรมและสคริ๊ปคำสั่งเอง เพื่อให้ได้โปรแกรมออกมาตามจุดประสงค์ ซึ่งสามารถอธิบายการทำงานในส่วนต่างๆของสคริ๊ปได้
ดูโปรแกรมตัวอย่าง ที่เราจะมาเรียนรู้การสร้างกันก่อนครับ ดังรูป.
Download:AutoInstaller Project เพื่อการศึกษา
Size:3.6 MB
http://upload.one2car.com/download.aspx?pku=19CF4EB5FCD5E8FPDMWV4KXHPCHHTI


------------------------------------------------
หลักการสร้างตัวโปรแกรม ซึ่งประกอบด้วย page Form และ Object ต่างๆบนฟอร์มนั้น จะสร้างขึ้นด้วย โปรแกรม KODA Designer
หรือเขียนสคริ๊ปเพื่อสร้างตัวโปรแกรมขึ้นมาโดยตรงก็ได้ ถ้าเรียนรู้ให้เข้าใจในความหมายของสคริ๊ปที่เขียนนั้นๆ ท่านสามารถทำได้ไม่ยาก
-----------------------------------------------------------------------------------------------------
ให้ท่านสร้างตัวโปรแกรมขึ้นมา ดังรูป และเขียนสคริ๊ปคำสั่งเพิ่มเติมลงไปดังนี้
ผมจะอธิบายการทำงานของสคริ๊ป โดยแยกออกเป็นส่วนๆ ท่านจะได้เข้าใจได้ง่ายขึ้น
-------------------------------------------------------------

โค๊ด: [Select]
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

ส่วนแรกของการเขียนสคริ๊ปอย่างเต็มรูปแบบ ที่มักขาดไม่ได้คือคำสั่ง include ซึ่งหมายถึง การหยิบยืมคำสั่งบางคำสั่ง ที่มีอยู่ในโปรแกรม Autoit
มาใช้ร่วมกับการเขียน ..สคริ๊ปที่เขียนบางคำสั่ง ถ้าไม่ include จะไม่สามารถทำงานได้ ส่วนมากมักจะเป็นคำสั่งประเภท Macro Switch
-------------------------------------------------------------------------------------------------------------

โค๊ด: [Select]
$Form1 = GUICreate("Auto Installer & Silent Mode", 450, 160, 192, 124)
 $Input1 = GUICtrlCreateInput("Add..Path\File here", 80, 40, 265, 21)
 $Input2 = GUICtrlCreateInput("Add..Silent Switch here", 80, 80, 265, 21)
 $Label1 = GUICtrlCreateLabel("Source", 24, 40, 44, 17)
           GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
 $Label2 = GUICtrlCreateLabel("Parameter", 8, 80, 61, 17)
           GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")

   $Label3 = GUICtrlCreateLabel("USSF", 380, 110, 61, 17)
           GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")

$Button1 = GUICtrlCreateButton("Browse", 360, 38, 75, 25, $WS_GROUP)
           GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Button2 = GUICtrlCreateButton("Install", 160, 120, 75, 25, $WS_GROUP)
           GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Button3 = GUICtrlCreateButton("Find", 360, 78, 75, 25, $WS_GROUP)
           GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")

สคริ๊ปในส่วนของการสร้างตัวหน้าต่างโปรแกรม (Page Form) และสิ่งต่างๆที่อยู่บนหน้าต่าง (Object)เช่น. ปุ่มต่างๆและ อินพุทบอกซ์ เป็นต้น
---------------------------------------------------------------------------------------------------------

โค๊ด: [Select]
GuiSetState([แอท]SW_SHOW)
คำสั่งนี้สำคัญมาก เป็นคำสั่งที่กระตุ้นให้ GUI ต่างๆข้างบน เกิดการตอบสนอง มักทำงานร่วกับคำสั่ง Loop หรือ Event
-----------------------------------------------------------------------------------------


« แก้ไขครั้งสุดท้าย: 12, สิงหาคม 2009, 11:29:09 AM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
โค๊ด: [Select]
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$message = "Select a file to install."
     $Source = FileOpenDialog($message, [แอท]DesktopDir & "", "File(*.exe;*.msi)|All(*.*)", 1 + 4 )
     GUICtrlSetData($Input1, $Source)
     $Install = StringReplace($Source, "|", [แอท]CRLF)
Case $Button2

$SilentMode = GUICtrlRead($Input2)
$PID = ShellExecute($Install, $SilentMode, "", "open")

_PROGRESS()
    SoundPlay([แอท]WindowsDir & "\Media\Tada.wav", 1)
_SPLASH()
Exit
Case $Button3
ShellExecute("Plugin\USSF1.exe","",[แอท]ScriptDir,"open")
EndSwitch
WEnd

Func _PROGRESS()
$WAIT = ProcessGetStats($PID, 0)
      ProgressOn("Progress Meter", "Installing...", "0 percent")
For $i = 0 to 100
  Sleep($PID)
      ProgressSet( $i, $i & "%")
  Sleep($WAIT)
  Next
    ProgressSet(100 , "Done", "Complete")
    Sleep(1000)
    ProgressOff()
EndFunc

Func _SPLASH()
SplashTextOn("Completed.", "ติดตั้งเรียบร้อย.", 200, 50, -1, -1, 0, "", 12)
     Sleep(2000)
     SplashOff()
EndFunc
------------------------------------------------------------------------------
Loop Control:ใช้ While เป็นคำสั่งวนลูป ให้ GUI ทำงานหรือแสดงผลไปเรื่อยๆ ไม่มีวันสิ้นสุด จนกว่าเราจะสร้างเงื่อนไข
เพื่อกระทำหรือหยุดกระทำต่อ GUI นั้นๆ โดยใช้ตัวเลือก ก็คือคำสั่ง Switch หรือ Select
ในบางกลุ่มคำสั่ง ถ้าสคริ๊ปที่เขียน หนาแน่นจนเกินไป อาจทำให้เกิดการสับสนต่อการเขียนได้
ให้แยกย่อยสคริ๊ปออกมาเป็นกลุ่ม Function จะได้ตรวจทานสคริ๊ปที่เขียนได้ง่ายขึ้น และลดความหนาแน่นของกลุ่มคำสั่งต่างๆ
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
นี่ก็เป็นอีกรูปแบบคำสั่ง ที่ใช้ติดตั้งโปรแกรมแบบอัตโนมัติได้เหมือนกัน สั่งเกตุที่ Case $Button1 และ Case $Button2 สคริ๊ปที่เขียนเปลี่ยนไป

โค๊ด: [Select]
Case $Button1
$message = "Select a file to install."
     $Source = FileOpenDialog($message, [แอท]DesktopDir & "", "File(*.exe;*.msi)|All(*.*)", 1 + 4 )
     GUICtrlSetData($Input1, $Source)
;$Install = StringReplace($Source, "|", [แอท]CRLF)
 Case $Button2
$Install = GUICtrlRead($Input1)
     $SilentMode = GUICtrlRead($Input2)
$PID = ShellExecute($Install, $SilentMode, "", "open")
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 
Back to top