API là gì? Ứng dụng của nó như thế nào?


thuvienwinform - Đơn giản như thế này, hiện nay nhiều người dùng mạng xã hội facebook và bạn muốn viết một ứng dụng để đăng tin lên mạng xã hội này. Vậy làm sao để làm một ứng dụng như vậy khi facebook là của người khác? Hiểu được nhu cầu này của các lập trình viên facebook sẽ đưa ra các thư viện chứa các hàm đăng, like, share...trên trang của mình để các lập trình viên khai thác! Đó chính là API
Google+, Gmail, Blogger, Youtube, các ứng dụng của windows (Windows media player, Internet Explorer,..), nhaccuatui, zingmp3,...rất nhiều các trang web, ứng dụng đưa ra các API để hỗ trợ các lập trình viên

- API (Application Programming Interface - Giao diện lập trình ứng dụng). Mỗi hệ điều hành, ứng dụng đều có những bộ API khác nhau. Nó cung cấp cho người lập trình các hàm tương tác với CSDL, lập trình thực hiện các thao tác với hđh hay phần mềm đó. Hầu hết các hàm API được chứa trong các file DLL
- Ví dụ: Các hàm API của hđh windows cho phép chúng ta lập trình ứng dụng thay đổi icon màn hình, xem thông tin máy tính, ... hay các hàm API của google cho phép lập trình viên lấy thông tin, sửa thông tin người dùng,...Các hàm API của facebook cho chúng ta đăng stt, ảnh, cmt,...
- Vậy API có phải một ngôn ngữ lập trình không? Câu trả lời là không các bạn ạ. Các hàm API cũng như các hàm bình thường mà chúng ta hay viết và trên từng ngôn ngữ khác nhau cũng có các bộ API tương ứng khác nhau.
- Ví dụ: Google API có bộ cho .NET, PHP,..
- Và mỗi bộ API hầu như đều có hướng dẫn sử dụng rất cụ thể và chi tiết. Ví dụ của hướng dẫn sử dụng các hàm API đối với blogger: https://developers.google.com/blogger/docs/2.0/developers_guide_dotnet rất hữu ích cho ai muốn viết ứng dụng quản lí blog


- Ví dụ một đoạn code đăng bài cho blog sử dụng API của google:

void DangBai(Service service, string bID, string title, string content, bool isDraft)
        {
            //Tạo các thuộc tính của bài đăng
            Uri blogPostUri = new Uri("http://www.blogger.com/feeds/" + bID + "/posts/default");
            AtomEntry newPost = null;
            newPost = new AtomEntry();
            newPost.IsDraft = isDraft;
            newPost.Title.Text = title;

            newPost.Content = new AtomContent();
            newPost.Content.Content = content;
            newPost.Content.Type = "html";
            newPost.Updated = new DateTime(2011, 1, 1, 10, 0, 0);
            newPost.Published = new DateTime(2011, 1, 1, 10, 0, 0);
            //Đăng bài
            AtomEntry CreateEntry = service.Insert(blogPostUri, newPost);
        }

Một số bài về API:
- Phát nhạc: http://thuvienwinform.blogspot.com/2014/04/api-phat-nhac-mp3_13.html
- Kiểm tra kết nối mạng: http://thuvienwinform.blogspot.com/2014/04/api-kiem-tra-ket-noi-internet.html
- Facebook API: http://facebooksdk.net/
- Google API: https://code.google.com/p/google-api-dotnet-client/wiki/APIs
+ Hướng dẫn A-Z Google API cho Blogspot: http://garyngzhongbo.blogspot.com/2013/10/bloggerc-blogger-api-v31.html
- Tìm trên nhaccuatui: http://diendan.congdongcviet.com/threads/t57486::lay-link-nhac-an-tu-trang-nhaccuatui-com.cpp

11/27/2013
Đăng bởi :
Nhãn : ,

Code lấy thông tin máy tính bằng C# (Tên máy, tài khoản người dùng, phiên bản hệ điều hành, địa chỉ MAC,...)



