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

Hỏi đáp Xin hướng dẫn làm code thông báo có Update phiên bản mới

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi khidotdn, 23/2/16.

  1. khidotdn

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

    Tham gia ngày:
    18/11/15
    Bài viết:
    17
    Đã được thích:
    18
    Chào các bạn
    Mình có 1 vấn đề cần sự giúp đỡ của các bạn như sau:
    Mình có 1 file Power Point và chia sẻ cho nhiều người khác, vấn đề là file này được chỉnh sửa liên tục nên rất bất tiện nếu như cứ nói mọi người xóa fie cũ và tải lại file khác mặc dù thay đổi rất nhỏ
    Mình có 1 ý tưởng như sau :
    - Làm 1 tool autoit và chia sẻ cho mọi người. Khi mở tool lên thì nó sẽ tìm kiếm trong thư mục mặc định nào đó ( ví dụ My Document ). Nếu có file Power Point của mình rồi thì mở file lên luôn. Nếu chưa có thì nó sẽ tải về.
    - Trước khi mở file power point ra, nó sẽ check update. Nếu có phiên bản mới thì nó sẽ hiện thông báo cập nhật
    - Nếu ko có cập nhật nó sẽ mở file bình thường
    - Nếu máy chưa có Microsoft Power Point thì nó cũng hiện thông báo
    Rất mong các bạn giúp mình về vấn đề này, các bạn có thể cho mình vài gợi ý, 1 đoạn code hoặc 1 tool tương tự để mình tự học hỏi. Cảm ơn các bạn
     
  2. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Mình không rành về PHP cũng như không chuyên về lập trình, nên sẽ hướng dẫn bạn theo cách của riêng mình, có thể không hay, nhưng đối với mình cũng hiệu quả:
    1- Trước tiên, chuẩn bị nơi lưu trữ thông tin phiên bản. Bạn vào trang này đăng ký 1 forum (hoàn toàn miễn phí), rất đơn giản, chỉ cần điền đủ thông tin là xong: http://www.forumvi.com/create-forum/make-free-message-board/phpbb3
    Vậy là bạn đã có 4rum cho riêng mình. Bạn đăng nhập bằng quyền quản trị, sau đó kéo xuống dưới cùng 4rum sẽ thấy dòng : Bảng điều khiển của người quản trị, mình lấy ví dụ là cái 4rum của mình:

    [​IMG]

    Rồi vào các mục như hình dưới:

    [​IMG]


    [​IMG]


    [​IMG]

    [​IMG]

    Ở hình trên ta điền với mẫu như sau:

    [​IMG]

    Kết quả cuối cùng:

    [​IMG]


    2- Đến phần code, đầu tiên chuẩn bị 1 thư mục bao gồm:
    + File update.ini lưu thông tin phiên bản hiện tại, nội dung:
    [Phiên bản]
    ver = 1

    + File update.exe, nội dung:
    Mã (AutoIt):
    ;Get thông tin phiên bản hiện tại
    $phienban_hien_tai = IniRead(@ScriptDir & '\update.ini', 'Phiên bản', 'ver', 0)

    ;Get thông tin phiên bản mới nhất
    ;Ví dụ: $array_phienban_moi_nhat = StringSplit(BinaryToString(InetRead('http://xg-demo.forum-viet.com/h1-page')), '|')
    $array_phienban_moi_nhat = StringSplit(BinaryToString(InetRead('Đường link ở hình trên trong trường hợp 4rum của bạn')), '|')

    ;=> phiên bản mới nhất
    $phienban_moi_nhat = $array_phienban_moi_nhat[1]

    ;So sánh và xác nhận update:
    If Number($phienban_hien_tai) < Number($phienban_moi_nhat) Then
        ;Mở trình duyệt đường dẫn tải về file PP mới (hoặc bạn có thể viết thêm code download trực tiếp bằng chính script autoit này luôn cũng được).
        ShellExecute($array_phienban_moi_nhat[2])
        ;Sau đó ghi nhớ phiên bản mới nhất vào file ini:
        IniWrite(@ScriptDir & '\update.ini', 'Phiên bản', 'ver', $array_phienban_moi_nhat[1])
    Else
        Msgbox(4096, 'Thông báo', 'Không có bản PP mới nhất')
    EndIf
    Vậy là hoàn tất, về sau khi ra bản mới, bạn chỉ cần vào cái chỗ như đã lưu ý ở hình cuối: "Sau này muốn sửa lại phiên bản mới thì vô đây", sửa lại theo cấu trúc: Số hiệu phiên bản mới + | + đường dẫn download file PP mới là OK.

    Còn mấy vấn đề râu ria khác như check, mở file PP... bạn có thể tự code dễ dàng.

    Hy vọng giúp ích được bạn :D:D:D
     
    Chỉnh sửa cuối: 25/2/16
    khidotdn thích bài này.
  3. mrga2411

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

    Tham gia ngày:
    24/2/16
    Bài viết:
    5
    Đã được thích:
    2
    Đại khái là như vầy :
    - Gồm 2 phần Launcher và Re-Launcher
    + Launcher dùng để tải phiên bản mới từ web
    + Re-Launcher dùng để cập nhật file Launcher
    - Khi Launcher hoạt động sẽ vào 1 đường dẫn (http://vinaran.com/auto_update/version/launcher_setting.html) để kiểm tra phiên bản của Launcher hiện tại
    +Nếu phiên bản của Launcher trên web > hiện tại sẽ tiến hành update Launcher bằng cách tắt Launcher và chạy Re-Launcher
    +Nếu nhỏ hơn sẽ vào 1 đường dẫn kiểu như version(phien_ban_launcher).html Ex: http://vinaran.com/auto_update/version/version1.html
    Lấy số cuối cùng và so với phiên bản được lưu ở máy local . nếu lớn hơn sẽ down về file http://vinaran.com/auto_update/patch/Patch(phien_ban_path).zip , sau đó dùng thư việt ZipLib để giải nén ra , sau khi giải nén cập nhật kết quả vào file local (launcher , path)
     
    Nguyen.Apple and khidotdn like this.
  4. khidotdn

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

    Tham gia ngày:
    18/11/15
    Bài viết:
    17
    Đã được thích:
    18
    Chào bạn Huân Hoàng và bạn mrga2411
    Đầu tiên mình xin cảm ơn sự nhiệt tình giúp đỡ của các bạn. Sau khi mình làm theo cách của bạn Huân hoàng thì nó báo lỗi như sau:

    $phienban_hien_tai = IniRead(@ScriptDir & '\update.ini', 'Version', 'ver')
    $phienban_hien_tai = ^ ERROR


    - Nếu được thì bạn cho mình xin cái code nếu chưa có file PPT thì nó tự tải về My Document. Cảm ơn bạn rất nhiều.
    P/s mình hơi gà về autoit nên rất mong các bạn khai sáng cho mình nhé. Nêu ở HCM thì mình mời ly cafe để học hỏi thêm
     
  5. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    @khidotdn:

    Lúc mình viết mình chưa check lại, nó thiếu biến khai báo cuối đó mà :p Thêm vào:
    $phienban_hien_tai = IniRead(@ScriptDir & '\update.ini', 'Version', 'ver', 0)

    Để mai học xong về, mình rảnh sẽ code cho bạn, mình vừa nghĩ ra 1 cách rất ngắn gọn :D:D:D

    À, nhân tiện bạn cho mình hỏi nick FACEBOOK của bạn là gì để dễ inbox trao đổi nhé, nick FACEBOOK mình cũng Huân Hoàng. Thân. :)
     
    khidotdn thích bài này.
  6. khidotdn

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

    Tham gia ngày:
    18/11/15
    Bài viết:
    17
    Đã được thích:
    18
    Mình vừa add nick bạn. nick mình là Suken Tài
     
  7. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    @khidotdn:

    Đã inbox full code gồm 3 file: Admin ControlPanel.au3, Updater.au3 và MyOEData.au3 nhé :p:p:p
     
    khidotdn thích bài này.
  8. conkhidan

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

    Tham gia ngày:
    30/9/15
    Bài viết:
    1
    Đã được thích:
    0
    cảm ơn :)
     
  9. khidotdn

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

    Tham gia ngày:
    18/11/15
    Bài viết:
    17
    Đã được thích:
    18
    Chân thành cảm ơn bạn @Huân Hoàng vì sự nhiệt tình giúp đỡ. Hy vọng diễn đàn sẽ có nhiều thành viên như bạn.
    Thân ái
     
    kamsamita1 thích bài này.
  10. Giang

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

    Tham gia ngày:
    11/1/16
    Bài viết:
    9
    Đã được thích:
    4
    Bạn có thể cho mình xin 1 ví dụ code ở autoit không
     
    kamsamita1 thích bài này.
  11. mrminhpro1104

    mrminhpro1104 Thành viên năng động
    • 28/34

    Tham gia ngày:
    6/9/15
    Bài viết:
    6
    Đã được thích:
    119
    Nơi ở:
    316 Phúc Tân
    Huân Hoàng có thể gửi mình code tham khảo đc ko ạ ^^
     
    kamsamita1 thích bài này.
  12. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    @mrminhpro1104

    Full code Updater : https://db.tt/5gDG8OzA
    - Giải nén.
    - Chạy thử cái Updater.au3 trước để coi kết quả.
    - Xoá cái Updater.ini được tạo.
    - Xem hướng dẫn sử dụng.

    :D
     
    kamsamita1 thích bài này.
  13. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    @Giang:
    Cho mình xin cái Key ID bạn đã tạo để test.
    Với lại nó download là bằng hàm có sẵn InetGet nên việc download được hay không là không phải do code. Bạn có thể hiệu chỉnh lại các thông số của InetGet thử, hoặc dùng code download khác (như dùng WinHttp chẳng hạn) :p
     
    kamsamita1 and Giang like this.
  14. Giang

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

    Tham gia ngày:
    11/1/16
    Bài viết:
    9
    Đã được thích:
    4
    @Huân Hoàng
    $ini_so_phienban = IniRead($INIPath, 'Version', 'Ver', '-1') ; đọc số phiên bản gốc mặc định = -1
    ------------------
    Nếu mình để version cũ là 2.0.2.0 thì khi update phải để là 3.0.0.0 chẳng hạn thì mới update được :'(
    nên code ntn để nó read phiên bản sau như dạng 2.0.2.1 vậy
     
    kamsamita1 thích bài này.
  15. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    @Giang:

    À, tại mình chỉ làm demo cái Updater.au3 nên chỗ check phiên bản mình làm khá sơ sài:
    If Number($ini_so_phienban) < Number($server_so_phienban) Then => tức là chỉ so sánh số với số thôi nên dạng x.x.x.x nó so sánh không đúng, bạn code lại chỗ so sánh này là được :p

    Ví dụ:
    Phiên bản trước: 2.0.0.0
    Phiên bản sau: 2.0.0.1

    Thì ta có: If Number(StringReplace($ini_so_phienban, '.', '')) < Number(StringReplace($server_so_phienban, '.', '')) Then

    => tức là so sánh 2000 với 2001 :p
     
    kamsamita1 and Giang like this.

Chia sẻ trang này

Đang tải...