Monday, June 29, 2015

AutoIt cơ bản - Bài 1: Giới thiệu AutoIt, hướng dẫn cài đặt, sử dụng cơ bản

Xin chào các bạn, chào mừng các bạn đến với tutorial về AutoIt của mình. Sau gần 2 năm tìm hiểu về AutoIt mình thấy nó rất hay rất mạnh mà lại đơn giản dễ học dễ làm nên mình quyết định sẽ chia sẻ tất cả những gì mình biết được về nó cho các bạn một cách dễ dàng nhất. Mỗi bài viết mình sẽ có các bài tập và cả video kèm theo để các bạn có thể lý thuyết + thực hành luôn.

Trong tutorial này mình sẽ hướng dẫn các bạn AutoIt cơ bản (câu lệnh if for while các kiểu....), giao diện người dùng GUI, một số thư viện của nó IE,http,..., cách search google lỗi hoặc source code,....

1. AutoIt là gì ? 

AutoIt - Nghe cái tên chắc bạn cũng đoán được một phần rồi nhỉ :D. AutoIt là một ngôn ngữ dễ học, dễ sử dụng, giúp người dùng có thể thực hiện những công việc mình thường phải làm trên máy tính một cách tự động. Bằng cách tự động bấm các phím hoặc click chuột, cùng với khả năng tương tác với các cửa sổ, các chương trình, các file trong máy tính… AutoIt có thể làm được rất nhiều việc. Nhỏ, nhẹ, thậm chí có thể ko cần cài đặt, khả năng tương thích cao (từ Win 95 trở lên) và khả năng xuất ra file exe đã khiến AutoIt trở nên thông dụng và ngày càng được nhiều người biết đến. Riêng ở VN, AutoIt được biết đến thông qua hàng loạt những “virus” phát tán qua YM Có thể nói đây là một “hướng đi” khác của các chương trình viết bằng AutoIt, góp phần ko nhỏ khiến cho ngày càng nhiều các công cụ anti-virus nhận diện chương trình viết bằng AutoIt là virus, bất luận mục đích thực sự của những chương trình này là tốt hay xấu. 


2. Cài đặt AutoIt

Để có thể code và biên dịch hoặc chạy các chương trình AutoIt bạn cần phải cài đặt bộ AutoIt bao gồm: 

  • AutoIt: Các thư viện AutoIt, document tiếng anh, và các chương trình AutoIt mẫu
  • Aut2exe: Biên dịch chương trình Autoit ra file. .exe có thể chạy ở mọi phiên bản windows
  • AutoItX: Liên kết với các thư viện DLL/COM hoặc với ngôn ngữ khác C# PowerShell ...
  • Editor: IDEgiúp đỡ code Autoit. Nếu bạn đang thắc mắc tại sao không code trên notepad hoặc MS Word đi, sao lại cài cái của nợ này thì khi nào bạn học xong tut này bạn sẽ tự hiểu nhé :))
Các bạn download bản full AutoIt v3.3.12 tại đây: https://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe
Để biết thêm chi tiết hoặc tải các phiên bản mwois hơn bạn vào link này nhé https://www.autoitscript.com/site/autoit/downloads/

Sau khi đã download xong thì chúng ta bắt đầu cài đặt

B1: Bạn click vào file đã tải về để mở nó ra


Ta ấn next thôi


Chọn I Agree để cài đặt


Bạn có thể chọn 2 lựa chọn 1 là sử dụng trình x86 (32bit) hoặc x64 (64bit) làm mặc định. Vì chương trình 64bit không thể chạy trên 32bit nên ta chọn x86 thôi để chạy ở mọi nơi


Có 2 lựa chọn là Run script và Edit the script bạn chọn Run nhé nó sẽ có cả trình Editor luôn


Next để cài cà các chương trình mẫu và Document


Chọn thư mục lưu chương trình cài đặt và Install


Cài đặt thành công bỏ tích Show relese notes để nó khỏi hiện cái gì đó ra và Finish

2. Tạo chương trình đầu tiêng với AutoIt

Ở đây mình đã tạo thư mục AutoIt Project ngoài desktop để tiện cho việc lưu trữ code.
Để tạo một file AutoIt bạn chỉ cần ấn chuột phải -> New -> AutoIt V3 Script và đổi tên là có thể tạo một file autoit trống



Để sửa code các bạn ấn chuột phải vào file autoit vừa được tạo ra -> Edit Script 

Ở đây có khá nhiều lựa chọn gồm: Run chạy chương trình, Compile Script biên dịch chương trình sang file .exe Compile Script x64 biên dịch chương trình chạy trên 64bit Compile Script x86 biên dịch chương trình chạy trên 32bit. Run Script x64 chạy chương trình trên 64bit. Run Script x86 chạy chương trình trên 32bit. Muck đích của việc chạy trên 32 hoặc 64 bit là kiểm tra xem code của bạn có chạy tốt trên các hệ thống windows hay không

Sau khi chọn Edit script trình soạn thảo được mở ra. Ở đây bạn sẽ thấy vài dòng Comment. Nếu bạn chưa từng học một ngôn ngữ lập trình nào và chưa biết comment là gì thì bạn hãy tìm hiểu bài này nhé

Giờ viết dòng code autoit đầu tiên bạn click con trỏ chuột cho nó xuống cuối editor viết như trong hình
MsgBox(0,'Xin chào','Xin chào bạn')
Bạn nên tạo thói quen tự gõ chứ không nên copy code để dán vào nhé. Để gõ tiếng việt trong Editor Autoit bạn vào File -> Encoding -> Utf-8 nhé nếu không sẽ bị lỗi font chữ
Vì là bài đầu tiên nên mình sẽ không nói về chức năng của MsgBox có nghĩa là gì bạn chỉ cần máy móc làm theo thôi. Còn nếu bạn tò mò thì hãy đọc tiếp loạt bài tiếp theo của mình nhé ^^

Let go! Giờ chạy nào bạn vào Tool -> Go hoặc ấn F5 code sẽ được chạy. Hoặc bạn double click vào file au3 nó cũng sẽ chạy. Bạn hồi hộp chứ ^^

Yeah nó chạy rồi kìa. Chắc giờ bạn đang rất háo hức và vui vì những ngày đầu tiên mình học lập trình cũng vậy ^^
3. Cách build ra file .exe

Để Build code thành một chương trình windows bạn vào Tool -> Compile hoặc chuột phải vào file như mình đã nói ở trên. chờ một tí file đã được build 

Với file .exe này bạn có thể chạy ở mọi phiên bản windows từ win 95 trở lên mà không cần sự hỗ trợ của AutoIt IDE

4. Bài tập

Hãy tạo một chương trình bằng AutoIt sử dụng MsgBox và build nó ra file .exe gửi cho thằng bạn thân với nội dung là "Ê thằng chó. Máy mày đã bị hack rồi ^^"


Và mình xin kết thúc bài đầu tiên ở đây hy vọng bạn sẽ thích và ủng hộ :D








Saturday, June 27, 2015

PHP MSQL lấy dữ liệu theo ngày theo tháng hoặc theo năm

Đã bao giờ bạn gặp trường hợp phải tính tổng truy cập trong một ngày hay tổng số tiền thu được trong một ngày hay một tháng phục vụ cho việc thống kê hay chưa ? Nếu bạn chưa có cách giải quyết nào hay thì sau đây mình sẽ giới thiệu cho bạn một cách sử dụng php và sql vô cùng đơn giản.