Code lấy tên máy, phiên bản HĐH, địa chỉ IP, địa chỉ MAC bằng C#

- Demo: https://www.dropbox.com/s/8xw85oo6xg8v86c/ThongTinHeDieuHanh.rar (52KB)
- Để lấy thông tin cơ bản như tên máy, tài khoản đăng nhập vào máy, phiên bản hệ điều hành ta sử đụng lớp Environment sẵn có để lấy những thông tin đó. Ví dụ: Environment.MachineName để lấy tên máy, Environment.UserName để lấy tài khoản đăng nhập vào máy,...

- Để lấy các địa chỉ IP mà máy đang có (Đang kết nối đến bao nhiêu mạng thì có bằng đó IP): http://www.thuvienwinform.tk/2013/10/code-lay-username-va-ip-cua-may.html

- Để lấy địa chỉ MAC ta sử dụng thêm using System.Net.NetworkInfomation;
Code lấy địa chỉ MAC như sau: (cảm ơn anh LNT đã share cho mình code này)

            /////////////////
            //Lấy địa chỉ MAC
            ////////////////  
            string DanhSachMAC = "";
            NetworkInterface[] DanhSachCardMang = NetworkInterface.GetAllNetworkInterfaces();
            for (int i = 0; i < DanhSachCardMang.Length; i++)
            {
                PhysicalAddress DiaChiMAC = DanhSachCardMang[i].GetPhysicalAddress();
                DanhSachMAC += DanhSachCardMang[i].Name + " : ";
                byte[] ByteDiaChi = DiaChiMAC.GetAddressBytes();
                for (int j = 0; j < ByteDiaChi.Length; j++)
                {
                    DanhSachMAC += ByteDiaChi[j].ToString("X2");
                    if (j != ByteDiaChi.Length - 1)
                    {
                        DanhSachMAC += "-";
                    }
                }
                DanhSachMAC += "\r\n";
                txtMAC.Text += DanhSachMAC;
            }

hoặc

            /////////////////
            //Lấy địa chỉ MAC
            ////////////////
            int l, i, j=0;
            string MAC;
            while (true)
            {
                try
                {
                    MAC = NetworkInterface.GetAllNetworkInterfaces()[j].GetPhysicalAddress().ToString(); //đến đây đã lấy được địa chỉ rồi nhưng chưa có dấu phân cách
                    l = MAC.Length - 1;
                    for (i = 0; i <= l; i++)
                    {
                        if (i % 2 == 0 && i != 0) txtMAC.Text += "-";
                        txtMAC.Text += MAC[i];
                    }
                    j++;
                    txtMAC.Text += "\r\n";
                }
                catch
                {
                    break;//Hết địa chỉ MAC rồi thì ngắt vòng lặp
                }
            }
Với cách 2 chạy lâu hơn rất nhiều :) khuyến cáo không nên dùng.

11/20/2013
Đăng bởi :
Nhãn :

Chương trình Notepad đơn giản



Notepad winform C#

Tải về: https://www.dropbox.com/s/hzdykk706v5p4jr/Notepad-thuvienwinform.rar (74KB)

Chức năng: tạo mới, sửa, lưu file. Có thể mở nhiều cửa sổ cha và con (tham khảo tại đây)

Trên một số diễn đàn họ sử dụng Rich TextBox nhưng không hay lắm vì nó không đọc được các file text bình thường, ở đây mình dùng textBox để hiển thị dữ liệu

Mình share mã nguồn luôn bạn nào có hứng thì thêm chức năng Undo, Print nữa nhé.
10/27/2013
Đăng bởi :
Nhãn :

MDI Parent Form tạo form nhiều form con

Form cha form con
Hướng dẫn sử dụng MDI Parent Form

- Chức năng chính của item này là tạo ra một form có sẵn tính năng gọi ra một form khác (form con) nằm trong form chính


