Home Webboard ArticlesKnowledges  
ข่าวประกาศ:

:: กติกา มารยาท ในการใช้งานเว็บบอร์ด ::
กรุณากรอกอีเมล์จริงในการสมัคร และรับอีเมล์ยืนยันเพื่อใช้งานในบอร์ด

ผู้เขียน หัวข้อ: AutoIt v3 Double advanced (ขั้นโปร)  (อ่าน 13180 ครั้ง)

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

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
AutoIt v3 Double advanced (ขั้นโปร)
« เมื่อ: 20, กรกฎาคม 2009, 10:07:11 AM »
ใครที่เป็นแฟนๆ AutoIt3 อยากได้ Code autoit3 ที่มีประโยชน์ไว้ศึกษา ผมจะนำมาลงไว้ที่นี่ เป็นประจำ
ผมเรียนรู้การใช้งานAutoIt3 ด้วยตนเองมา3ปีกว่าแล้ว รู้ยังไม่ได้ครึ่งเลย ต้องมีความอดทนในการศึกษาเล่าเรียนสูง
ผมจะนำความรู้ที่ได้ มาเผยแพร่ให้ได้มากที่สุดเท่าที่จะทำได้ เพื่อ..ประโยชน์ตน..ประโยชน์ท่าน และการพัฒนาบุคลากรของประเทศ

----------------------------------------------------------------
การที่จะนำCodeไปใช้ให้ได้ประโยชน์สุงสุด ท่านต้องมีหัวคิด พลิกแพลง ดัดแปลงCodeกันเอง ดั่งตัวอย่างที่จะนำมาลงให้คราวหน้า
ห้ามพลาดเด็ดขาด

---------------------------------------------------------------
« แก้ไขครั้งสุดท้าย: 20, กรกฎาคม 2009, 10:19:49 PM โดย sak2005 »


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

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt v3 Double advanced (ขั้นโปร)
« ตอบกลับ #1 เมื่อ: 20, กรกฎาคม 2009, 10:24:23 PM »
Sample1:ตัวอย่าง โปรแกรมCopy Files



โค๊ด: [Select]
#include <File.au3>
$GUI = GUICreate("Copy files Manager",412,100)
$LABEL1 = GUICtrlCreateLabel("SOURCE",5,9,100,100)
$LABEL2 = GUICtrlCreateLabel("DEST",20,33,100,100)
$PATH1 = GUICtrlCreateInput([แอท]ScriptDir,60,5,270,20)
$BROWSE1 = GUICtrlCreateButton("BROWSE",341,5,65,20)
$PATH2 = GUICtrlCreateInput([แอท]DesktopDir,60,30,270,20)
$BROWSE2 = GUICtrlCreateButton("BROWSE",340,30,65,20)
$COPY = GUICtrlCreateButton("COPY",165,60,50,30)
GUISetState([แอท]SW_SHOW,$GUI)