Đầu tiên bạn tạo cột time với định dạng datatime để default là CURRENT_TIMESTAMP
`time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
Nếu bạn để DEFAULT là CURRENT_TIMESTAMP thì khi bạn insert thì bạn không cần insert cột time nữa. Nó sẽ tự động thêm vào thời gian hiện tại Nếu bạn muốn set múi giờ sang múi giờ khác bạn có thể thêm một query ở chỗ connect database
SET time_zone = '+00:00';
Hoặc bạn có thể dùng php để insert time với định dạng Y-m-d H:m:s
Trên phpmysql nó sẽ là như này

Giờ chúng ta sẽ bắt đầu select
Select data theo ngày
$sql = "SELECT * FROM table WHERE time >= CURDATE() AND time < CURDATE() + INTERVAL 1 DAY";
Select data theo tháng
$fisrt_day_of_moth = date('Y-m-01') . ' 00:00:00';
$sql = "SELECT * FROM table WHERE time >=  $fisrt_day_of_moth AND time < $fisrt_day_of_moth + INTERVAL 1 MONTH";
Select data theo năm
$fisrt_day_of_year = date('Y-01-01') . ' 00:00:00';
$sql = "SELECT * FROM table WHERE time >=  $fisrt_day_of_year AND time < $fisrt_day_of_year + INTERVAL 1 YEAR";

Wednesday, June 24, 2015

Hướng dẫn fix lỗi Microsoft OutLook khi bật Dcom 3G













Bạn vừa cài đặt Office cho windows xong. Tự nhiên khi bật dcom lại có cái thông báo này

Microsoft OutLook: Microsoft Office cannot verify the license for this product. You should repair the Office program by using Control Panel.
Ôi thật là khó chịu vì nó cũng làm mất 30s khởi động dcom rồi :(((
 Nhưng đừng lo vì FreeTutHay sẽ chia sẻ cho bạn ngay cách fix một cách nhanh chóng nhất
  Rất đơn giản thôi, bạn chỉ cần vào thư mục chưa dcom. Nếu bạn chưa biết nó là gì bạn ra ngoài desktop ấn chuột phải vào biểu tượng Dcom và chọn "Open file location" (Thường là C:\Program Files\D-com 3G) và xóa 2 file OutlookExpress.dll và Outlook.dll là ok :))



https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbkXUoZHzMZF5XadTU6jDZoBlijjehxQRcD2rTK5Nc37G2Sfo_cyWZHm8E1cqpOh-bs0JGyDKFoucKXIjFHk2JM6vEq8nJ-Wjbrab3hHXS3iWTyFEQCbRhZpdxKi7IowCiRadrZrGhcCY/s1600/FIX_Loi_outlook_dcom.png


Thành công chưa nào, nếu có thì like và share ngay bạn nhé :D

Hướng dẫn fix lỗi kết nối Dcom trên Windows 10



 

Nếu bạn đang dùng dcom và ngay sau khi nâng cấp lên windows 10 bạn lại không thể kết nối được. Đừng lo chỉ với vài bước đơn giản sau đây chiệc D-com của bạn sẽ trở lại bình thường ngay thôi. 
 Nếu đầu tiên ngay sau khi cài đặt hoặc nâng cấp xong lên windows 10. Bạn cài phần mềm dcom thành công nhận sim đàng hoàng nhưng bấm kết nối lại mắc lỗi 633 (hoặc lỗi 6 mấy đó vì mình khộng nhớ rõ lắm :D)
Lúc này bạn chỉ cần restart lại máy.  
Sau khi restart lại bạn bật để kết nối nó sẽ lại mắc lỗi số 31 lúc này việc bạn cần làm là restart lại một lần nữa. ^^ 
 Ok bật lên và kết nối nào. Nếu thành công đừng quên like và chia sẻ bạn nhé :D  

Từ khóa tìm kiếm:
loi ket noi dcom windows 10
loi 31 dcom windows 10
lỗi dcom trên windows 10

Sunday, June 21, 2015

Get all files hoăc thư mục trong thư mục khác bằng PHP

Đã bao giờ bạn gặp phải vấn đề cần lấy tất cả file trong thư mục khác hoặc thư mục trong thư mục khác hay chưa. Trong bài viết này mình sẽ cùng bạn đi tìm hiểu cách list all file and folder trong php






Trong php có các hàm có sẵn giúp chúng ta có thể liệt kê toàn bộ file hoặc thư mục trong thư mục khác như scandir , readdir hoặc glob. Trong bài này mình sẽ hướng dẫn các bạn sử dụng hàm glob vì nó đơn giản và nó cung cấp cho chúng ta một đường dẫn đầy đủ. Còn hàm scandir sẽ chỉ cung cấp tên thư mục hoặc tên file trong thư mục đó. Vd ta có thư mục mydir chứa các file: freetuthay.html,demo.php và thư mục: images,javascript. Nếu sử dụng hàm glob ta sẽ được kết quả như sau:

Array ( 
[0] => mydir/freetuthay.html,
[1] => mydir/demo.php
[2] => mydir/images
[3] => mydir/javascript
)
Còn nếu sử dụng hàm scandir sẽ được kết quả như thế này:

Array ( 
[0] => .
[1] => ..
[2] => freetuthay.html,
[3] => demo.php
[4] => images
[5] => javascript
)
Còn với hàm readdir thì nó phải sử dụng đến function opendir và các vòng lặp while điều đó là khá phức tạp và không cần thiết.

Để liệt kê danh sách file và thư mục trong thư mục mydir ta chỉ cần khởi tạo hàm với câu lệnh đơn giản sau
glob('mydir/*'); 

Trong điều kiện thư mục mydir nằm cùng thư mục chứa với file đang chạy. Có nghĩa là nếu bạn chạy code trong file index.php nằm trong thư mục www/test_code thì thư mục mydir cũng phải nằm trong thư mục test_code. Nếu như thư mục mydir ở bên ngoài thư mục test_code có nghĩa là www/mydir thì bạn thêm dấu .. vào trước. Dấu .. có nghĩa là ra ngoài thư mục 1 bậc lúc này code sẽ là glob('../mydir/*');
Ok, giờ mình sẽ gán biến cho nó:

$files_and_folder = glob('mydir/*');
print_r($files_and_folder); //Hàm debug array (mảng)

Chạy phát xem nào. Hô hô kết quả là như này đây 

Array ( 
[0] => mydir/freetuthay.html,
[1] => mydir/demo.php
[2] => mydir/images
[3] => mydir/javascript
)

Ngon rồi giờ bắt đầu lọc theo chỉ lấy thư mục hoặc chỉ lấy file thôi nhé

Chỉ lấy thư mục:
Ở đây chúng ta sẽ gắn flag GLOB_ONLYDIR cho hàm glob. Hiểu nôm na là phát đi một tín hiệu cho function glob và bảo nó là "Mày chỉ được lấy mỗi thư mục thôi đấy nhé". 
Ok, let code:

$folder = glob('mydir/*','GLOB_ONLYDIR');
print_r($folder);

Chạy phát nào
Return: 

Array ( 
[0] => mydir/images
[1] => mydir/javascript
)

Oh yeah, dễ quá phải không ^^

Chỉ get file

Thật là đắng lòng khi php không cung cấp một cái tín hiệu nào (flag) chỉ lấy mỗi file cho function glob. Nhưng không sao chuyện gì cũng có cách giải quyết của nó. Ở đây chúng ta sẽ dùng hàm array_filter vì thằng glob trả về cho ta một mảng nên ta sẽ dùng cái này để lọc mảng.
Code nào:
$files = array_filter(glob('mydir/*'),'is_file');
print_r($files);
Return: 
Array ( 
[0] => mydir/freetuthay.html,
[1] => mydir/demo.php
)
Hay chưa hehe
Giờ ta cùng nhau nâng cao hơn tẹo nữa nhé, ta sẽ thêm vài cái filter cho nó ác
Code:
array_filter(glob('mydir/*'),function($file) {
 return (is_file($file) && filesize($file)<30000);
});

Cái này có nghĩa là chỉ lấy những file ở trong thư mục mydir và các file đó nhỏ hơn 30000/1024 kb ^^. Với cách này bạn có thể lọc nhiều hơn như lọc theo tên lọc theo đuôi file với hàm preg_match,... etc 

Chúc bạn sẽ thành công và hy vọng bài viết sẽ hữu ích với bạn!!


 

Saturday, June 20, 2015

Hướng dẫn upload hình ảnh qua Ajax bằng thư viện Jquery Form

  
Bạn đang tìm kiếm một cách để upload hình ảnh qua ajax jquery mà không cần tải lại trang như upload bằng php thông thường. Với thư viện jquery.form bạn chỉ cần vài đoạn code jquery bạn đã có thể thực hiện được điều đó thông qua bài hướng dẫn của Free Tut Hay vô cùng đơn giản và dễ hiểu.

 Tải về
Xem demo




Bạn có thể tải về để có thể chạy và chỉnh sửa mình đã comment chi tiết từng dòng. Nếu bạn vẫn chưa thể hình dung được thì bạn hãy đọc tiếp phần dưới này để hiểu thêm nhé ^^

Trong script này có 2 phần chính 1 là client ở file index.php chứa javascript và htnl css ... 2 là server để xử lý khi request được gửi đến ở file doajax.php

Code javascript bạn có thể đọc code với các comment chi tiết

 <script type="text/javascript" >

        $(document).ready(function () { // Khi nào trang được load thì chạy

            $('#photoimg').live('change', function () { // Khi nào chọn file thì chạy

                $("#preview").html(''); // Xóa hết những cái cũ trong <div id="preview"></div>

                $("#preview").prepend('<img id="loading" src="loader.gif" alt="Uploading...."/>'); // Show loading

                $("#imageform").ajaxForm({

                    success: showResponse // Xử lý trả về từ server bằng funtion showResponse

                }).submit(); // Submit Form



            });

        });

        function showResponse(response) { // Xử lý kết quả trả về với biến response là kết quả trả về từ server

            console.log(response); // Đưa vào console những thông tin trả về

            $('#loading').hide(); // Ẩn loading

            $("#preview").prepend(response); // Đổ vào preview kết quả trả về từ server

            $('#UploadFile').css('float', 'right'); // Float chọn file upload sang phải

        }

    </script>


doajax.php

Xử lý hình ảnh và upload lên server ở đây bạn có thể dùng sql để insert vào database

<?php
$path = "uploads/"; // Thư mục upload
$valid_formats = array("jpg", "png", "gif", "bmp","PNG",'JPG','GIF'); // Các đuôi file cho phép
$valid_type = array('image/gif','image/jpeg','image/png','image/bmp'); //Các định dạng cho phép
if (isset($_POST)) { // Kiểm tra tồn tại post request
    $name = $_FILES['photoimg']['name']; // Lấy tên
    $size = $_FILES['photoimg']['size']; // Lấy kích thước
    $type = $_FILES['photoimg']['type']; // Lấy kiểu file
    if (strlen($name)) { // Kiểm tra xem đã có file nào được chọn
        list($txt, $ext) = explode(".", $name); // Lấy đuôi file sau dấu . vào biến $ext
        if (in_array($ext, $valid_formats)) { // Kiểm tra đúng với các đuôi file cho phép
            if(in_array($type, $valid_type)){ // Kiển tra định dạng (Content-Type) của file cho phép
                if ($size < (1024 * 1024)) { // Kiểm tra dung lượng file. Nếu nhỏ hơn 1 Mb = 1024 * 1024 thì tiếp tục
                    $actual_image_name = time() . substr(str_replace(" ", "_", $txt), 5) . "." . $ext; // Đổi tên file upload
                    $tmp = $_FILES['photoimg']['tmp_name']; // Lấy thư mục lưu tạm upload file
                    if (move_uploaded_file($tmp, $path . $actual_image_name)) { // Di chuyển vào thư mục $path
                        echo "<img src='uploads/" . $actual_image_name . "'  class='preview'>"; // Nếu di chuyển thành công trả về html img để đẩy vào preview
                    } else
                        echo "Lỗi không xác đinh"; // Nếu di chuyển không thành công
                } else
                    echo "Tối đa upload 1 MB"; // Nếu file upload lớn hơn 1 MB
            } else
            echo "Không đúng định dạng"; // Nếu Content-Type không nằm trong danh sách cho phép
        } else
            echo "Không đúng định dạng"; // Nếu đuôi file không nằm trong danh sách cho phép
    } else
        echo "Hãy chọn một hình ảnh !"; // Nếu chưa có file gì được gửi đên
}






 

© 2015 Chia sẻ tất cả các tutorial hay nhất về lập trình. All rights resevered. Designed by Templateism Chia sẻ những điều tốt nhất về lập trình

Back To Top