Để thêm 1 MDI Parent Form ta làm như sau:

Project -> Add windows Form... -> MDI Parent Form




Sau đó ta thêm 1 Form để làm Form con (thực ra sau khi thêm MDI Parent Form thì nó đã có thể gọi ra form con rồi nhưng trên form đó không có gì cả, nên ta cần thêm form này)
Project -> Add windows Form... -> Windows Form


Code để gọi ra form con nằm trong form cha:


private void New(string Title)
{
    Form childForm = new FormCon();
    childForm.MdiParent = this;//Đặt form cha cho childForm là form này
    childForm.Text = Title;//Tile cho childForm
    childForm.Show();//Hiển thị nó lên
}

OK nó còn có sắn các menu như copy, paste, print để các bạn tự tìm hiểu nha
Chúc có nhưng chương trình hay với MDI Parent ^^!
Đăng bởi :
Nhãn :

Code lấy Username và IP của máy

Form  hiển thị ra user name và các IP của máy

Demo: https://www.dropbox.com/s/z2bavemx6i83812/LayIp-Username-C%23-thuvienwinform.rar (46KB)

Để thực hiện công việc này ta sử dụng thư viện System.Net; (using System.Net;)

Để lấy user name ta dùng code:

string username = Dns.GetHostName();//kiểu string luôn

Để lấy địa chỉ Ip ta dùng code:

IPHostEntry Ip = new IPHostEntry();
Ip = Dns.GetHostByName(HostName);
foreach (IPAddress ip in Ip.AddressList)
{
    txtIp.Text = txtIp.Text + ip.ToString() + "\r\n";
}

Ứng dụng thông tin vào nhiều việc khác nhau ví dụ như tạo biểu mẫu theo dõi phần mềm (đồng bộ qua database), ứng dụng trong mạng LAN,...
Chúc các bạn thành công!
10/26/2013
Đăng bởi :
Nhãn :

Tạo Form Download bằng C# | Form tải về


Form Download
Demo: https://www.dropbox.com/s/2gdx3xb93fqbtzv/DownLoadBangC%23-thuvienwinform.rar

Để thực hiện công việc này ta phải sử dụng đến thư viện System.Net; -> hỗ trợ toàn bộ các bạn .NET
Cú pháp như sau:


WebClient Wc = new WebClient();//Khai báo biến webclient để thực hiện tải về
Uri FileUrl = new Uri(txtUrl.Text.Trim());//Uri để tạo đầu vào cho Wc tải về, Trim để xóa kí tự rỗng ở 2 đầu
Wc.DownloadFileAsync(FileUrl, txtSaveFile.Text);//Bắt đầu tải về Cú pháp: TênBiếnWebclient.DownloadFileAsync(Uri chứa đường dẫn tải về, Địa điểm lưu file)

Code chương trình:



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;//thư viện cần thiết để tạo download

namespace DownLoad
{
    public partial class Form1 : Form
    {
        string FileSave;//biến chứa đường dẫn lưu files
        WebClient Wc = new WebClient();//Khai báo biến webclient để thực hiện tải về
        public Form1()
        {
            InitializeComponent();
        }

        private void Save_File()//chọn đường dẫn lưu file
        {
            SaveFileDialog saveDial = new SaveFileDialog();//Hộp thoại tạo file lưu trữ
            saveDial.Title = "Lưu file";//tên hộp thoại
            saveDial.Filter = "Tất cả|*.*";//Định dạnh file lưu
            if (saveDial.ShowDialog() != System.Windows.Forms.DialogResult.Cancel)//Nếu không ấn hủy thì sẽ lấy đường dẫn lưu file
                FileSave = saveDial.FileName;//Lấy đường dẫn để lưu file
            txtSaveFile.Text = FileSave;//Xuất đường dẫn ra textbox
        }

        private void btBrower_Click(object sender, EventArgs e)//Sự kiện ấn nút chọn đường dẫn lưu file
        {
            Save_File();
        }

