1. Trang chủ
  2. » Thể loại khác

Tài liệu Lap trinh docx

11 310 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 264,5 KB

Nội dung

Xây dựng chơng trình để khởi động các chơng trình khác Nhập Dẫn Để bày vẻ và quảng cáo thêm cho máy tính có rất nhiều cách. Nhng nếu bạn là ngời chuyên ráp máy hay một cửa hàng tin học thì có lẻ bạn nên viết 1 chơng trình tự động chạy lúc khởi động (Start Up) để trng bày các phần mềm đã cài đặt trên máy, luôn tiện giới thiệu chút ít về mình hay cửa hàng. Ta tạm đặt tên cho chơng trình đầu tiên này là "Launch" nhé. Viết chơng trình, có rất nhiều ngôn ngữ lập trình d sức để viết một chơng trình nh vậy. Nhng dễ dàng hơn hết, có lẻ và Visual Basic. Viết chơng trình này bằng Visual Basic không đòi hỏi gì bạn nhiều, chỉ cần chút khéo léo và áp dụng các công cụ của Visual Basic một cách thích hợp cộng thêm chút ít sáng tạo mà thôi. Chơng trình Launch đã hoàn tất Có rất nhiều cách để phân loại các phần mềm cài đặt trên máy. Chơng trình thí dụ này phân nhóm các ứng dụng cài đặt trong Windows thành 3 nhóm: Windows System (các công cụ chuẩn của Windows), Applications (các ứng dụng của ngời dùng cài thêm), Vietnamese Utilities (các tiện ích về tiếng việt). Cơ chế hoạt động của chơng trình này là "mồi lửa" cho ngời sử dụng khởi động chơng trình mà mình cần bằng menu hay các button của chơng trình, sau đó chơng trình này tự động "biến". Để mồi lửa cho ngời sử dụng, ta buộc phải biết chính xác vị trí của các file chơng trình mà ngời dùng cần. Đầu tiên là các tiện ích kèm theo Windows nh WordPad, Notepad, Paint, (tôi chỉ xin thí dụ 3 chơng trình thôi). Các file thực thi của chơng trình này chủ yếu nằm trong th mục Windows, vậy chỉ cần tìm ra th mục Windows là ta có thể giải quyết đợc vấn đề. Chuyện này cũng rất dễ dàng và vô cùng may mắn là Windows có khả năng tự động tìm kiếm các file thực thi trong th mục Windows và Windows\System cho nên chúng ta khỏe (ta có thể hiểu là nó tự đặt dờng dẫn đến th mục Windows và Windows\System). Chú ý: Khi muốn gọi WordPad bạn phải gọi file write.exe và Paint phải gọi file Pbrush.exe. 2 file này không phải là file chơng trình chính, chúng chỉ có nhiệm vụ gọi file thực thi của Paint (MSPaint.exe) và WordPad (WordPad.exe) nằm trong Program files\Accessories mới thực sự là file chơng trình chính. Microsoft phải làm nh vậy để tơng thích với các chơng trình cũ của Windows 3.x. Sau đây là tên file của một số chơng trình có sẵn trong Windows (với điều kiện bạn phải cho cài đặt khi setup Windows). Tên file Th mục Chơng trình notepad.exe Windows Notepad write.exe Windows WordPad Pbrush.exe Windows Paint Cleanmgr.exe Windows Disk Cleanup (W98) Defrag.exe Windows Disk Defragmenter Scandskw.exe Windows Scan Disk Sndvol32.exe Windows Volume Control Winfile.exe Windows File manager Msconfig.exe System System Configuration Utility Sfc.exe System System file checker Sysedit.exe System System Configuration Editor Vậy là chuyện gọi 1 chơng trình của Windows không có gì khó khăn, chỉ cần biết tên file là xong, mọi chuyện còn lại là của Windows. Còn các ứng dụng khác do ngời dùng hay ngời lắp máy cài đặt thêm chỉ có cách là gọi theo đờng dẫn chính xác vì mỗi máy mỗi khác, công sức cho việc tìm kiếm khá gian nan, cha hợp với các tay nghiệp d nh chúng ta. Khuyết điểm của chơng trình là phải viết riêng cho từng máy, chúng ta sẽ giải quyết vấn đề này ở bài viết sau "Nâng cấp chơng trình Launch". Bạn cũng có thể viết chơng trình này cho chức năng Auto Run của CD chơng trình, lúc nay mọi chuyện lại càng dễ dàng vì các đờng dẫn và chơng trình trên CD đều nằm trong tay ta, cứ đi từ th mục gốc vào là xong chuyện. Thiết kế giao diện Khởi động Visual Basic Tôi dùng Visual Basic 5 để minh họa, các bạn có thể dùng các phiên bản khác (v4 hay v6) cũng không sao. Còn nếu máy cha có phải tiến hành cài đặt, nên chọn các ấn bản Enterprise để tận dụng sức mạnh của Visual Basic (VB). Kể từ Visual Basic 5 trở đi Microsoft chỉ phát hành version 32 bit, version 16bit cuối cùng xuất hiện ở Visual Basic 4. Vào file/ New Project, click chọn Standard EXE, click OK, bạn sẽ thấy ngay một form trống xuất hiện sẵn sàng để thiết kế. Bây giờ bạn hãy tạo các control khác trên form, vị trí các control bạn có thể tùy ý bạn hay theo mẫu minh họa, thiết đặt các thông số về thuộc tính (properties) nh sau: Control Properties Name Notes form > BorderStyle: 1- FixedSingle > MinButton: True > Icon: cho 1 file *.ico, *.cur để làm biểu tợng cho chơng trình. > Caption: Launch frmMain form chính của chơng trình. Mục đích Command Button Caption: Windows cmdWin Các nút nhấn để khởi động các ứng dụng tơng ứng trong nhóm Command Button Caption: Applications cmdApp Command Caption: VietNamese cmdVN Button của việc gán thuộc tính BorderStyl e: 1- FixedSingl e là không cho ngời dùng thay đổi kích th- ớc cửa sổ chơng trình trong khi chạy. MinButton: True, cho phép ngời dùng Minimaize chơng trình của mình. Mặc nhiên khi chọn BorderStyl e: 1- FixedSingl e thì 2 thuộc tính MinButton & MaxButton tự động gán là False. Command Button Caption: Exit cmdExit Nút thoát Label Caption: Để trống Alignment: 2- Center Font: fontsize = 14 lblMsg Khung thông báo CheckBox Caption: Unload after 20 sec Value: 1-Checked chkUnloa d Nếu check thì sao 20 giây chơng trình tự động thoát. PictureBox Height: 255; Width: 5295 picOut PictureBox Appearance: 0- Flat BorderStyle: 0- None BackColor: &H00C0FFC0& picIns Bạn nên chọn một màu nào đó cho BackColor để dễ nhìn. Timer (giữ nguyên các thuộc tính) timer1 Phục vụ cho việc tự động Bạn tự cho kích thớc sao cho picIns nhỏ hơn picOut 1 chút. Và picIns phải nằm lọt trong picOut, để có thể làm picIns lọt vào bên trong bạn làm nh sau: Tạo picOut, hiệu chỉnh kích thớc cho hợp lý (hình minh họa), click chọn picOut, vẽ thêm 1 picturebox bên trong nữa, điều chỉnh kích thớc và đặt tên là picIns. Hai PictureBox này sẽ làm thanh hiển thị thời gian khi chơng trình ở chế độ tự động thoát. thoát. Tạo hệ thống các menu cho chơng trình: Từ trình đơn Tools chọn Menu Editor hay nhấn tổ hợp phím Ctrl - E cũng có tác dụng tơng tự. Số lợng menu này chỉ làm ví dụ. Bạn thích đa chơng trình nào vào menu thì tạo ra mục chọn menu tơng ứng. Trong hộp thoại Menu Editor có các nút với công dụng nh sau: Sau đây thuộc tính của các menu Caption Name &Windows ___ Windows Explorer ___ - ___ Paint ___ WordPad ___ Notepad mnuWin mnuWE mnusp1 mnuPaint mnuWP mnuNotepad &Applications ___ Microsoft Word ___ Microsoft Excel ___ Microsoft Access ___ - ___ Paint Shop Pro ___ - ___ Visual Basic ___ Visual C++ mnuApp mnuWord mnuExcel mnuAccess mnusp2 mnuPaintPro mnusp3 mnuVb mnuVc &Vietnamese ___ VNI Tan Ky 4 ___ VietKey 4.09d ___ - ___ Lac Viet td ___ Just click 'n' see mnuVN mnuVNI mnuVK mnusp4 mnuLV mnuClickSee &Exit mnuExit Chúng ta thấy có 4 menu có tên lần lợt sp1, sp2, sp3, sp4, thuộc tính Caption của nó chỉ là dấu trừ "-". Tác dụng của nó là tạo ra các đờng kẻ ngang để phân cách các mục chọn trong menu. Sau khi tạo xong, bạn có các hệ thống menu nh sau Giao diện sau khi tạo xong hệ thống menu. Bây giờ bạn có thể chạy thử chơng trình bằng phím F5. Lúc này bạn đã thiết kế xong phần giao diện của chơng trình, kế tiếp chúng ta sẽ tiến hành viết code cho chơng trình. Viết Code cho chơng trình Launch Viết Code cho menu Ta chỉ cần viết code cho menu, sau đó dùng các nút lệnh để gọi menu tơng ứng. Bây giờ chúng ta viết code cho mục Windows Explorer trong menu Windows. Vào Windows chọn Windows Explorer để viết code cho mục chọn menu này. Bạn gõ vào đoạn sau: Private Sub mnuWE_Click() ' dòng này có sẵn Dim P P = Shell("explorer", vbNormalFocus) End Sub ' dòng này có sẵn Giải thích: * Dim P Khai báo 1 biến kiểu variant để chứa trị trả về của hàm Shell. Đây là kiểu dữ liệu bao trùm tất cả các kiểu dữ liệu trong Visual Basic. * P=Shell("explorer",vbNormalFocus) Hàm Shell dùng để gọi một chơng trình khác thi hành Cú pháp Shell(pathname[,windowstyle]) pathname: là đờng dẫn và file thực thi của chơng trình cần gọi. Đây là 1 xâu cho nên khi viết bạn phải đặt chúng trong cặp dấu " " mới đúng. windowstyle: là hằng số qui định phong cách khi khởi động của chơng trình cần chạy. Thí dụ: sau khi gọi chơng trình bạn cần Maximize, Minimize chơng trình đó các hằng có giá trị và ý nghĩa nh sau: Tên hằng Giá trị ý nghĩa VbHide 0 Window is hidden and focus is passed to the hidden window. VbNormalFocus 1 Window has focus and is restored to its original size and position. VbMinimizedFocus 2 Window is displayed as an icon with focus. VbMaximizedFocus 3 Window is maximized with focus. VbNormalNoFocus 4 Window is restored to its most recent size and position. The currently active window remains active. VbMinimizedNoFoc us 5 Window is displayed as an icon. The currently active window remains active. Vậy có thể viết lại hàm Shell nh sau Shell("explorer",1) cho gọn Lu ý: Trong phần pathname của hàm shell lý ra phải ghi đầy đủ đờng dẫn, thí dụ "C:\Windows\Explorer.exe" (giả sử th mục windows là c:\windows) thay vì "explorer.exe". Sở dĩ ta có thể ghi gọn nh vậy là vì Windows tự động đặt dờng dẫn path đến các th mục nh: Windows; Windows\system. Do đó chỉ cần ghi explorer.exe cho tổng quát (khỏi sợ sai đờng dẫn khi đem chạy trên máy khác). Bây giờ nhấn F5 để chạy chơng trình, vào menu Windows chọn Windows Explorer, lập tức chơng trình Windows Explorer đợc khởi động. Tơng tự nh vậy bạn có viết code cho tất cả các menu con còn lại của menu Windows. Notepad.exe (Windows/Notepad) Write.exe (Windows/WordPad) Pbrush.exe (Windows/Paint) Đối với Paint và WordPad ta phải dùng 2 file write.exe & pbrush.exe trong th mục Windows để khởi động. Thực ra 2 file này chỉ có chức năng gọi WordPad.exe và MSPaint.exe (trong th mục \Program Files\Accessories\) chứ không phải là file chơng trình chính. Microsoft phải làm vậy để tơng thích với các chơng trình cũ. Còn các mục chọn khác bạn cũng viết hàm Shell tơng tự nhng đờng dẫn phải cụ thể và chính xác. Thí dụ để viết code cho menu "Lac Viet td". Vào VietNamese / Lac Viet td, gõ vào Private Sub mnuLV_Click() Dim F F=Shell("d:\tools\lvtd\lvtd.exe",1) End Sub Do file lvtd.exe của máy tôi nằm trong th mục d:\tools\lvtd Nhấn F5 chạy thử xem có vừa ý hay không ? Viết code cho các Command Button Bây giờ ta viết lệnh cho các CommandButton tơng ứng. Yêu cầu là viết code sao cho khi nhấn vào nút Windows thì menu Windows tơng ứng sẽ hiện ra nh hình minh họa Vậy phải viết lệnh cho nút + Windows (cmdWin) gọi menu Windows (mnuWin) + Application (cmdApp) > mnuApp + VietNamese (cmdVN) > mnuVN Double click vào cmdWin (hay Right click chọn View code từ menu popup), gõ vào Private Sub cmdWin_Click() popupmenu mnuWin End Sub Giải thích: popupmenu mnuWin hành vi (method) popupmenu dùng để hiển thị menu có tên mnuWin Xem cú pháp popupmenu Method Popupmenu Trong chơng trình ta có thể dùng hành vi (method) popupmenu để gọi một menu hiển thị, menu này phải đợc tạo trớc (menu editor) và có ít nhất 1 mục chọn con (menu thứ cấp) Cú pháp: object.PopupMenu menuname, flags, x, y Trong đó: object: tên form mà trình đơn sẽ xuất hiện. Nếu không ghi có nghĩa là dùng form hiện hành. menuname: tên menu cần hiển thị. flags: giá trị nguyên qui định vị trí xuất hiện của menupopup. Tên Hằng Giá Trị ý nghĩa vbPopupMenuLeftAlign 0 Trị mặc định, cạnh trái của trình đơn sẽ ở vị trí x. vbPopupMenuCenterAlign 4 Trình đơn sẽ canh giữa so với vị trí x. vbPopupMenuRightAlign 8 Cạnh phải của trình đơn sẽ ở vị trí x. x,y Tọa độ trình đơn sẽ xuất hiện. Nếu không ghi mặc nhiên trình đơn sẽ xuất hiện ở vị trí mouse Tơng tự cho 2 nút lệnh còn lại. Khi chạy thử chơng trình bạn click vào nút lệnh nào sẽ xuất hiện menu tơng ứng. Từ đây ngời dùng có thể chọn lệnh từ menu popup hay menu pulldown (menu kéo xuống) đều đợc. Viết lệnh cho nút Exit nh sau: Private Sub cmdExit_Click() End End Sub Làm cho chơng trình tự động thoát Đối t ợng Timer Đối tợng Timer Là đối tợng dùng để xử lý các sự kiện thời gian trong Visual Basic. Cách hoạt động của đối tợng: cứ sau một khoảng thời gian do ngời viết chơng trình qui định, timer sẽ tự động phát sinh 1 sự kiện thời gian. Vậy nếu chúng ta muốn sau 1 khoảng thời gian chơng trình phải tự động thi hành 1 số lệnh nào đó, ta chỉ việc sử dụng timer này và viết các lệnh cần timer thực hiện vào sự kiện thời gian đó. Các thuộc tính (Properties) của timer: Enable: Có kiểu luận lý (True/False). True cho phép timer hoạt động và False sẽ làm vô hiệu timer. Interval: Là giá trị nguyên, đơn vị là 1/1000 giây. Đây chính là khoảng thời gian bao nhiêu lâu để timer thực hiện lệnh. Nếu là 0 tơng đơng với Enable=False. Trong khi chạy chơng trình timer sẽ không hiển thị nh các đối tợng khác. Chúng ta có thể thiết lập các 2 thuộc tính Enable và Interval trong khi thiết kế hay khi chạy chơng trình. Nếu đang ở chế động tự động thoát (mục Unload after 20 Sec đợc chọn) sau 20 giây chơng trình sẽ tự động thoát, không cần chúng ta can thiệp. Để làm đợc việc này ta phải dùng Timer và Picture box (picIns, picOut) đã tạo từ trớc. Sau khi chơng trình khởi động hoặc khi check vào checkbox. Mỗi giây độ rộng hiện tại của picIns cộng với độ rộng của picOut/20 (vì 20 giây), cho đến khi độ rông của picIns = picOut thì dừng chơng trình. Nếu không check chức năng tự động thoát không hoạt động. Chúng ta tiến hành viết code cho các đối tợng nh sau Tình huống Form_Load() sẽ đợc kích hoạt khi chơng trình khởi động, timer hoạt động với trị interval = 1000 (tơng đơng 1 giây), độ rộng picIns ban đầu là 0. Private Sub Form_Load() Timer1.Interval = 1000 PicIns.Width = 0 End Sub Khi ngời dùng Click vào check box. Nếu có chọn sẽ làm cho timer hoạt động tơng tự nh Form_Load(), nếu không chọn thì cho timer ngừng. Private Sub chkUnload_Click() If chkUnload.Value = 1 Then PicIns.Visible = True Timer1.Interval = 1000 Else Timer1.Interval = 0 PicIns.Visible = False End If PicIns.Width = 0 End Sub Kiểm tra xem độ rộng picIns >= picOut hay không. Nếu có, kết thúc chơng trình (End), nếu không tiếp tục tăng độ rộng picIns theo chu kỳ mỗi giây 1 lần. Private Sub Timer1_Timer() If PicIns.Width >= PicOut.Width Then End Else PicIns.Width = PicIns.Width + PicOut.Width / 20 End If End Sub Chạy thử chơng trình xem nó có tự động thoát không. Thử click vào check box xem có hoạt động nh mong muốn cha. Tô son điểm phấn Thêm vài lời nhắc nhỡ Chúng ta còn sót 1 đối tợng là lblMsg (Label box) cha sử dụng đến. Label box này ta dùng để in câu thông báo hớng dẫn mỗi khi ngời dùng rê Mouse qua các Command Button. Thí dụ nh: Khi rê mouse trên nút Windows thì câu thông báo sẽ là "Các ứng dụng chuẩn của Windows" chẳng hạn. Để làm đợc điều này ta hãy khảo sát tình huống MouseMove của đối tợng, cụ thể là của Command Button và Form. Right click vào nút Windows, chọn View code, chọn tình huống MouseMove. Private Sub cmdWin_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lblMsg.Caption = "Run Windows Utilities (Accessories group)" End Sub Hiển thị câu thông báo Run Windows Utilities (Accessories group) trong lblMsg khi mouse di chuyển trên nút Windows. Một cách tơng tự bạn có thể làm cho các button còn lại. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lblMsg.Caption = "Please, select a program to start your work." End Sub Hiển thị câu thông báo Please, select a program to start your work. trong lblMsg khi mouse di chuyển phía trên form Khi chạy chơng trình, bạn thử rê mouse lên các button sẽ thấy nội dung của lblMsg thay đổi liên tục (hiển thị các câu thông báo của chính bạn). Làm sao để form khởi động ở giữa màn hình . kiểu variant để chứa trị trả về của hàm Shell. Đây là kiểu dữ liệu bao trùm tất cả các kiểu dữ liệu trong Visual Basic. * P=Shell("explorer",vbNormalFocus) Hàm

Ngày đăng: 19/02/2014, 02:20

TỪ KHÓA LIÊN QUAN

w