Giáo trình Lập trình VB.net - Một số COM Interop hữu ích

Bạn muốn gửi một thông điệp e-mail, nhưng SMTP-server (Simple Mail Transfer

Protocol mail server) chưa được cấu hình trên máy tính hiện hành.

# Sửdụng thành phần MAPI(Message Application Programming Interface) đểtương

tác với tài khoản mail đã được cấu hình trên máy tính hiện hành.

MAPIlà một giao diện cho phép bạn tương tác với các tính năng gửi/nhận mail được tích hợp

trong hệ điều hành Windows. Bạn có thểsửdụng MAPI(thông qua API, hoặc thông qua thành

phần COM) đểtương tác với mail-client mặc định (thường là Microsoft Outlookhay Outlook

Express). Các tác vụbao gồm lấy thông tin liên hệtừsổ địa chỉ, lấy các thông điệp trong

Inbox, và soạn và gửi thông điệp bằng mã lệnh. Bạn cần lưu ý rằng điều kiểm MAPIkhông đi

kèm với .NETnó được cài đặt trong các phiên bản trước của Visual Studio, như Visual Basic 6. Mặc dù có thểtái phân bổ điều kiểm ActiveX MAPI cùng với các ứng dụng có sử

dụng nó, bạn cũng sẽcần có một sản phẩm như Visual Basic 6 đểphát triển với nó.

Đểcó thểsửdụng MAPI, hãy nhắp phải vào dựán của bạn trong Solution Explorer, chọn Add

Reference, và chọn thẻ COM. Tìm Microsoft MAPI Controls 6.0(msmapi32.ocx) trong danh

sách, và thêm nó. Các Interop Assemblycần thiết sẽ được thêm vào dựán của bạn ngay sau

đó. Các đối tượng này thuộc không gian tên MSMAPI.

pdf26 trang | Chia sẻ: maiphuongdc | Lượt xem: 3483 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Giáo trình Lập trình VB.net - Một số COM Interop hữu ích, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
d_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdForward.Click Try Explorer.GoForward() Catch MessageBox.Show("Already on last page.") End Try End Sub Private Sub cmdHome_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdHome.Click Explorer.GoHome() End Sub End Class Hình 19-3 Sử dụng điều kiểm Web Browser 19.3 Vận hšnh Internet Explorer V Bạn muốn hiển thị một cửa sổ Internet Explorer độc lập, nhưng vẫn giữ lại quyền kiểm soát trên cửa sổ đó. # Sử dụng Automation và điều kiểm Microsoft Internet Explorer để vận hành Internet Explorer. 237 Chương 19: Một số COM Interop hữu ích Microsoft cung cấp nhiều cách để truy xuất các chức năng của Internet Explorer. Bạn có thể đặt trực tiếp một cửa sổ trình duyệt Internet Explorer lên form, như đã trình bày trong mục 19.2, hoặc bạn có thể sử dụng Automation để vận hành một cửa sổ Internet Explorer độc lập. Trong cả hai trường hợp, mô hình đối tượng hầu như giống nhau. Để sử dụng Automation với Internet Explorer, trước tiên bạn phải thêm một tham chiếu đến thư viện COM cần thiết. Nhắp phải vào dự án của bạn trong Solution Explorer, chọn Add Reference, và chọn thẻ COM. Tìm Microsoft Internet Controls (shdocvw.dll) trong danh sách, và thêm nó. Các Interop Assembly cần thiết sẽ được tạo ra và thêm vào dự án của bạn ngay sau đó. Như với điều kiểm Web Browser, bạn có thể chuyển cửa sổ đến các URL khác nhau và thụ lý các sự kiện chuyển hướng (navigation). Ngoài ra, bạn có thể điều khiển cửa sổ là khả kiến hay không (bằng cách thiết lập thuộc tính Visible), và bạn có thể đóng cửa sổ bằng cách gọi Quit. Ứng dụng Console dưới đây mở một cửa sổ Internet Explorer độc lập để hiển thị một URL được chỉ định. Kế đó, nó thụ lý sự kiện NavigateComplete2, hiển thị các URL mới khi người dùng truy xuất chúng. Bạn có thể đóng cửa sổ Internet Explorer bằng cách nhấn Enter trong cửa sổ Console. Hình 19-4 Chọn Microsoft Internet Controls trong cửa sổ Add Reference Public Module IETest Public Sub Main() ' Tạo thể hiện IE. Dim IE As New SHDocVw.InternetExplorer() ' Kết nối hàm thụ lý sự kiện. AddHandler IE.NavigateComplete2, AddressOf IE_NavigateComplete2 ' Chuyển đến một trang mới. IE.Navigate("") 238 Chương 19: Một số COM Interop hữu ích ' Hiển thị cửa sổ. IE.Visible = True Console.WriteLine("Press any key to exit.") Console.ReadLine() Console.WriteLine("Closing the IE window.") IE.Quit() End Sub Public Sub IE_NavigateComplete2(ByVal pDisp As Object, _ ByRef URL As Object) Console.WriteLine("Visited: " & URL.ToString()) End Sub End Module 19.4 Vận hšnh Microsoft Word V Bạn muốn tương tác với Microsoft Word, để tự động hóa một tác vụ hoặc để đọc/ghi các tài liệu Word. # Sử dụng các đối tượng Word Automation đi kèm với Microsoft Office. Microsoft cung cấp một mô hình đối tượng đa năng mà bạn có thể sử dụng để tương tác với Word và các ứng dụng Office khác. Bạn có thể sử dụng các đối tượng này để tạo và đọc các tài liệu Word, tự động hóa các tác vụ phức tạp hay lặp đi lặp lại, và ngay cả truy xuất các tính năng của Word như từ điển chính tả. Hình 19-5 Chọn Microsoft Word Object Library trong cửa sổ Add Reference 239 Chương 19: Một số COM Interop hữu ích Để sử dụng Automation với Microsoft Word, trước tiên bạn phải thêm một tham chiếu đến thư viện COM cần thiết. Nhắp phải vào dự án của bạn trong Solution Explorer, chọn Add Reference, và chọn thẻ COM. Tìm Microsoft Word Object Library trong danh sách, và thêm nó. Tên chính xác của đối tượng Automation này tùy thuộc vào phiên bản Word mà bạn đã cài đặt. Word 2000 sử dụng phiên bản 9.0, trong khi Word 2002 (có trong Office XP) sử dụng phiên bản 10. Các Interop Assembly cần thiết sẽ được thêm vào dự án của bạn ngay sau đó. Các đối tượng này nằm trong không gian tên Word. # Bạn có thể trực tiếp download các Interop Assembly cho Office XP từ Microsoft []. Các assembly .NET này bọc các thành phần COM Office và có cải tiến đôi chút để mô hình đối tượng Office dễ sử dụng trong một ứng dụng .NET. Một khi bạn đã download các assembly này và cài đặt chúng trong GAC, chúng sẽ được sử dụng tự động khi bạn thêm một tham chiếu đến bất kỳ thành phần COM Office nào. Ứng dụng Console dưới đây sử dụng các đối tượng Word Automation theo nhiều cách khác nhau. Nó sẽ tạo một tài liệu phía nền, thực hiện kiểm tra chính tả, hiển thị một vài thông tin về tài liệu, hiển thị print-preview, và in tài liệu một cách tự động. Public Module DriveWord Public Sub Main() ' Khởi động Word phía nền. Dim App As New Word.Application() App.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone ' Tạo một tài liệu mới (không khả kiến đối với người dùng). Dim Doc As Word._Document = App.Documents.Add() Console.WriteLine() Console.WriteLine("Creating new document.") Console.WriteLine() ' Thêm một tiêu đề và hai dòng chữ. Dim Range As Word.Range = Doc.Paragraphs.Add().Range Range.InsertBefore("Test Document") Range.Style = "Heading 1" Range = Doc.Paragraphs.Add().Range Range.InsertBefore("Line one." & vbCrLf & "Line two.") Range.Font.Bold = True ' Sử dụng Word làm từ điển. Console.Write("Enter a word to look up: ") Dim TestWord As String = Console.ReadLine() If App.CheckSpelling(TestWord) = False Then Console.WriteLine(TestWord & " is not in the dictionary.") Console.WriteLine("Suggestions include:") Dim Suggestion As Word.SpellingSuggestion For Each Suggestion In App.GetSpellingSuggestions(TestWord) Console.WriteLine(Suggestion.Name) Next Else Console.WriteLine(TestWord & " is in the dictionary.") End If Console.WriteLine() 240 Chương 19: Một số COM Interop hữu ích ' Lưu và đóng tài liệu hiện hành. Doc.SaveAs(App.StartupPath & "\test.doc") Doc.Close() Doc = Nothing ' Bây giờ mở lại tài liệu, hiển thị print-preview, ' và làm cho Word trở nên khả kiến. Doc = App.Documents.Open(App.StartupPath & "\test.doc") Doc.PrintPreview() App.Visible = True ' Hiển thị một vài thông tin. Dim Words As Integer Words = Doc.ComputeStatistics(Word.WdStatistic.wdStatisticWords) Console.WriteLine("This document has " & Words.ToString() & _ " words.") ' Chuyển thành file PDF bằng Adobe Acrobat Distiller. ' Thất bại nếu Adobe Acrobat chưa được cài đặt đầy đủ. Try App.ActivePrinter = "Acrobat Distiller" Console.WriteLine("Press any key to print this document.") Console.ReadLine() Doc.PrintOut() Catch Console.WriteLine("Printer not found.") End Try ' Đóng và thoát Word. Console.WriteLine() Console.WriteLine("Closing Word.") Doc.Close() CType(App, Word._Application).Quit() End Sub End Module Kết xuất của ứng dụng này có thể như dưới đây. Hình 19-6 là tài liệu Word được sinh ra. Creating new document. Enter a word to look up: huggly huggly is not in the dictionary. Suggestions include: hugely ugly haggle haggy This document has 6 words. Press any key to print this document. Closing Word. # Để có thể gỡ rối với cửa sổ Word một cách trực quan, bạn hãy thiết lập thuộc tính Word.Application.Visible là True. Khi đã hoàn thiện phần mã lệnh, bạn có thể giấu cửa sổ này đi để người dùng không thể can thiệp vào đó. 241 Chương 19: Một số COM Interop hữu ích Hình 19-6 Tạo một tài liệu Word bằng mã lệnh 19.5 Vận hšnh Microsoft Excel V Bạn muốn tương tác với Microsoft Excel, để tự động hóa một tác vụ hoặc để đọc/ghi các tài liệu Excel. # Sử dụng các đối tượng Excel Automation đi kèm với Microsoft Office. Microsoft cung cấp một mô hình đối tượng đa năng mà bạn có thể sử dụng để tương tác với Excel, cho phép đọc và ghi các bảng tính và xử lý biểu đồ và các tính năng khác của Excel. Để sử dụng Automation với Microsoft Excel, trước tiên bạn phải thêm một tham chiếu đến thư viện COM cần thiết. Nhắp phải vào dự án của bạn trong Solution Explorer, chọn Add Reference, và chọn thẻ COM. Tìm Microsoft Excel Object Library trong danh sách, và thêm nó. Tên chính xác của của các đối tượng Automation tùy thuộc vào phiên bản Excel mà bạn đã cài đặt. Excel 2000 sử dụng phiên bản 9.0, trong khi Excel 2002 (có trong Office XP) sử dụng phiên bản 10. Các Interop Assembly cần thiết sẽ được thêm vào dự án của bạn ngay sau đó. Nếu bạn đã cài đặt các Interop Assembly cho Office XP (có tại [ com/library/default.asp?url=/downloads/list/office.asp]), chúng sẽ được sử dụng một cách tự động. Nếu không, một Interop Assembly mới sẽ được tạo ra. Các đối tượng mà bạn cần sử dụng nằm trong không gian tên Excel. Ứng dụng dưới đây sẽ tạo một tài liệu Excel mới, thêm vào một vài dữ liệu, tạo một biểu đồ, và chép dữ liệu biểu đồ vào một Windows Form. Các bước này được thực hiện với cửa sổ Excel hoàn toàn khả kiến, mặc dù bạn có thể thay đổi cách xử lý này bằng cách thiết lập thuộc tính Excel.Application.Visible là False. Public Class DriveExcelForm Inherits System.Windows.Forms.Form ' (Bỏ qua phần mã designer.) 242 Chương 19: Một số COM Interop hữu ích Hình 19-7 Chọn Microsoft Excel Object Library trong cửa sổ Add Reference Hình 19-8 Tạo một tài liệu Excel (với một biểu đồ) 243 Chương 19: Một số COM Interop hữu ích Hình 19-9 Chép một biểu đồ Excel vào một Windows Form Private Sub Form_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Khởi chạy và hiện Excel. Dim App As New Excel.Application() App.Visible = True ' Tạo một tài liệu mới. Dim Doc As Excel.Workbook = App.Workbooks.Add() Dim Sheet As Excel.Worksheet = Doc.Sheets(1) ' Định dạng các tiêu đề cho bảng. Sheet.Range("A1").Value = "Month" Sheet.Range("B1").Value = "Number of Days" ' Biểu thức 1:1 chọn tất cả các ô trong hàng đầu tiên. Sheet.Range("1:1").Font.Size = 12 Sheet.Range("1:1").Font.Bold = True Sheet.Range("1:1").RowHeight = 20 ' Biểu thức A:A chọn tất cả các ô trong cột đầu tiên. Sheet.Range("A:A").ColumnWidth = 20 Sheet.Range("B:B").ColumnWidth = 20 ' Đổ dữ liệu vào sheet. Dim Days As Integer Dim i As Integer For i = 1 To 12 Days = DateTime.DaysInMonth(DateTime.Now.Year, i) Sheet.Range("A" & (i + 1)).Value = _ DateTimeFormatInfo.CurrentInfo.GetMonthName(i) Sheet.Range("B" & (i + 1)).Value = Days Next 244 Chương 19: Một số COM Interop hữu ích ' Tạo và định dạng một biểu đồ cột 3D mới. Dim Chart As Excel.Chart = Doc.Charts.Add(, Sheet) Chart.ChartType = Excel.XlChartType.xl3DColumn Chart.SetSourceData(Sheet.Range("A1:B13")) ' Chép biểu đồ vào PictureBox trên form này (sử dụng Clipboard). Chart.ChartArea.Select() Chart.ChartArea.Copy() ' Thu lấy bức hình. Dim ChartImage As Image = _ CType(Clipboard.GetDataObject().GetData(DataFormats.Bitmap), _ Bitmap) ' Co hình cho vừa với form. Dim ScalingRatio As Single = PictureBox1.Width / ChartImage.Width ChartImage = ChartImage.GetThumbnailImage( _ ChartImage.Width * ScalingRatio, _ ChartImage.Height * ScalingRatio, _ Nothing, Nothing) PictureBox1.Image = ChartImage ' Điều chỉnh biểu đồ để nó xuất hiện kế bên bảng Excel, ' thay vì trong một cửa sổ riêng. Chart.Location(Excel.XlChartLocation.xlLocationAsObject, _ "Sheet1") End Sub End Class Hình 19-8 trình bày dữ liệu và biểu đồ Excel được tạo tự động. Hình 19-9 trình bày biểu đồ sau khi được chép vào ứng dụng Windows. 19.6 Sử dụng MAPI ₫ể gửi th“ng ₫iệp e-mail V Bạn muốn gửi một thông điệp e-mail, nhưng SMTP-server (Simple Mail Transfer Protocol mail server) chưa được cấu hình trên máy tính hiện hành. # Sử dụng thành phần MAPI (Message Application Programming Interface) để tương tác với tài khoản mail đã được cấu hình trên máy tính hiện hành. MAPI là một giao diện cho phép bạn tương tác với các tính năng gửi/nhận mail được tích hợp trong hệ điều hành Windows. Bạn có thể sử dụng MAPI (thông qua API, hoặc thông qua thành phần COM) để tương tác với mail-client mặc định (thường là Microsoft Outlook hay Outlook Express). Các tác vụ bao gồm lấy thông tin liên hệ từ sổ địa chỉ, lấy các thông điệp trong Inbox, và soạn và gửi thông điệp bằng mã lệnh. Bạn cần lưu ý rằng điều kiểm MAPI không đi kèm với .NET⎯nó được cài đặt trong các phiên bản trước của Visual Studio, như Visual Basic 6. Mặc dù có thể tái phân bổ điều kiểm ActiveX MAPI cùng với các ứng dụng có sử dụng nó, bạn cũng sẽ cần có một sản phẩm như Visual Basic 6 để phát triển với nó. Để có thể sử dụng MAPI, hãy nhắp phải vào dự án của bạn trong Solution Explorer, chọn Add Reference, và chọn thẻ COM. Tìm Microsoft MAPI Controls 6.0 (msmapi32.ocx) trong danh sách, và thêm nó. Các Interop Assembly cần thiết sẽ được thêm vào dự án của bạn ngay sau đó. Các đối tượng này thuộc không gian tên MSMAPI. 245 Chương 19: Một số COM Interop hữu ích Hình 19-10 Chọn Microsoft MAPI Controls 6.0 trong cửa sổ Add Reference Hình 19-11 Một MAPI mail-client đơn giản Mail-client trong hình 19-11 sử dụng MAPI để tải các thông điệp trong Inbox và gửi một thông điệp thử nghiệm. Mã lệnh cần tạo và đăng nhập vào một phiên làm việc MAPI bằng đối tượng MAPISession, và rồi truy xuất các dịch vụ mail thông qua một đối tượng MAPIMessagesClass. Public Class EmailClient Inherits System.Windows.Forms.Form ' (Bỏ qua phần mã designer.) Private Sub cmdSend_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdSend.Click 246 Chương 19: Một số COM Interop hữu ích ' Tạo một phiên làm việc mới. Dim Session As New MSMAPI.MAPISession() ' Vô hiệu giao diện người dùng. Session.LogonUI = False ' Không lấy mail khỏi mail-server. Session.DownLoadMail = False ' Khởi chạy phiên làm việc. Session.SignOn() ' Tạo một thông điệp mới. Dim Messages As New MSMAPI.MAPIMessagesClass() Messages.SessionID = Session.SessionID Messages.Compose() ' Chỉ định một số thông tin. Messages.RecipDisplayName = "nnbphuong@dvpub.com.vn" Messages.MsgNoteText = "Hey this is great the MAPI code " & _ "works fine :)" Messages.Send(False) ' Kết thúc phiên làm việc. Session.SignOff() End Sub Private Sub cmdReceive_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdReceive.Click ' Tạo một phiên làm việc mới. Dim Session As New MSMAPI.MAPISession() Session.LogonUI = False ' Không lấy mail khỏi mail-server. Session.DownLoadMail = False ' Khởi chạy phiên làm việc. Session.SignOn() ' Đem tất cả các thông điệp trong Inbox về. Dim Messages As New MSMAPI.MAPIMessagesClass() Messages.SessionID = Session.SessionID Messages.Fetch() ' Thêm các thông điệp này vào ListView. Dim i As Integer For i = 0 To Messages.MsgCount - 1 Messages.MsgIndex = i Dim lvItem As New ListViewItem(Messages.MsgOrigDisplayName) lvItem.SubItems.Add(Messages.MsgSubject) lvItem.SubItems.Add(Messages.MsgDateReceived) lstInbox.Items.Add(lvItem) Next ' Kết thúc phiên làm việc. Session.SignOff() End Sub End Class 247 Chương 19: Một số COM Interop hữu ích 19.7 Chơi file ₫a phương tiện V Bạn muốn chơi file video (MPG chẳng hạn) hay file audio (MP3 chẳng hạn). # Sử dụng điều kiểm ActiveX MCI, và kết nó vào một PictureBox nếu bạn cần hiển thị video. .NET Framework không chứa bất kỳ lớp nào dùng để chơi file đa phương tiện (audio hay video). Mục 10.14 đã mô tả cách sử dụng Win32 API để chơi file WAV. Sẽ có sẵn nhiều chức năng hơn nếu bạn sử dụng điều kiểm ActiveX MCI. Tuy nhiên, điều kiểm này không đi kèm với .NET⎯nó được cài đặt trong các phiên bản trước của Visual Studio, như Visual Basic 6. Mặc dù có thể tái phân bổ điều kiểm ActiveX MCI cùng với các ứng dụng có sử dụng nó, bạn cũng sẽ cần một sản phẩm như Visual Basic 6 để phát triển với nó. Hình 19-12 Chọn Microsoft Multimedia Control version 6.0 trong cửa sổ Customize Toolbox Để có thể thêm điều kiểm MCI vào dự án, bạn hãy nhắp phải vào hộp công cụ và chọn Add/Remove Items. Kế đó, vào thẻ COM Components, và chọn Microsoft Multimedia Control (mci32.ocx). Như thế, MMControl sẽ được thêm vào vào hộp công cụ. Khi bạn thả điều kiểm này lên form, các Interop Assembly cần thiết sẽ được sinh ra và được thêm vào dự án. Điều kiểm MCI xuất hiện trên form ở dạng một thanh điều khiển playback. Thông thường, những điều khiển này sẽ là ẩn đối với người dùng. Mã ứng dụng của bạn có thể tương tác với điều kiểm MCI để bắt đầu và ngừng playback. Bạn thực hiện các hành động như mở một file, chơi nó… bằng cách thiết lập thuộc tính Command của điều kiểm với một chuỗi hành động (action string) như Open hay Play. Hình 19-13 cho thấy một minh họa đơn giản của điều kiểm MCI (thêm vào hai nút playback tùy biến). Khi form nạp, một file MPEG mẫu được mở, và một PictureBox được kết với điều kiểm này. Kế đó, thuộc tính Command được sử dụng để bắt đầu và ngừng playback. 248 Chương 19: Một số COM Interop hữu ích Hình 19-13 Ứng dụng thử nghiệm điều kiểm MCI Public Class VideoForm Inherits System.Windows.Forms.Form ' (Bỏ qua phần mã designer.) Private Sub Form_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Mở file. MMC.FileName = Application.StartupPath & "\test.mpg" MMC.Command = "Open" ' Giấu thanh playback. MMC.Visible = False ' Hiển thị video trong PictureBox. MMC.hWndDisplay = pic.Handle.ToInt32() End Sub Private Sub cmdPlay_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdPlay.Click ' Quay về đầu. MMC.Command = "Prev" ' Bắt đầu playback. MMC.Command = "Play" End Sub Private Sub cmdStop_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdStop.Click ' Ngừng playback. MMC.Command = "Stop" End Sub End Class # Nếu cần những khả năng đa phương tiện rộng hơn, bạn có thể sử dụng Windows Media Player 9 Series Software Development Kit (download tại [http:// www.microsoft.com/downloads]). Microsoft cũng cung cấp một bộ công cụ DirectX được-quản-lý phục vụ cho việc phát triển đa phương tiện tham vọng hơn. 249 Chương 19: Một số COM Interop hữu ích 19.8 Chơi file flash V Bạn muốn chơi file flash (.swf). # Sử dụng điều kiểm Shockware Flash Object. Để có thể thêm điều kiểm Shockware Flash Object vào dự án, bạn hãy nhắp phải vào hộp công cụ và chọn Add/Remove Items. Kế đó, vào thẻ COM Components, và chọn Shockware Flash Object (flash.ocx). Như thế, Shockware Flash Object sẽ được thêm vào vào hộp công cụ. Khi bạn thả điều kiểm này lên form, các Interop Assembly cần thiết sẽ được sinh ra và được thêm vào dự án. Hình 19-14 Chọn Shockware Flash Object trong cửa sổ Customize Toolbox Hình 19-15 Ứng dụng thử nghiệm điều kiểm Shockware Flash Object 250 Chương 19: Một số COM Interop hữu ích Public Class FlashForm Inherits System.Windows.Forms.Form ' (Bỏ qua phần mã designer.) Private Sub FlashForm_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load axShockwaveFlash1.Movie = Application.StartupPath & _ "\\test.swf" End Sub End Class 19.9 Sử dụng ₫iều kiểm Masked Edit V Bạn muốn có điều kiểm giống như TextBox nhưng có thể hạn chế và định dạng dữ liệu y theo một “mặt nạ”. # Sử dụng điều kiểm Masked Edit. Điều kiểm Masked Edit trông giống như điều kiểm TextBox, nhưng nó có các tính năng cao hơn là “masked input” (đầu vào có-mặt-nạ) và “formatted output” (đầu ra được-định-dạng). Nếu bạn không sử dụng mặt nạ, điều kiểm Masked Edit hoạt động giống như một TextBox chuẩn. Để định nghĩa một mặt nạ, bạn thiết lập thuộc tính Mask với một chuỗi. Mặt nạ có thể chứa hai loại ký tự: placeholder⎯ứng với các ký tự do người dùng cung cấp, và ký tự trực kiện⎯được nhập một cách tự động khi người dùng gõ. Các ký tự trực kiện đóng vai trò là dấu hiệu nhận biết kiểu của input đang được nhập vào (chẳng hạn các dấu ngoặc đơn bao lấy phần mã vùng của một số điện thoại). Placeholder quy định tính hợp lệ của đầu vào. Nếu người dùng nhập vào một ký tự trái với mặt nạ, điều kiểm này phát sinh sự kiện ValidationError, và ký tự đó sẽ không xuất hiện. Bảng 19-1 cho biết các placeholder mà bạn có thể sử dụng. Để thu lấy text được-định-dạng hiện có trong điều kiểm, bạn cần sử dụng thuộc tính Text. Bảng 19-1 Các placeholder của điều kiểm Masked Edit Ký tự Mô tả # Chữ số. . Dấu thập phân. Ký tự thực sự được sử dụng là ký tự được chỉ định làm dấu thập phân trong các thiết lập bản địa hiện hành. Ký tự này được xem như một trực kiện. , Dấu phân cách hàng nghìn. Ký tự thực sự được sử dụng là ký tự được chỉ định làm dấu phân cách hàng nghìn trong các thiết lập bản địa hiện hành. Ký tự này được xem như một trực kiện. : Dấu phân cách giờ. Ký tự thực sự được sử dụng là ký tự được chỉ định làm dấu phân cách giờ trong các thiết lập bản địa hiện hành. Ký tự này được xem như một trực kiện. 251 Chương 19: Một số COM Interop hữu ích / Dấu phân cách ngày. Ký tự thực sự được sử dụng là ký tự được chỉ định làm dấu phân cách ngày trong các thiết lập bản địa hiện hành. Ký tự này được xem như một trực kiện. \ Xem ký tự kế tiếp trong chuỗi mặt nạ là một trực kiện. Điều này cho phép bạn chèn các ký tự #, &, A, và ? vào trong chuỗi mặt nạ. Ký tự này được xem như một trực kiện. & Ký tự. Các giá trị hợp lệ là các ký tự ANSI trong tầm: 32–126 và 128–255. > Chuyển tất cả các ký tự thành chữ hoa. < Chuyển tất cả các ký tự thành chữ thường. A Ký tự chữ hay số (bắt buộc). Ví dụ: a–z, A–Z, hay 0–9. a Ký tự chữ hay số (tùy chọn). 9 Chữ số (tùy chọn). Ví dụ: 0–9. C Ký tự hay space (tùy chọn). Làm việc giống y như &, và bảo đảm tương thích với Microsoft Access. ? Mẫu tự. Ví dụ: a–z hay A–Z. Để có thể thêm điều kiểm Masked Edit vào dự án, bạn hãy nhắp phải vào hộp công cụ và chọn Add/Remove Items. Kế tiếp, vào COM Components, và chọn Microsoft Masked Edit Control (msmask32.ocx). Như thế, MaskedEdBox sẽ được thêm vào hộp công cụ. Khi bạn thả điều kiểm này lên form, những Interop Assembly cần thiết sẽ được sinh ra và được thêm vào dự án. Hình 19-16 Chọn Microsoft Masked Edit Control version 6.0 trong cửa sổ Customize Toolbox 252 Chương 19: Một số COM Interop hữu ích Hình 19-17 Ứng dụng thử nghiệm điều kiểm Masked Edit Đoạn mã dưới đây ấn định một mặt nạ bao gồm các chữ số và các mẫu tự được viết hoa/thường, được phân cách bởi dấu gạch nối: ' Hộp này lưu giữ những dữ liệu như 123-ABC-abc. EditBox.Mask = "###->???-<???" 19.10 Sử dụng Microsoft Agent V Bạn muốn ứng dụng của mình có sự trợ giúp của những nhân vật hoạt hình như trong Microsoft Word, Microsoft Excel... # Sử dụng điều kiểm Microsoft Agent. Microsoft Agent là một kỹ thuật dùng để thêm các nhân vật hoạt hình có tính tương tác vào ứng dụng hay trang web. Tính tương tác là chức năng chính yếu của kỹ thuật Microsoft Agent: các nhân vật Microsoft Agent có thể nói và đáp lại đầu vào của người dùng thông qua việc nhận dạng và tổng hợp giọng nói. Microsoft sử dụng kỹ thuật này trong các ứng dụng như Word, Excel, và PowerPoint; giúp người dùng tìm câu trả lời cho những câu hỏi và hiểu cách thức hoạt động của ứng dụng. Microsoft cung cấp thông tin về kỹ thuật Microsoft Agent tại [www.microsoft.com/msagent]. Điều kiểm Microsoft Agent cho phép người dùng tương tác với các ứng dụng và trang web thông qua giọng nói—dạng giao tiếp tự nhiên nhất của con người. Khi người dùng nói vào micro, điều kiểm này sử dụng một bộ máy nhận dạng giọng nói—đây là ứng dụng dịch âm thanh đầu vào từ micro thành ngôn ngữ mà máy tính hiểu được. Điều kiểm Microsoft Agent cũng sử dụng một bộ máy text-to-speech—đây là ứng dụng dịch các từ do người dùng nhập vào thành âm thanh có thể nghe được qua loa. Điều kiểm Microsoft Agent cho phép bạn truy xuất bốn nhân vật đã được định nghĩa sẵn— Genie (vị thần), Merlin (thuật sĩ), Peedy (con vẹt) và Robby (người máy). Mỗi nhân vật có một tập các hành động mà bạn có thể sử dụng trong ứng dụng nhằm minh họa các quan điểm hay chức năng khác nhau. Chẳng hạn, tập các hành động của Peedy gồm các dạng bay khác nhau mà bạn có thể sử dụng để dịch chuyển Peedy trên màn hình. Bạn cũng có thể tự tạo cho mình các nhân vật hoạt hình với sự trợ giúp của Microsoft Agent Character Editor và Microsoft Linguistic Sound Editing Tool (có trong đĩa CD đính kèm). Ví dụ dưới đây minh họa cách xây dựng một ứng dụng đơn giản với điều kiểm Microsoft Agent. Ứng dụng này gồm hai ComboBox dùng để chọn một nhân vật và một hành động. Khi người dùng chọn các ComboBox này, nhân vật được chọn sẽ xuất hiện và thực hiện hành động được chọn. Ứng dụng này sử dụng việc nhận dạng và tổng hợp giọng nói để điều khiển các hành động của nhân vật: người dùng có thể bảo nhân v

Các file đính kèm theo tài liệu này:

  • pdfcac_giai_phap_lap_trinh_vb_net_2.pdf