        private void btStartDownLoad_Click(object sender, EventArgs e)
        {
            Wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(Wc_DownloadProgressChange);//Hiển thị phần trăm tải về bằng progressBar
            Uri FileUrl = new Uri(txtUrl.Text.Trim());//Uri để tạo đầu vào cho Wc tải về, Trim để xóa kí tự rỗng ở 2 đầu
            if (txtSaveFile.Text == "" || txtSaveFile.Text == null)//Nếu chưa chọn đường dẫn để lưu thì phải chọn xong mới tải
                Save_File();
            else//Nếu đã chọn đường dẫn lưu file thì bắt đầu tải
                Wc.DownloadFileAsync(FileUrl, txtSaveFile.Text);//Bắt đầu tải về Cú pháp: TênBiếnWebclient.DownloadFileAsync(Uri chứa đường dẫn tải về, Địa điểm lưu file)
        }

        void Wc_DownloadProgressChange(object sender, DownloadProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage;//Gán phần trăm tải về vào ProgressBar
            lbPercent.Text = progressBar1.Value.ToString() + "%";
        }
    }
}
ấn F5 -> điền dữ liệu vào form và ấn bắt đầu:
VD:
+ Đường dẫn: https://lh5.googleusercontent.com/-4KAQJWN3Zl8/Ulo8Bj6G3EI/AAAAAAAAACc/uwklKtW1GHA/w499-h300-no/Microsoft-Visual-Studio-2012.png
+ Lưu vào: D:\a.png


Đăng bởi :
Nhãn :

Chương trình tự động cuộn trang. Hỗ trợ kết bạn facebook nhanh!



Chương trình tự động cuộn trang hỗ trợ kết bạn facebook

Tải về: https://www.dropbox.com/s/p4op8ah9vjm87yr/TuDongCuonTrang-HoTroKetBanNhanhFacebook.exe (25KB)
AutoClick: https://www.dropbox.com/s/4tteivvcpsh2qc7/AutoClick%202.2.rar (80KB)
Nếu kết hợp chúng lại ta sẽ có phần mềm tự động kết bạn facebook

Hướng dẫn
Cách sử dụng: nó là 1 combo, đầu tiên bạn bật chương trình tự động cuộn trang lên, sau đó bật autoclick lên. Tiếp theo ấn nút bật trong chương trình tự động cuộn trang di chuột vào nút "Xác nhận" ấn F3 thế là có phần mềm tự động kết bạn facebook

Chúc các bạn có nhiều bạn bè!
10/25/2013
Đăng bởi :
Nhãn :

Chương trình quản lí file đơn giản




Vì sử dụng thêm SQLite nên có thể sẽ không chạy đc trên tất cả các máy! 

Chương trình vẫn còn rất sơ sàim chỉ mang tình chất tham khảo, ứng dụng của SQLite, nếu bạn nào có nhu cầu lấy mã nguồn thì liên hệ mình nhé, thuvienwinform@gmail.com

Chức năng chính là quản lí các file, thư mục với tên tùy chình đề dễ tìm và quản lí file thôi. Nhưng có thêm phần mô tả để giúp bạn gợi nhớ lại lược sử hoặc nguồn gốc của file đó@! Rất hữu ích với những file lâu năm đó! Chương trình chỉ hỗ trợ 500 item nếu muốn thêm thì bạn coppy file QuanLiFile trong thư ổ cài xong cut nó ra ngoài! Sau đó cài lại
Đăng bởi :
Nhãn :

Lấy kích cỡ của 1 file bằng C#

Để lấy kích cỡ của 1 file ta dùng code sau:

FileInfo f_info = new FileInfo("Đường dẫn file");
int FileLength = f_info.Length;//ĐƠn vị Byte
Ví dụ:
FileInfo f_info = new FileInfo("C:\\a.png");
int FileLength = f_info.Length;//biến FileLength sẽ chứa kích thước của file

