ichte
Well-Known Member
IchTe chào lại mọi người nhé:
Vào năm học mới rồi, hôm nay post bài viết dài chút, tuần sau không biết có thời gian để mà vọc .net không!!!
Từ hôm dùng con O2 XDA IIs này, cứ thắc mắc mãi sao người ta gọi nó là Smart Device nếu thế PC của tớ là Super Smart Devicce rồi còn gì nữa. Thực ra cái Smart Device của tớ, tớ thấy nó chẳng thông minh tí nào, NGU!!!. Theo tớ, những cái mà ta vẫn xếp nó vào dạng Smart Device phải gọi tên lại cho nó: Chúng nó là những NÔ LỆ của những người thông minh (là bạn đấy, bạn bảo nó làm gì - lập trình - thì nó làm theo đó, bảo nó làm việc ngu thì nó ngu bảo nó làm việc thông minh thì nó thông minh, chứ bản thân nó là CỤC GẠCH).
Như mình nói ở bài trước, mình mới dùng PPC được hơn một tuần lên những gì tớ Post đơn giản lắm (vì giang hồ cứ nghe thấy lập trình là thấy hóc - khó hiểu) , rất mong cao thủ phản hồi chỉ giáo để học hỏi thêm, còn IchTe thì cứ học được cái gì là mình Post cái đấy!!!Mình viết tiếp bài lập trình hôm trước nhé:
Bạn có muốn biết mình có khả năng lập trình cho PPC không?Từ hôm dùng con O2 XDA IIs này, cứ thắc mắc mãi sao người ta gọi nó là Smart Device nếu thế PC của tớ là Super Smart Devicce rồi còn gì nữa. Thực ra cái Smart Device của tớ, tớ thấy nó chẳng thông minh tí nào, NGU!!!. Theo tớ, những cái mà ta vẫn xếp nó vào dạng Smart Device phải gọi tên lại cho nó: Chúng nó là những NÔ LỆ của những người thông minh (là bạn đấy, bạn bảo nó làm gì - lập trình - thì nó làm theo đó, bảo nó làm việc ngu thì nó ngu bảo nó làm việc thông minh thì nó thông minh, chứ bản thân nó là CỤC GẠCH).
Như mình nói ở bài trước, mình mới dùng PPC được hơn một tuần lên những gì tớ Post đơn giản lắm (vì giang hồ cứ nghe thấy lập trình là thấy hóc - khó hiểu) , rất mong cao thủ phản hồi chỉ giáo để học hỏi thêm, còn IchTe thì cứ học được cái gì là mình Post cái đấy!!!Mình viết tiếp bài lập trình hôm trước nhé:
Bài hướng dẫn hôm trước dễ quá, ai cũng làm được mà, tuy nhiên để theo đuổi lập trình PPC theo mình bạn cần một số thứ sau:
Bài lập trình số 2
Ở bài này, bạn sẽ học cách lấy thông tin về con PPC của bạn nha (ví dụ xem nó đạng chạy hệ điều hành nào...), học cách tạo các menu lệnh, tạo và gọi một form mới và một số cái khác rất cơ bản liên về ngôn ngữ lập trình. Bạn sẽ viết một chương trình như sau (gọi là chương trình PDAViet)
Chương trình PDAViet http://cid-b062c88f8d234f53.skydrive.live.com/self.aspx/Public/PADViet.exe
Mã nguồn PDAViet http://cid-b062c88f8d234f53.skydrive.live.com/self.aspx/Public/PADViet.rar
Lý thuyết của bài 2:
1) Sử dụng hàm SystemParametersInfo Function
//----------------------------
StringBuilder platformTypeString = newStringBuilder(255); //Cái này tạo một chỗ để chứa chữ dài 255 ký tự.
SystemParametersInfo(SPI_GETPLATFORMTYPE, (uint)platformTypeString.Capacity,platformTypeString, 0);
//----------------------------
//(uint)platformTypeString.Capacity là cho nó biết platformTypeString mà sắp tới nó điền thông tin vào đó có đủ chỗ cho 255 ký tự. Lúc này xâu ký tự platformTypeString chứa thông tin về máy rồi đó. Nếu xâu này chứa "SmartPhone" thì thiết bị của bạn là SmartPhone (kiểm tra bằng lệnh tìm vị trí xâu ký tự đó SystemTypeString.IndexOf("SmartPhone") >= 0) , nếu xâu này chứa "PocketPC" thì thiết bị của bạn là Pocket PC, ngoài ra trên máy của bạn tồn tại file \Windows\Phone.dll thì thiết bị của bạn là điện thoại (PPC chưa chắc là phone mà) kiểm tra bằng hàm:
//----------------------------
File.Exists(@"\Windows\Phone.dll"); // nếu trả về True là điện thoại
//----------------------------
Để lấy phiên bản của hệ điều hành dùng lệnh: Environment.OSVersion.Version
Hoặc convert nó thẳng ra string dùng để sau này hiện thị lên màn bằng câu lệnh: Environment.OSVersion.Version.ToString();
//----------------------------
Xem trong đoạn mã tải về nha.
2) Thực hành bài lập trình số 2(Hướng dẫn kỹ chút, bài sau nếu có Post thì coi như biết rồi)
Bạn hãy tạo ra một dự án lập trình cho PPC mới đặt tên là PADViet (xem lại bài 1).
Trong Solution Explore (ấn Ctrl +W, bỏ hết tay ra rồi lại nhấn S). Tìm đến Form1.CS đổi tên thành VoCa.CS.
Phải chuột vào VoCa.CS[Design], đổi mục Text từ Form1 thành PDA Programming (Pro không)!!!
Nhìn vào màn hình làm việc VoCa.CS[Design], phải chuột vào mainMenu1 và chọn Properties; Trong mục (Name) hãy đổi tên mainMenu1 thành menuPDAViet;
Đây là menu sẽ xuất hiện ở góc của điện thoại đấy. Giờ ta soạn thảo menu này nhé: Khi bạn Click chuột vào menuPAD Việt, nhìn lên trên có dòng Type Here, hãy bấm chuột vào đó và gõ vào dòng chữ Chọc vào đây. Rồi!!!
Lên dòng phía trên tiếp tục thay Type Here bằng Thông tin hệ thống. Enter.
Tiếp tục thêm các mục menu : Sử dụng control1, Sử dụng control2, Sử dụng control3 (Cái này làm sẵn để dùng cho bài lập trình 3, 4...).
Đặt lại tiên các mục menu cho dễ nhớ (mặc định VS2008) sinh ra tên các menu vừa rồi của bạn là menuItem1, menuItem2...., để dễ nhớ hơn hãy vào Properties của nó (vào Properties của cái gì cứ phải chuột vào nó là thấy sau này không nói đến phải chuột nữa). Thay (Name) cho nó: (Tớ đặt cho các mục tương ứng là menuSystemInfo, menuControl1, menuControl2, menuControl3).
Thêm môt menu nữa, Click vào góc phải (dưới) của Form PDA Programming (Mỗi cửa sổ mình tạo ra để làm việc gọi là Form nhé), Gõ thêm menu "Đóng em lại" và đặt tên em là menuExit.
Xong rồi, nháy hai phát vào Đóng em lại. Để VS2008 tạo một hàm khi câm bút thọc vào nút này, thọc vào đây là thoát chương trình. Bạn hay thêm lệnh Close(); vào trong hàm
menuExit_Click do VS2008 đẻ ra nhé (bạn cũng thử cho một thông điệp hiện lên trước khi thoát xem). Nó thành thế này:
//----------------------------
// Nếu sốt ruột thì dịch và chạy thử xem. Còn không thì tiếp tục viết.
Bây giờ bạn sẽ tạo một Form mới để hiện thị thông tin của máy bạn:
Quay trở về VoCa.CS[Design], bạn nháy một phát vào Chọc vào đây , rồi nháy hai phát vào Thông tin hệ thống thế là có hàm menuSystemInfo_Click, hàm này để đó tí quay lại viết code cho nó.
Trên menu của VS2008, chọn Project, chọn Add Windows Form....
Trọng mục Name của hộp thoại hiện ra, đổi Form1.CS thành Thongtinhethong.CS rồi Click vào Add.
Lại vào Properties của Thongtinhethong.CS đổi mục Text có chữ Thongtinhethong thành Thông tin
Giờ trình bày cửa sổ Thông tin:
a) Gọi ToolBox (Ctrl + Alt +X) kéo Label vào form Thông tin, đổi Text của label1 thành Phiên bản hệ điều hành. Chỉnh nó cho vừa mắt.
b) Tiếp tục kéo Label nữa đặt phía dưới Phiên bản hệ điều hành. Đổi text của thằng này thành ... (ba chấm), và (Name) thành OSversion.
c) Kéo Label tiếp theo đổi text thành Loại thiết bị.
d) Kéo Lable nữa, đổi text thành ...., và (Name) thành nameDevice.
Trình bày dạng như hình này nha:
Giờ quay lại VoCa.CS[Design]. (chọn ở tab phía trên í).
Nháy hai phát vào menu: Thông tin hệ thống để vào hàm xử lý menu này.
Viết đoạn mã để gọi hộp thoại Thông tin ra. Thêm hai dòng mã để nó thành như sau
//----------------------------
Đến đây có thể dịch và chạy thử gọi hộp thoại đó ra như thế nào. Tất nhiên thông tin thì chưa biết gì!!!!
Chú ý: Nếu bạn làm được môt form nào đó rồi nếu form đó có tên là FormName thỉ để chạy form này bạn dùng cấu trúc lệnh:
FormName hopthoai = new FormName();
hopthoai.ShowDialog();
Bây giờ đến phần lấy thông tin của máy đây, cũng lằng nhằng ra phết:
Đầu tiên bạn tạo ra một lớp để chuyên lấy thông tin hệ thông: lớp đó có tên là NoiVeEm. Khai báo lớp đó như sau:
//----------------------------//----------------------------
- Biết chút ít về lập trình trong PC: bạn nên tìm hiểu sơ về một ngôn ngữ lập trình (hướng đối tượng càng tốt - lên đọc và C++ hoặc C#) để biết thế nào là biến, là hàm, là lớp thế là OK, cũng chẳng cần nghiền sâu làm gì cả, trừ khi định sống bằng nghề Programming!!!
- Có sức khỏe (nghiện Programming rồi lọ mọ 1 -2 giờ sáng là chuyện bình thường).
- Có đam mê (hầu như bạn không kiếm được Money khi bạn bắt đầu lập trình đâu).
- Có ý tưởng và hiểu biết những thứ linh tinh (muốn con PPC của mình làm được những gì ... hãy gạch đầu dòng ra, mỗi cái gạch đấy là một ý tưởng đấy, hoặc là quan sát xem thế giới xung quanh có gì mà liên hệ được với PPC khống, ví dụ: Đang cầm con O2 XDA hoành tráng đi với bồ, nàng lại rót vào tai "Máy anh to thế mà có tính được ngày em rụng đâu ?" - thế là có ý tưởng viết phần mềm tính ngày người yêu rụng rồi còn gì, tiếp theo lại phải hiểu cái ba chấm .... linh tinh đấy rồi ).
Bài lập trình số 2
Ở bài này, bạn sẽ học cách lấy thông tin về con PPC của bạn nha (ví dụ xem nó đạng chạy hệ điều hành nào...), học cách tạo các menu lệnh, tạo và gọi một form mới và một số cái khác rất cơ bản liên về ngôn ngữ lập trình. Bạn sẽ viết một chương trình như sau (gọi là chương trình PDAViet)
Mã nguồn PDAViet http://cid-b062c88f8d234f53.skydrive.live.com/self.aspx/Public/PADViet.rar
Lý thuyết của bài 2:
1) Sử dụng hàm SystemParametersInfo Function
Do thằng SystemParametersInfo Function là một API (không cần biết API là gì) của Windows, nó lằm trong các file thư viện liên kết động của hệ thống ở đây là file coredll.dll lên để gọi được thằng này đầu tiên bạn phải có đoạn mã sau nạp hàm vào chương trình của bạn:
//----------------------------
Trong đó [DllImport("coredll.dll")] là bảo .netframe load và sử dụng các hàm trong file hệ thống coredll.dll của Windows. Ở đây sử dụng hàm SystemParamersInfo.
Khai báo thể rồi sau này vô tư gọi nó ra.Hàm này chuyên lấy (cũng như thiết lập) thông tin về hệ thống. Có các tham số đó là:
whichParam: //----------------------------
[DllImport("coredll.dll")]
privatestaticexternvoid SystemParametersInfo(uint whichParam, uint size, StringBuilder platformType, uint notUsed);
//----------------------------privatestaticexternvoid SystemParametersInfo(uint whichParam, uint size, StringBuilder platformType, uint notUsed);
Trong đó [DllImport("coredll.dll")] là bảo .netframe load và sử dụng các hàm trong file hệ thống coredll.dll của Windows. Ở đây sử dụng hàm SystemParamersInfo.
Khai báo thể rồi sau này vô tư gọi nó ra.Hàm này chuyên lấy (cũng như thiết lập) thông tin về hệ thống. Có các tham số đó là:
Chỉ ra định lấy hay thiết lập thông tin nào của hệ điều hành. Có nhiều thứ lắm ở đây bạn sẽ lấy thông tin hệ thống nếu bạn cho nó giá trị là 257. Bạn định nghĩa cái này bằng tên cho dễ nhớ nha, thêm dòng mã sau:
privateconstuint SPI_GETPLATFORMTYPE = 257;
// Con nhiều thông số khác nữa ban tham khảo chi tiết ở file đính kèm này nha: // Số 257 xem trong file winuser.h trong thư mục C:\Program Files\Windows Mobile 5.0 SDK R2\
Lúc nào cần gọi hàm này để lấy thông tin về máy thì viết đoạn mã sau:privateconstuint SPI_GETPLATFORMTYPE = 257;
// Con nhiều thông số khác nữa ban tham khảo chi tiết ở file đính kèm này nha: // Số 257 xem trong file winuser.h trong thư mục C:\Program Files\Windows Mobile 5.0 SDK R2\
//----------------------------
StringBuilder platformTypeString = newStringBuilder(255); //Cái này tạo một chỗ để chứa chữ dài 255 ký tự.
SystemParametersInfo(SPI_GETPLATFORMTYPE, (uint)platformTypeString.Capacity,platformTypeString, 0);
//----------------------------
//(uint)platformTypeString.Capacity là cho nó biết platformTypeString mà sắp tới nó điền thông tin vào đó có đủ chỗ cho 255 ký tự. Lúc này xâu ký tự platformTypeString chứa thông tin về máy rồi đó. Nếu xâu này chứa "SmartPhone" thì thiết bị của bạn là SmartPhone (kiểm tra bằng lệnh tìm vị trí xâu ký tự đó SystemTypeString.IndexOf("SmartPhone") >= 0) , nếu xâu này chứa "PocketPC" thì thiết bị của bạn là Pocket PC, ngoài ra trên máy của bạn tồn tại file \Windows\Phone.dll thì thiết bị của bạn là điện thoại (PPC chưa chắc là phone mà) kiểm tra bằng hàm:
//----------------------------
File.Exists(@"\Windows\Phone.dll"); // nếu trả về True là điện thoại
//----------------------------
Để lấy phiên bản của hệ điều hành dùng lệnh: Environment.OSVersion.Version
Hoặc convert nó thẳng ra string dùng để sau này hiện thị lên màn bằng câu lệnh: Environment.OSVersion.Version.ToString();
//----------------------------
Xem trong đoạn mã tải về nha.
2) Thực hành bài lập trình số 2(Hướng dẫn kỹ chút, bài sau nếu có Post thì coi như biết rồi)
Bạn hãy tạo ra một dự án lập trình cho PPC mới đặt tên là PADViet (xem lại bài 1).
Trong Solution Explore (ấn Ctrl +W, bỏ hết tay ra rồi lại nhấn S). Tìm đến Form1.CS đổi tên thành VoCa.CS.
Phải chuột vào VoCa.CS[Design], đổi mục Text từ Form1 thành PDA Programming (Pro không)!!!
Nhìn vào màn hình làm việc VoCa.CS[Design], phải chuột vào mainMenu1 và chọn Properties; Trong mục (Name) hãy đổi tên mainMenu1 thành menuPDAViet;
Đây là menu sẽ xuất hiện ở góc của điện thoại đấy. Giờ ta soạn thảo menu này nhé: Khi bạn Click chuột vào menuPAD Việt, nhìn lên trên có dòng Type Here, hãy bấm chuột vào đó và gõ vào dòng chữ Chọc vào đây. Rồi!!!
Lên dòng phía trên tiếp tục thay Type Here bằng Thông tin hệ thống. Enter.
Tiếp tục thêm các mục menu : Sử dụng control1, Sử dụng control2, Sử dụng control3 (Cái này làm sẵn để dùng cho bài lập trình 3, 4...).
Đặt lại tiên các mục menu cho dễ nhớ (mặc định VS2008) sinh ra tên các menu vừa rồi của bạn là menuItem1, menuItem2...., để dễ nhớ hơn hãy vào Properties của nó (vào Properties của cái gì cứ phải chuột vào nó là thấy sau này không nói đến phải chuột nữa). Thay (Name) cho nó: (Tớ đặt cho các mục tương ứng là menuSystemInfo, menuControl1, menuControl2, menuControl3).
menuExit_Click do VS2008 đẻ ra nhé (bạn cũng thử cho một thông điệp hiện lên trước khi thoát xem). Nó thành thế này:
//----------------------------
privatevoid menuExit_Click(object sender, EventArgs e)
{
MessageBox.Show("Có thấy khoái không?", "Hỏi tí trước khi thoát", MessageBoxButtons.YesNo,MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
Close();
}
//----------------------------{
MessageBox.Show("Có thấy khoái không?", "Hỏi tí trước khi thoát", MessageBoxButtons.YesNo,MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
Close();
}
// Nếu sốt ruột thì dịch và chạy thử xem. Còn không thì tiếp tục viết.
Bây giờ bạn sẽ tạo một Form mới để hiện thị thông tin của máy bạn:
Quay trở về VoCa.CS[Design], bạn nháy một phát vào Chọc vào đây , rồi nháy hai phát vào Thông tin hệ thống thế là có hàm menuSystemInfo_Click, hàm này để đó tí quay lại viết code cho nó.
Trên menu của VS2008, chọn Project, chọn Add Windows Form....
Trọng mục Name của hộp thoại hiện ra, đổi Form1.CS thành Thongtinhethong.CS rồi Click vào Add.
Lại vào Properties của Thongtinhethong.CS đổi mục Text có chữ Thongtinhethong thành Thông tin
Giờ trình bày cửa sổ Thông tin:
a) Gọi ToolBox (Ctrl + Alt +X) kéo Label vào form Thông tin, đổi Text của label1 thành Phiên bản hệ điều hành. Chỉnh nó cho vừa mắt.
b) Tiếp tục kéo Label nữa đặt phía dưới Phiên bản hệ điều hành. Đổi text của thằng này thành ... (ba chấm), và (Name) thành OSversion.
c) Kéo Label tiếp theo đổi text thành Loại thiết bị.
d) Kéo Lable nữa, đổi text thành ...., và (Name) thành nameDevice.
Trình bày dạng như hình này nha:
Giờ quay lại VoCa.CS[Design]. (chọn ở tab phía trên í).
Nháy hai phát vào menu: Thông tin hệ thống để vào hàm xử lý menu này.
Viết đoạn mã để gọi hộp thoại Thông tin ra. Thêm hai dòng mã để nó thành như sau
//----------------------------
privatevoid menuSystemInfo_Click(object sender, EventArgs e)
{
//----------------------------{
Thongtinhethong thongtin = newThongtinhethong();
thongtin.ShowDialog();
}thongtin.ShowDialog();
Đến đây có thể dịch và chạy thử gọi hộp thoại đó ra như thế nào. Tất nhiên thông tin thì chưa biết gì!!!!
Chú ý: Nếu bạn làm được môt form nào đó rồi nếu form đó có tên là FormName thỉ để chạy form này bạn dùng cấu trúc lệnh:
FormName hopthoai = new FormName();
hopthoai.ShowDialog();
Bây giờ đến phần lấy thông tin của máy đây, cũng lằng nhằng ra phết:
Đầu tiên bạn tạo ra một lớp để chuyên lấy thông tin hệ thông: lớp đó có tên là NoiVeEm. Khai báo lớp đó như sau:
//----------------------------
classNoiVeEm
{
}
{
}
Chỉnh sửa cuối: