1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Source Share Source AutoUpdate cho autoit

Thảo luận trong 'Chia sẻ mã nguồn' bắt đầu bởi Xuân Dũng 38, 18/10/15.

  1. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,969
    Nơi ở:
    Hà Nội
    Trên mạng cũng có khá nhiều code check update online rồi nhưng cũng khá khó hiểu ,
    hôm nay mình mạn phép share source code update của mình nói chung là cái này cũng ngon , tổng hợp từ các nguồn trên mạng, dễ dùng

    Video hướng dẫn sửa code

    Code file VietAu3.exe
    Mã (AutoIt):

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Inet.au3>
    #include <Misc.au3>

    Global $Thisvs = "1.0.0.2" ;thông tin phiên bản hiện tại
    Global $Sever = "http://dd.hhc/" ;sever lưu file thông tin update

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("VietAutoIt.Com Update", 381, 275, 265, 137)
    $MenuItem1 = GUICtrlCreateMenu("Trình đơn")
    $MenuItem2 = GUICtrlCreateMenuItem("Kiểm Tra Cập Nhật", $MenuItem1)
    $MenuItem3 = GUICtrlCreateMenuItem("Thoát", $MenuItem1)
    GUISetFont(18, 400, 0, "Tahoma")
    $Label1 = GUICtrlCreateLabel("VietAutoIt.Com", 88, 16, 199, 39)
    GUICtrlSetFont(-1, 22, 400, 0, "Tahoma")
    GUICtrlSetColor(-1, 0x008000)
    $Label2 = GUICtrlCreateLabel("Thông Tin Phiên Bản : " & $Thisvs, 56, 88, 299, 27)
    GUICtrlSetFont(-1, 14, 400, 0, "Tahoma")
    GUICtrlSetColor(-1, 0xFF0000)
    $Button1 = GUICtrlCreateButton("Kiểm Tra Cập Nhật", 96, 160, 177, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tahoma")
    GUICtrlSetColor(-1, 0x000000)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###



      autocheck() ; nếu muốn tự động check sau khi mở gui thì để hàm này ở đây nếu ko thì delete đi =]]z

    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
         Case $GUI_EVENT_CLOSE
                Exit
            Case $Button1
                update()
            Case $MenuItem2
                update()
            Case $MenuItem3
                Exit

        EndSwitch
    WEnd


    Func autocheck()
         Sleep(3000) ;thời gian tự động kiểm tra sau khi mở gui
        update() ;gọi hàm update()
        ;;ps Func thừa thôi :v
    EndFunc
    Func update()

    Global $source = _INetGetSource($Sever & "tt.dat") ; get thông tin từ sever
       $Source = StringSplit($Source, '|') ;chia chuỗi nhận được

         Local $New_update = $Source[1] ;set biến


       If _VersionCompare($Thisvs, $New_update) == -1 Then ;Kiểm ta update có phiên bản mới chưa

        $stt = "1" ;biến tạo điều kiện để kiểm tra có file cập nhật hay chưa
       Local $file = $Sever & $Source[2]
       If $Source[3] =  $stt Then  ; kiểm tra xem có file cập nhật chưa

           If MsgBox(64 + 4 + 262144,'Kiểm Tra Cập Nhật', 'Đã tìm thấy phiên bản mới! '& @CRLF &'Phiên Bản : ' & $Source[1] & @CRLF & 'Bạn có muốn Cập nhật ngay không ? ' ) == 6 Then
              ;MsgBox hỏi người dung muốn cập nhật hay không , nếu có thì :

            ClipPut($file) ;lấy đường dẫn để gửi vào file update.exe
            RunWait('update.exe')
            EndIf
         Else
        MsgBox(16,'Kiểm Tra Cập Nhật','Chân Thành Xin Lỗi' & @CRLF & 'Chúng Tôi Chưa Thể Cập nhật được bản vá !' & @CRLF & 'Vui lòng kiểm tra cập nhật lại sau !')
       EndIf
       Else
         MsgBox(64 + 262144, "Kiểm Tra Cập Nhật", "Phiên bản "& $Thisvs &" là phiên bản mới nhất!")
       EndIf
    EndFunc
     
    Source code Update.exe

    Mã (AutoIt):


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Math.au3>

    checkprc()

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("VietAutoIt.Com Update", 268, 150)
    $Label = GUICtrlCreateLabel("VietAutoIt.Com Update", 60, 10, 250, 23 )
    GUICtrlSetFont(-1, 14, 400, 0, "Tahoma")
    GUICtrlSetColor(-1, 0xFF0000)
    $_FinalUrl = ClipGet() ;Lấy Url từ file chính
    $_TempPath = @ScriptDir & '\Update.New' ;Nơi lưu file download và tên

    $_FileSize = InetGetSize ( $_FinalUrl ) ;Tính size của file sẽ tải

    $_ProgressBar = GUICtrlCreateProgress ( 5, 55, 250, 23 )  ;tạo Progress hiển thị tiến trình tải
    GUISetState(@SW_SHOW)
    $_Download = InetGet ( $_FinalUrl, $_TempPath, 1, 1 )
    #EndRegion ### END Koda GUI section ###

    Local $_InfoData
    Do
        $_InfoData = InetGetInfo($_Download )
        If Not @error Then
            $_InetGet = $_InfoData[0]
            $_DownloadPercent = Round ( ( 100 * $_InetGet ) / $_FileSize )
            $_DownloadPercent = _Min ( _Max ( 1, $_DownloadPercent ), 99 )
            GUICtrlSetData ($_ProgressBar,$_DownloadPercent )
            $_Label = GUICtrlCreateLabel ( 'Downloading : ' & $_DownloadPercent & ' %', 50, 90, 350, 20 )
            GUICtrlSetFont(-1, 12, 400, 0, "Tahoma")
            GUICtrlSetColor(-1, 0xFF0000)
        EndIf
        Sleep ( 100 )
    Until $_InfoData[2] = True

    $_Label = GUICtrlCreateLabel ( 'Download successfull !',  50, 90, 350, 20 )
    GUICtrlSetFont(-1, 14, 400, 0, "Tahoma")
    GUICtrlSetColor(-1, 0xFF0000)
    Sleep(500)
    FileDelete("VietAu3.exe")
    $sFileOld = "Update.New"
    $sFileRenamed = "VietAu3.exe"
    FileMove($sFileOld, $sFileRenamed)
    MsgBox(64,"Update","Update Completed")

    ;Func Kiểm tra xem có chạy chương trình chính ko , nếu ko có hàm này khi mở file update.exe sẽ bị xoá file gốc

    Func checkprc()
       If NOT ProcessExists("VietAu3.exe") Then
         MsgBox(16,"Lỗi","Vui lòng chạy ABCD để kiểm tra cập nhật")
         Exit
       Else
         ProcessClose("VietAu3.exe")
       EndIf
    EndFunc

     
    File nội dung file tt.dat
    PHP:

    1.0.0.2|VietAutoIT.exe|1
    ### 1.0.0.2 là phiên bản mới ###
    ### VietAutoIT.exe là file mới đc đóng gói thành exe và uplên host###
    ### 1 là báo  có update mới , 0 là báo chưa có update###
     
    Đơn giản , dễ sử dụng mọi thắc mắc vui long post ở dưới
    Demo dưới đính kèm:autoit::vn:
     

    Các file đính kèm:

  2. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,969
    Nơi ở:
    Hà Nội
    Thôi đi ngủ :autoit::finger::p:p:p
     
    Phan Dong thích bài này.
  3. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    289
    Đã được thích:
    924
    Nơi ở:
    Hà Nội
    mình cũng đang có ý định về UDF toàn bộ về update sử dụng inet
     
    Phan Dong and Xuân Dũng 38 like this.
  4. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,969
    Nơi ở:
    Hà Nội
    mình có code mới ngon hơn rùi , tích hợp update trong 1 gói luôn :3 nhưng mà để dùng :cool::p:p
     
    Phan Dong thích bài này.
  5. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,461
    Nơi ở:
    Thành phố Hồ Chí Minh
    Bác nên viết thành một UDF share cho anh em dùng!
    Và cũng cải thiện tốc độ code của anh em hơn :)
     
    Phan Dong thích bài này.
  6. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,969
    Nơi ở:
    Hà Nội
    ác cái mình không biết viết udf :D b hướng dẫn mình đi
     
    Phan Dong thích bài này.
  7. TheMinh

    TheMinh Thành viên mới
    • 3/6

    Tham gia ngày:
    17/10/15
    Bài viết:
    9
    Đã được thích:
    24
    udf thực ra là các hàm như bình thường nhưng được lưu vào 1 file <name>.au3 đặt trong thư mục hiện tại hoặc thư mục include của autoit, khi sử dụng chỉ cần include file đó vào là có thể sử dụng các hàm trong udf đó
    Mã (AutoIt):

    #include <udf_name.au3>
    ; nếu udf đặt trong thư mục include

    #include "udf_name.au3"
    ; nếu udf đặt chung với thư mục hiện hành

    ; gọi hàm
    Trong file udf_name.au3
    Mã (AutoIt):
    Func tên_hàm(các tham số)
    ; code của bạn
    If (@error) then ; nếu phát sinh lỗi
    ; bắt lỗi
    ;...
    ; trả về kết quả cho user
    return Seterror(0,0,$dữ_liệu)
    End Func
     
    Chỉnh sửa cuối: 20/10/15
    Phan Dong thích bài này.
  8. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,461
    Nơi ở:
    Thành phố Hồ Chí Minh
    UDF với các giá trị truyền vào đều là "ẩn số"
    Khi bạn viết UDF, bạn không thể biết được người ta truyền vào cái gì, nên bạn phải sử lý nó làm sao để có thể ra được kết quả mong muốn!

    VD:
    Mã (AutoIt):
    Func Tong($a,$b)
    msgbox(0,'',$a+$b)
    Endfunc
    Đấy là khi bạn truyền vào giá trị đều là số, nhưng nhỡ như người dùng truyền vào đấy là chữ thì dĩ nhiên sẽ đi "lạc chủ đề"
    Chưa kể bạn còn phải SetError để khi người dùng sử dụng UDF biết nó bị lỗi gì nữa! :3
     
    Phan Dong and TheMinh like this.
  9. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,969
    Nơi ở:
    Hà Nội
    thế thì thôi , tự viết tự dùng :v
     
    Phan Dong thích bài này.
  10. manhjaychou

    manhjaychou Thành viên mới
    • 1/6

    Tham gia ngày:
    28/3/16
    Bài viết:
    1
    Đã được thích:
    1
    Bạn ơi có thể cho tự động update ẩn ko ạ :3
     
    kamsamita1 thích bài này.
  11. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,969
    Nơi ở:
    Hà Nội
    up phát ^^
     
    kamsamita1 thích bài này.
  12. kevin109

    kevin109 Thành viên mới
    • 1/6

    Tham gia ngày:
    27/1/17
    Bài viết:
    1
    Đã được thích:
    1
    làm autoupdate võ lâm được không mấy bác
     
    kamsamita1 thích bài này.
  13. Xuân Dũng 38

    Xuân Dũng 38 Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    9/9/15
    Bài viết:
    89
    Đã được thích:
    1,969
    Nơi ở:
    Hà Nội
    áp dụng được cho tất cả các pm nhé
     
    kamsamita1 thích bài này.
  14. phuong11111

    phuong11111 Thành viên
    • 18/23

    Tham gia ngày:
    7/1/17
    Bài viết:
    51
    Đã được thích:
    54
    cái này có sẵn trong setup rồi mà
     
    kamsamita1 thích bài này.

Chia sẻ trang này

Đang tải...