Với code này ta cũng có thể tính được kích cỡ của Folder bằng cách tính tổng kích thước các file, nhưng nếu trong folder mà lại có folder nữa thì sẽ bị sai
10/23/2013
Đăng bởi :
Nhãn :

Lấy Icon của file, thư mục bằng C#


Hướng dẫn lấy Icon của file, thư mục xuất ra listview
Demo: https://www.dropbox.com/s/s3q3lrrfhdygvci/LayIconFile-thuvienwinform.rar

Bước 1: Tạo 1 project
Bước 2: Tạo 1 Class với code sau: (chú ý thay tên project của bạn vào nhé)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;//
namespace tên_project_của_bạn
{
    [StructLayout(LayoutKind.Sequential)]
    public struct SHFILEINFO
    {
        public IntPtr hIcon;
        public IntPtr iIcon;
        public uint dwAttributes;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szDisplayName;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
        public string szTypeName;
    };
    class SpyIcon
    {
        public const uint SHGFI_ICON = 0x100;
        public const uint SHGFI_LARGEICON = 0x0;    // 'Large icon
        public const uint SHGFI_SMALLICON = 0x1;    // 'Small icon

        [DllImport("shell32.dll")]
        public static extern IntPtr SHGetFileInfo(string pszPath,
                                    uint dwFileAttributes,
                                    ref SHFILEINFO psfi,
                                    uint cbSizeFileInfo,
                                    uint uFlags);
        public static System.Drawing.Icon GetIcon(string path)
        {
            SHFILEINFO sinfo = new SHFILEINFO();
            IntPtr iconHwnd = SHGetFileInfo(path, 0, ref sinfo, (uint)Marshal.SizeOf(sinfo), SHGFI_ICON | SHGFI_LARGEICON | SHGFI_SMALLICON);
            return System.Drawing.Icon.FromHandle(sinfo.hIcon);
        }
    }
}

Bước 3: Form chính như sau: (chú ý cài đặt trong các khung đỏ)




Bước 4: Code cho Form chính:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace LayIconFile
{
    public partial class Form1 : Form
    {
        int k = 0;
        public Form1()
        {
            InitializeComponent();
        }

        private void listView1_DragOver(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Copy;//hiệu ứng con chuột
        }

        private void listView1_DragDrop(object sender, DragEventArgs e)
        {
            string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);//Lấy những đường dẫn file được kéo vào
            string fi;
            foreach (string filename in files)
            {
                imageList1.Images.Add(k.ToString(), SpyIcon.GetIcon(filename)); //Thêm icon cho imagelist
                fi = filename.Substring(Directory.GetParent(filename).ToString().Length + 1);//Lấy tên file
                //imageList1.Images.Add(i.ToString(), Image.FromFile(files[i])); //Cách 2
                ListViewItem item = new ListViewItem(fi, k);//Tạo item mới
                item.Tag = filename;//Đánh dấu đường dẫn file cho item
                listView1.Items.Add(item);//Thêm item vào listview
                k++;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Icon ic = SpyIcon.GetIcon(@"D:\isic.jpg");
            Bitmap bit = ic.ToBitmap();
            bit.Save(@"C:\icon.ico", System.Drawing.Imaging.ImageFormat.Icon);
        }

        private void listView1_DoubleClick(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start(listView1.SelectedItems[0].Tag.ToString());
            textBox1.Text = listView1.SelectedItems[0].Tag.ToString();
        }
    }
}

Bước 5: ấn F5 rồi kéo thả vào xem sao
10/22/2013
Đăng bởi :
Nhãn :

Nhận ngay 100$ cho VPS

Mua hàng ủng hộ page

Ủng hộ page

Nhãn

Code (45) Team Foundation Server (17) Database (14) News (14) product (13) toolbox (10) Linq (9) SoftDesign (8) XNA (6) API (5) Project (5) item (4)

- Bản quyền thuộc về Thư Viện WinForm - Giao diện: Metrominimalist - Thiết kế: Johanes Djogan -