While 1
    $MSG = GUIGetMsg()
    Select
        Case $MSG = $BROWSE1
            $PATH = FileSelectFolder("Select Source path",[แอท]ScriptDir,1)
            If Not [แอท]error Then
                GUICtrlSetData($PATH1,$PATH)
            EndIf
        Case $MSG = $BROWSE2
            $PATH = FileSelectFolder("Select Dest path",[แอท]ScriptDir,1)
            If Not [แอท]error Then
                GUICtrlSetData($PATH2,$PATH)
            EndIf
        Case $MSG = $COPY
            $FROM = GUICtrlRead($PATH1)
            $TO = GUICtrlRead($PATH2)
            $FILE = _FileListToArray($FROM)
            ProgressOn("","Copying",$FROM & " to " & $TO)
            For $INDEX = 1 To $FILE[0]
                FileCopy($FROM & "\" & $FILE[$INDEX],$TO & "\" & $FILE[$INDEX],1)
                ProgressSet($INDEX*100/Number($FILE[0]),$FROM & "\" & $FILE[$INDEX] & " to " & [แอท]CRLF & $TO & "\" & $FILE[$INDEX])
            Next
            ProgressOff()
        Case $MSG = -3
            Exit
    EndSelect
    Sleep(20)
WEnd
« แก้ไขครั้งสุดท้าย: 20, กรกฎาคม 2009, 10:30:12 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt v3 Double advanced (ขั้นโปร)
« ตอบกลับ #2 เมื่อ: 20, กรกฎาคม 2009, 10:29:27 PM »
Sample2:โปรแกรม ตั้งเวลา



โค๊ด: [Select]
#include <GUIConstants.au3>

GUICreate("Auto Time Shutdown", 300, 150)
$OK_Btn = GUICtrlCreateButton("Start", 115, 105, 70, 25)
$std = GUICtrlCreateInput ("Set time here", 50, 35, 70, 23)
$min = GUICtrlCreateInput ("0.5", 180,  35, 70, 23)
GuiCtrlCreateLabel("Hour", 73, 10, 150, 20)
GuiCtrlCreateLabel("Min", 203, 10, 150, 20)
$lab = GUICtrlCreateLabel("Time left:", 76, 75, 200, 20)

GUISetState([แอท]SW_SHOW)

While 1
     $msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
            GUIDelete()
Exit
Case $msg = $OK_Btn
if GUICtrlRead($OK_Btn) = "Start" Then
$time = (StringIsDigit(GUICtrlRead($std)) Or StringIsFloat(GUICtrlRead($std)))* GUICtrlRead($std) * 3600
$time += (StringIsDigit(GUICtrlRead($min)) Or StringIsFloat(GUICtrlRead($min))) * GUICtrlRead($min) * 60
GUICtrlSetData ($OK_Btn,"Stop")
$begin = TimerInit()
While Int(TimerDiff($begin)/1000) <= $time
$Diffhour = Int($time/3600 - TimerDiff($begin)/3600000)
$Diffmin = Int(Mod($time/60 - TimerDiff($begin)/60000, 60))
$Diffsek = Int(Mod($time - TimerDiff($begin)/1000, 60))
GUICtrlSetData($lab, "Time Left: " & $Diffhour & " hour " & $DiffMin & " min " & $Diffsek & " sec ")
if Int(TimerDiff($begin)/1000) = $time then
        SoundPlay([แอท]WindowsDir & "\Media\Tada.wav", 1)
            ;Shutdown(1)
ShellExecute("readme.txt", "", [แอท]MyDocumentsDir)
;Exit
            GUICtrlSetData ($OK_Btn,"Start")
ContinueCase
EndIf
if GUIGetMsg() = $OK_Btn then
GUICtrlSetData ($OK_Btn,"Start")
ContinueCase
EndIf
Sleep(10)
WEnd
ElseIf GUICtrlRead($OK_Btn) = "Stop" Then
GUICtrlSetData ($OK_Btn,"Start")
EndIf
Case [แอท]error
EndSelect
WEnd
« แก้ไขครั้งสุดท้าย: 20, กรกฎาคม 2009, 10:52:19 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt v3 Double advanced (ขั้นโปร)
« ตอบกลับ #3 เมื่อ: 20, กรกฎาคม 2009, 10:53:28 PM »
ต่อไปเป็นการนำโค๊ดจาก Sample1และSample2 มารวมกัน ออกมาเป็น โปรแกรม ตั้งเวลาก๊อบปี้ข้อมูล (ดังรูป)

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

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt v3 Double advanced (ขั้นโปร)
« ตอบกลับ #4 เมื่อ: 20, กรกฎาคม 2009, 11:30:19 PM »
ขั้นแรกให้สร้าง GUI หรือ Form และ Object ต่างๆ ที่ต้องใช้งาน เช่น Input box , Button ขึ้นมาก่อน
ด้วยการเขียนโค๊ดลงไปบน Notepad หรือบน Script edit ดังนี้ (จะก๊อบปี้โค๊ดจากที่โพสท์ไว้ มาใช้ก็ได้)

โค๊ด: [Select]
#include <GUIConstants.au3>
#include <File.au3>

GUICreate("Time Auto Copy", 430, 203)

$LABEL1 = GUICtrlCreateLabel("Source",15,12,100,100)
$PATH1 = GUICtrlCreateInput([แอท]ScriptDir,63,10,270,20)
$LABEL2 = GUICtrlCreateLabel("Dest",27,43,100,100)
$PATH2 = GUICtrlCreateInput([แอท]DesktopDir,63,40,270,20)
$BROWSE1 = GUICtrlCreateButton("Browse",348,10,65,20)
$BROWSE2 = GUICtrlCreateButton("Browse",348,40,65,20)
GuiCtrlCreateLabel("Hour", 124, 72, 40, 20)
$std = GUICtrlCreateInput ("Set time here", 102, 93, 70, 23)
GuiCtrlCreateLabel("Min", 243, 72, 40, 20)
$min = GUICtrlCreateInput ("0.5", 220,  93, 70, 23)
$lab = GUICtrlCreateLabel("Time left:" & "  0 hour" & "  0 min" & "  0 sec", 125, 132, 200, 20)
$OK_Btn = GUICtrlCreateButton("Start", 160, 163, 70, 25)

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

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt v3 Double advanced (ขั้นโปร)
« ตอบกลับ #5 เมื่อ: 20, กรกฎาคม 2009, 11:36:45 PM »
ขั้นตอนต่อไป ก็เขียนโค๊ดควบคุมการทำงานลงไป ดังนี้

โค๊ด: [Select]
While 1
     $msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
            GUIDelete()
Exit
Case $msg = -3
Exit
Case $MSG = $BROWSE1
            $PATH = FileSelectFolder("Select Source path",[แอท]ScriptDir,1)
If Not [แอท]error Then
GUICtrlSetData($PATH1,$PATH)
EndIf
Case $MSG = $BROWSE2
            $PATH = FileSelectFolder("Select Dest path",[แอท]ScriptDir,1)
If Not [แอท]error Then
GUICtrlSetData($PATH2,$PATH)
EndIf
Case $msg = $OK_Btn
If GUICtrlRead($OK_Btn) = "Start" Then
$time = (StringIsDigit(GUICtrlRead($std)) Or StringIsFloat(GUICtrlRead($std)))* GUICtrlRead($std) * 3600
$time += (StringIsDigit(GUICtrlRead($min)) Or StringIsFloat(GUICtrlRead($min))) * GUICtrlRead($min) * 60
GUICtrlSetData ($OK_Btn,"Stop")
$begin = TimerInit()
While Int(TimerDiff($begin)/1000) <= $time
$Diffhour = Int($time/3600 - TimerDiff($begin)/3600000)
$Diffmin = Int(Mod($time/60 - TimerDiff($begin)/60000, 60))
$Diffsek = Int(Mod($time - TimerDiff($begin)/1000, 60))
GUICtrlSetData($lab, "Time Left: " & $Diffhour & " hour " & $DiffMin & " min " & $Diffsek & " sec ")
if Int(TimerDiff($begin)/1000) = $time then
            $FROM = GUICtrlRead($PATH1)
            $TO = GUICtrlRead($PATH2)
            $FILE = _FileListToArray($FROM)
            ProgressOn("Dir Copy","Copying",$FROM & " to " & $TO)
For $INDEX = 1 To $FILE[0]
DirCopy($FROM & "\" & $FILE[$INDEX],$TO & "\" & $FILE[$INDEX],1)
ProgressSet($INDEX*100/Number($FILE[0]),$FROM & "\" & $FILE[$INDEX] & " to " & [แอท]CRLF & $TO & "\" & $FILE[$INDEX])
Next
            ProgressOff()
SoundPlay([แอท]WindowsDir & "\Media\Tada.wav", 1)

            $FROM = GUICtrlRead($PATH1)
            $TO = GUICtrlRead($PATH2)
            $FILE = _FileListToArray($FROM)
            ProgressOn("Files Copy","Copying",$FROM & " to " & $TO)
For $INDEX = 1 To $FILE[0]
FileCopy($FROM & "\" & $FILE[$INDEX],$TO & "\" & $FILE[$INDEX],1)
ProgressSet($INDEX*100/Number($FILE[0]),$FROM & "\" & $FILE[$INDEX] & " to " & [แอท]CRLF & $TO & "\" & $FILE[$INDEX])
Next
            ProgressOff()
SoundPlay([แอท]WindowsDir & "\Media\Tada.wav", 1)
            GUICtrlSetData ($OK_Btn,"Start")
ContinueCase
EndIf
if GUIGetMsg() = $OK_Btn then
    GUICtrlSetData ($OK_Btn,"Start")
ContinueCase
EndIf
    Sleep(10)
WEnd
ElseIf GUICtrlRead($OK_Btn) = "Stop" Then
    GUICtrlSetData ($OK_Btn,"Start")
EndIf
Case [แอท]error
EndSelect
WEnd
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt v3 Double advanced (ขั้นโปร)
« ตอบกลับ #6 เมื่อ: 20, กรกฎาคม 2009, 11:43:36 PM »
เสร็จแล้วก็นำโค๊ดมารวมกัน ได้ออกมาเต็มรูปแบบ ใช้งานได้เลย ดังนี้ (Save As to .au3 and Compile to .exe)


โค๊ด: [Select]
#include <GUIConstants.au3>
#include <File.au3>

GUICreate("Time Auto Copy", 430, 203)

$LABEL1 = GUICtrlCreateLabel("Source",15,12,100,100)
$PATH1 = GUICtrlCreateInput([แอท]ScriptDir,63,10,270,20)
$LABEL2 = GUICtrlCreateLabel("Dest",27,43,100,100)
$PATH2 = GUICtrlCreateInput([แอท]DesktopDir,63,40,270,20)
$BROWSE1 = GUICtrlCreateButton("Browse",348,10,65,20)
$BROWSE2 = GUICtrlCreateButton("Browse",348,40,65,20)
GuiCtrlCreateLabel("Hour", 124, 72, 40, 20)
$std = GUICtrlCreateInput ("Set time here", 102, 93, 70, 23)
GuiCtrlCreateLabel("Min", 243, 72, 40, 20)
$min = GUICtrlCreateInput ("0.5", 220,  93, 70, 23)
$lab = GUICtrlCreateLabel("Time left:" & "  0 hour" & "  0 min" & "  0 sec", 125, 132, 200, 20)
$OK_Btn = GUICtrlCreateButton("Start", 160, 163, 70, 25)

GUISetState([แอท]SW_SHOW)

While 1
     $msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
            GUIDelete()
Exit
Case $msg = -3
Exit
Case $MSG = $BROWSE1
            $PATH = FileSelectFolder("Select Source path",[แอท]ScriptDir,1)
If Not [แอท]error Then
GUICtrlSetData($PATH1,$PATH)
EndIf
Case $MSG = $BROWSE2
            $PATH = FileSelectFolder("Select Dest path",[แอท]ScriptDir,1)
If Not [แอท]error Then
GUICtrlSetData($PATH2,$PATH)
EndIf
Case $msg = $OK_Btn
If GUICtrlRead($OK_Btn) = "Start" Then
$time = (StringIsDigit(GUICtrlRead($std)) Or StringIsFloat(GUICtrlRead($std)))* GUICtrlRead($std) * 3600
$time += (StringIsDigit(GUICtrlRead($min)) Or StringIsFloat(GUICtrlRead($min))) * GUICtrlRead($min) * 60
GUICtrlSetData ($OK_Btn,"Stop")
$begin = TimerInit()
While Int(TimerDiff($begin)/1000) <= $time
$Diffhour = Int($time/3600 - TimerDiff($begin)/3600000)
$Diffmin = Int(Mod($time/60 - TimerDiff($begin)/60000, 60))
$Diffsek = Int(Mod($time - TimerDiff($begin)/1000, 60))
GUICtrlSetData($lab, "Time Left: " & $Diffhour & " hour " & $DiffMin & " min " & $Diffsek & " sec ")
if Int(TimerDiff($begin)/1000) = $time then
            $FROM = GUICtrlRead($PATH1)
            $TO = GUICtrlRead($PATH2)
            $FILE = _FileListToArray($FROM)
            ProgressOn("Dir Copy","Copying",$FROM & " to " & $TO)
For $INDEX = 1 To $FILE[0]
DirCopy($FROM & "\" & $FILE[$INDEX],$TO & "\" & $FILE[$INDEX],1)
ProgressSet($INDEX*100/Number($FILE[0]),$FROM & "\" & $FILE[$INDEX] & " to " & [แอท]CRLF & $TO & "\" & $FILE[$INDEX])
Next
            ProgressOff()
SoundPlay([แอท]WindowsDir & "\Media\Tada.wav", 1)

            $FROM = GUICtrlRead($PATH1)
            $TO = GUICtrlRead($PATH2)
            $FILE = _FileListToArray($FROM)
            ProgressOn("Files Copy","Copying",$FROM & " to " & $TO)
For $INDEX = 1 To $FILE[0]
FileCopy($FROM & "\" & $FILE[$INDEX],$TO & "\" & $FILE[$INDEX],1)
ProgressSet($INDEX*100/Number($FILE[0]),$FROM & "\" & $FILE[$INDEX] & " to " & [แอท]CRLF & $TO & "\" & $FILE[$INDEX])
Next
            ProgressOff()
SoundPlay([แอท]WindowsDir & "\Media\Tada.wav", 1)
            GUICtrlSetData ($OK_Btn,"Start")
ContinueCase
EndIf
if GUIGetMsg() = $OK_Btn then
    GUICtrlSetData ($OK_Btn,"Start")
ContinueCase
EndIf
    Sleep(10)
WEnd
ElseIf GUICtrlRead($OK_Btn) = "Stop" Then
    GUICtrlSetData ($OK_Btn,"Start")
EndIf
Case [แอท]error
EndSelect
WEnd

..พบกันใหม่คราวหน้าครับ..
« แก้ไขครั้งสุดท้าย: 20, กรกฎาคม 2009, 11:53:53 PM โดย sak2005 »
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt v3 Double advanced (ขั้นโปร)
« ตอบกลับ #7 เมื่อ: 23, กรกฎาคม 2009, 10:59:41 AM »
อันนี้แก้ Bug มาให้ตรง 'Browse' เป็นโค๊ดที่ค่อนข้างสมบูรณ์ ลองนำไปทดสอบใช้งานดูครับ

โค๊ด: [Select]
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=AutoTimeBack.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstants.au3>
#include <File.au3>

$Gui = GUICreate("Auto Time Backup Manager     <>      by : sak2005", 430, 203)

$LABEL1 = GUICtrlCreateLabel("Source",15,12,100,100)
$PATH1 = GUICtrlCreateInput([แอท]DesktopCommonDir,63,10,270,20)
$LABEL2 = GUICtrlCreateLabel("Destin",20,43,100,100)
$PATH2 = GUICtrlCreateInput([แอท]DesktopCommonDir,63,40,270,20)
$BROWSE1 = GUICtrlCreateButton("Browse",348,10,65,20)
$BROWSE2 = GUICtrlCreateButton("Browse",348,40,65,20)
GuiCtrlCreateLabel("Hour", 124, 72, 40, 20)
$std = GUICtrlCreateInput ("Set time here", 102, 93, 70, 23)
GuiCtrlCreateLabel("Min", 243, 72, 40, 20)
$min = GUICtrlCreateInput ("0.5", 220,  93, 70, 23)
$lab = GUICtrlCreateLabel("Time left:" & "  0 hour" & "  0 min" & "  0 sec", 125, 132, 200, 20)
$OK_Btn = GUICtrlCreateButton("Start", 160, 163, 70, 25)

GUISetState([แอท]SW_SHOW)

While 1
     $msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $BROWSE1
$PATH = FileSelectFolder("Select the source path",[แอท]DesktopCommonDir,1)
If Not [แอท]error Then
GUICtrlSetData($PATH1,$PATH)
EndIf                                                            ;Select path for Source and Destin:-
Case $msg = $BROWSE2
$PATH = FileSelectFolder("Select the destin path",[แอท]DesktopCommonDir,1)
If Not [แอท]error Then
GUICtrlSetData($PATH2,$PATH)
EndIf
Case $msg = $OK_Btn
If GUICtrlRead($OK_Btn) = "Start" Then  ;Start time count:-
$time = (StringIsDigit(GUICtrlRead($std)) Or StringIsFloat(GUICtrlRead($std)))* GUICtrlRead($std) * 3600
$time += (StringIsDigit(GUICtrlRead($min)) Or StringIsFloat(GUICtrlRead($min))) * GUICtrlRead($min) * 60
GUICtrlSetData ($OK_Btn,"Stop")
$begin = TimerInit()
While Int(TimerDiff($begin)/1000) <= $time
$Diffhour = Int($time/3600 - TimerDiff($begin)/3600000)
$Diffmin = Int(Mod($time/60 - TimerDiff($begin)/60000, 60))
$Diffsek = Int(Mod($time - TimerDiff($begin)/1000, 60))
GUICtrlSetData($lab, "Time Left: " & $Diffhour & " hour " & $DiffMin & " min " & $Diffsek & " sec ")
if Int(TimerDiff($begin)/1000) = $time then  ;Start backup data:-
            $FROM = GUICtrlRead($PATH1)
            $TO = GUICtrlRead($PATH2)
            $FILE = _FileListToArray($FROM)
            ProgressOn("Dir Copy","Copying",$FROM & " to " & $TO)
For $INDEX = 1 To $FILE[0]
DirCopy($FROM & "\" & $FILE[$INDEX],$TO & "\" & $FILE[$INDEX],1)
ProgressSet($INDEX*100/Number($FILE[0]),$FROM & "\" & $FILE[$INDEX] & " to " & [แอท]CRLF & $TO & "\" & $FILE[$INDEX])
Next
            ProgressOff()
SoundPlay([แอท]WindowsDir & "\Media\Tada.wav", 1)

            $FROM = GUICtrlRead($PATH1)
            $TO = GUICtrlRead($PATH2)
            $FILE = _FileListToArray($FROM)
            ProgressOn("Files Copy","Copying",$FROM & " to " & $TO)
For $INDEX = 1 To $FILE[0]
FileCopy($FROM & "\" & $FILE[$INDEX],$TO & "\" & $FILE[$INDEX],1)
ProgressSet($INDEX*100/Number($FILE[0]),$FROM & "\" & $FILE[$INDEX] & " to " & [แอท]CRLF & $TO & "\" & $FILE[$INDEX])
Next
            ProgressOff()
SoundPlay([แอท]WindowsDir & "\Media\Tada.wav", 1)
Exit  ;Finish backup data:-  ;Close GUI After  backup data complete:-
            GUICtrlSetData ($OK_Btn,"Start")
ContinueCase
EndIf
if GUIGetMsg() = $OK_Btn then
    GUICtrlSetData ($OK_Btn,"Start")
ContinueCase
EndIf
    Sleep(10)
WEnd
ElseIf GUICtrlRead($OK_Btn) = "Stop" Then      ;Pause time count:-
    GUICtrlSetData ($OK_Btn,"Start")
EndIf
Case [แอท]error
EndSelect
WEnd
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt v3 Double advanced (ขั้นโปร)
« ตอบกลับ #8 เมื่อ: 26, สิงหาคม 2009, 10:46:08 AM »
ตัวอย่างการใช้งาน RadioButton
---------------------------------
ผมออกแบบให้เป็นโปรแกรม ที่ไว้ใช้เลือก ติดตั้งโปรแกรมต่างๆ แบบอัตโนมัติ ดังรูป
Downloa:Sample Project14
Size:11.1 MB
http://upload.one2car.com/download.aspx?pku=3CBBFF37079F8DTV47N26VWAO9KC[G



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

$Form1 = GUICreate("Select AutoInstaller", 258, 90, 193, 125)
GUISetBkColor(0xC0DCC0)
$Radio1 = GUICtrlCreateRadio("EasyBoot", 16, 16, 73, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Radio2 = GUICtrlCreateRadio("UtraISO", 96, 16, 65, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Radio3 = GUICtrlCreateRadio("Winamp5", 176, 16, 73, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Install", 88, 48, 75, 25, $WS_BORDER)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetCursor (-1, 0)
$Label1 = GUICtrlCreateLabel("Close", 216, 72, 35, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetCursor (-1, 0)

GUISetState([แอท]SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Label1
Exit
Case $Button1
If $radio1 And BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED Then
RunWait("ezb5_en.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
MsgBox(0,"","Completed.")
EndIf
If $radio2 And BitAND(GUICtrlRead($radio2), $GUI_CHECKED) = $GUI_CHECKED Then
RunWait("uiso8_pe.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
MsgBox(0,"","Completed.")
EndIf
If $radio3 And BitAND(GUICtrlRead($radio3), $GUI_CHECKED) = $GUI_CHECKED Then
RunWait("winamp512_full.exe /S")
MsgBox(0,"","Completed.")
EndIf
EndSwitch
WEnd
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

ออฟไลน์ sak2005

  • You Are Just Member
  • ******
  • กระทู้: 683
  • เห็นด้วย&ขอบคุณ: 79
  • เพศ: ชาย
  • The Matrix by Neo
Re: AutoIt v3 Double advanced (ขั้นโปร)
« ตอบกลับ #9 เมื่อ: 29, กันยายน 2009, 01:45:59 PM »
ความรู้เพิ่มเติมเกี่ยวกับคำสั่ง Control Loop ได้แก่.. Do Loop , For Loop และ While Loop
ลองดาวน์โหลด นำไปศึกษาดูครับ
Download:http://upload.one2car.com/download.aspx?pku=43BE1939982B9KQFR3IPPUPTHOBZ1R



โค๊ด: [Select]
;--Includes a file in the current script--
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

;-----------GUI Control Create------------
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Control Loop Sample", 330, 163, 345, 155)
$Progress1 = GUICtrlCreateProgress(16, 40, 294, 25)
$Button1 = GUICtrlCreateButton("Do Loop", 16, 120, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("For Loop", 128, 120, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("While Loop", 240, 120, 75, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("0%", 96, 12, 122, 17, $SS_CENTER)
$Label2 = GUICtrlCreateLabel("* * * * * * * * * *", 96, 80, 132, 17, $SS_CENTER)
GUISetState([แอท]SW_SHOW)
#EndRegion ### END Koda GUI section ###

;----------Get Message GUI Control---------
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
;--------------Do Loop---------------------
Case $Button1
   $i = 0
Do
GUICtrlSetData($Progress1, $i)
GUICtrlSetData($Label1, $i & "%")
GUICtrlSetData($Label2, "Please wait!")
      $i = $i + 1
Sleep(50)
    If $i > 100 Then
GUICtrlSetData($Label2, "Done.")
MsgBox(64, "", "Completed.")
GUICtrlSetData($Progress1, 0)
GUICtrlSetData($Label1, "0%")
GUICtrlSetData($Label2, "* * * * * * * * * *")
    EndIf
Until $i > 100
;-------------For Loop--------------------
Case $Button2
For $i = 1 To 100
GUICtrlSetData($Progress1, $i)
GUICtrlSetData($Label1, $i & "%")
GUICtrlSetData($Label2, "Please wait!")
Sleep(50)
Next
If $i > 100 Then
GUICtrlSetData($Label2, "Done.")
MsgBox(64, "", "Completed.")
GUICtrlSetData($Progress1, 0)
GUICtrlSetData($Label1, "0%")
GUICtrlSetData($Label2, "* * * * * * * * * *")
EndIf
;-------------While Loop------------------
Case $Button3
$i = 0
While $i <= 100
GUICtrlSetData($Progress1, $i)
GUICtrlSetData($Label1, $i & "%")
      $i = $i + 1
GUICtrlSetData($Label2, "Please wait!")
Sleep(50)
    If $i > 100 Then
GUICtrlSetData($Label2, "Done.")
MsgBox(64, "", "Completed.")
GUICtrlSetData($Progress1, 0)
GUICtrlSetData($Label1, "0%")
GUICtrlSetData($Label2, "* * * * * * * * * *")
    EndIf
    WEnd
EndSwitch
WEnd
;-------------Programming by: sak2005----------------
คำคม: หาความชอบ ความสามารถ ในตนเองให้เจอ แล้วลงมีอทำ ก็จะประสบความสำเร็จ.

mandmod

  • บุคคลทั่วไป
Re: AutoIt v3 Double advanced (ขั้นโปร)
« ตอบกลับ #10 เมื่อ: 24, พฤศจิกายน 2009, 10:14:50 PM »
สุดยอด มาก  แต่อยากได้ code ที่ใช้ในการติดตั้ง โปรแกรมต่างๆ  ซึ่งผมก็ยังเขียนไม่ค่อยคล่อง  อย่างไงพี่ก็สุดยอดครับ
ขอบคุณที่แบ่งปัน  จะลองนำไปใช้ดูครับ

 

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