1. Trang chủ
  2. » Công Nghệ Thông Tin

Một số Cominterop hữu ích docx

26 271 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 26
Dung lượng 827,68 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

V Bạn muốn sử dụng các thư viện truy xuất dữ liệu ADO nhằm tạo sự liên tác với một ứng dụng hiện có hoặc bạn muốn truy xuất chức năng nào đó không có hiệu lực trong Microsoft ADO.NET..

Trang 1

19

Chương 19: MỘT SỐ COM INTEROP HỮU ÍCH

Trang 3

ong đợi Microsoft NET Framework sao lại tất cả các tính năng hiện có trong các thành phần COM là điều phi thực tế Trong các chương trước, bạn đã biết cách mở rộng các chức năng của NET bằng cách tận dụng các tính năng từ Win32 API,

WMI, và các thành phần COM như Windows Script Host Chương này sẽ xét một vài tính

năng hữu ích hơn từ thế giới của mã lệnh không-được-quản-lý, bao gồm ADO kinh điển (mục

19.1), các thành phần cho trang web (mục 19.2 và 19.3), các thành phần dùng để tự động hóa

Microsoft Word và Excel (mục 19.4 và 19.5), và những điều kiểm ActiveX cho phim động,

flash, và hộp nhập text có mặt nạ che (mục 19.7, 19.8, và 19.9) Và hơn hết, mặc dù những

điều kiểm và thành phần này tồn tại bên ngoài thư viện lớp NET, việc hỗ trợ tính liên tác

COM của NET Framework khiến cho việc sử dụng chúng trở nên mạch lạc

V Bạn muốn sử dụng các thư viện truy xuất dữ liệu ADO nhằm tạo sự liên tác với

một ứng dụng hiện có hoặc bạn muốn truy xuất chức năng nào đó không có hiệu

lực trong Microsoft ADO.NET

# Sử dụng ADO Interop Assembly ADODB.dll (có trong NET Framework)

Mặc dù NET Framework được thiết kế cho mô hình truy xuất dữ liệu không-được-kết-nối của

ADO.NET, bạn vẫn có thể sử dụng các đối tượng ADO nếu cần Bạn cần thêm một tham chiếu

đến Microsoft ActiveX Data Objects 2.7 Library (msado15.dll) bằng cách nhắp phải vào dự

án, chọn Add Reference, và chọn thư viện này trong thẻ COM Khi đó, một tham chiếu đến

Interop Assembly ADODB.dll (đi kèm với NET Framework và được cài đặt trong GAC) sẽ

được thêm vào dự án Tất cả các đối tượng ADO đều nằm trong không gian tên ADODB

Hình 19-1 Chọn Microsoft ActiveX Data Objects 2.7 Library trong cửa sổ Add Reference

M

Trang 4

Các đối tượng ADO luôn kết nối thông qua OLE DB, cho nên bạn phải sử dụng cú pháp OLE

DB đối với chuỗi kết nối Bạn có thể thao tác trực tiếp các đối tượng Connection, Command, và

Recordset, và ngay cả có thể chép dữ liệu từ một Recordset sang một DataSet bằng

OleDbDataAdapter Ứng dụng Console dưới đây sẽ trình bày kỹ thuật này:

Public Module ADOTest

' Chú ý rằng chuỗi kết nối phải sử dụng cú pháp OLE DB

Private ConnectionString As String = "Provider=SQLOLEDB;" & _

"Data Source=localhost;Integrated Security=SSPI;" & _

"Initial Catalog=Northwind"

Public Sub Main()

' Tạo các đối tượng ADO kinh điển

Dim ADOCon As New ADODB.Connection()

ADOCon.ConnectionString = ConnectionString

Dim SQL As String = "SELECT * FROM Customers"

Dim Rs As ADODB.Recordset

' Tạo ADO.NET adapter sẽ chuyển dữ liệu Recordset thành một bảng

' trong DataSet Chú ý rằng chỉ OLE DB provider mới có chức năng này Dim Adapter As New System.Data.OleDb.OleDbDataAdapter()

Dim Ds As New DataSet()

V Bạn muốn hiển thị một trang HTML (hoặc một kiểu tài liệu khác được Internet

Explorer hỗ trợ) trong một ứng dụng Windows

# Sử dụng điều kiểm ActiveX Web Browser đi kèm với Internet Explorer

.NET Framework không có điều kiểm nào để thể hiện nội dung HTML Tuy nhiên, chức năng này là cần thiết, để hiển thị nội dung HTML cục bộ nào đó (như một tài liệu trợ giúp đa năng)

hoặc thông tin nào đó từ web (chẳng hạn, một trang web liệt kê các download mà người dùng

có thể sử dụng để cập nhật ứng dụng)

Để hiển thị một trang HTML, bạn có thể thêm một cửa sổ Internet Explorer vào các ứng dụng

Windows của bạn Cửa sổ này không chỉ hỗ trợ HTML mà còn hỗ trợ mã JavaScript và Visual

Trang 5

Basic Scripting Edition (VBScript), điều kiểm ActiveX, và nhiều plug-ins khác tùy thuộc vào

cấu hình hệ thống của bạn (bao gồm Word, Excel, và Adobe Acrobat Reader) Thực tế, bạn có thể sử dụng điều kiểm Web Browser để duyệt các thư mục trên một ổ đĩa cục bộ hoặc hiển thị các file trên một FTP site

Để có thể thêm Web Browser vào một dự án, nhắp phải vào hộp công cụ và chọn Add/Remove

Items Kế tiếp, chọn thẻ COM Components, và chọn Microsoft Web Browser (shdocvw.dll)

Theo đó, điều kiểm Explorer được thêm vào hộp công cụ của bạn Khi bạn thả điều kiểm này lên form, các Interop Assembly cần thiết sẽ được tạo ra và thêm vào dự án của bạn

Hình 19-2 Chọn Microsoft Web Browser trong cửa sổ Customize Toolbox

Khi sử dụng Web Browser, bạn sẽ thường dùng các phương thức sau đây:

• Navigate⎯chuyển đến URL do bạn chỉ định

• GoBack và GoForward⎯chuyển đến các trang trong history

• GoHome⎯chuyển đến trang home trên máy tính hiện hành, và GoSearch⎯hiển thị trang tìm kiếm

Ngoài ra, người dùng sẽ có thể thực hiện chuyển hướng (navigation) bằng cách nhắp vào các

liên kết trang (nếu chúng tồn tại) Bạn có thể lấy URL hiện hành từ thuộc tính LocationURL và

xác định điều kiểm vẫn còn xử lý trang đó hay không bằng cách xét thuộc tính Busy Ngoài ra, bạn có thể phản ứng với nhiều sự kiện khác nhau

Public Class Form1

Inherits System.Windows.Forms.Form

' (Bỏ qua phần mã designer.)

Private Sub Form1_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Load

Explorer.Navigate2("http://localhost")

End Sub

Trang 6

Private Sub cmdBack_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles cmdBack.Click

Private Sub cmdForward_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles cmdForward.Click

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

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

Trang 7

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()

Trang 8

Public Sub IE_NavigateComplete2(ByVal pDisp As Object, _

ByRef URL As Object)

Console.WriteLine("Visited: " & URL.ToString())

# 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

Trang 9

Để 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

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()

' Thêm một tiêu đề và hai dòng chữ

Dim Range As Word.Range = Doc.Paragraphs.Add().Range

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)

Trang 10

' 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 đủ

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

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.VisibleTrue 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 đó

Trang 11

Hình 19-6 Tạo một tài liệu Word bằng mã lệnh

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 [http://msdn.microsoft

độ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

Trang 12

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 đồ)

Trang 13

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)

' Đổ dữ liệu vào sheet

Dim Days As Integer

Trang 14

' Tạo và định dạng một biểu đồ cột 3D mới

Dim Chart As Excel.Chart = Doc.Charts.Add(, Sheet)

' Co hình cho vừa với form

Dim ScalingRatio As Single = PictureBox1.Width / ChartImage.Width

' Đ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

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

Ngày đăng: 12/08/2014, 00:22

HÌNH ẢNH LIÊN QUAN

Hình 19-1 Chọn Microsoft ActiveX Data Objects 2.7 Library trong cửa sổ Add Reference - Một số Cominterop hữu ích docx
Hình 19 1 Chọn Microsoft ActiveX Data Objects 2.7 Library trong cửa sổ Add Reference (Trang 3)
Hình 19-2 Chọn Microsoft Web Browser trong cửa sổ Customize Toolbox - Một số Cominterop hữu ích docx
Hình 19 2 Chọn Microsoft Web Browser trong cửa sổ Customize Toolbox (Trang 5)
Hình 19-3 Sử dụng điều kiểm Web Browser - Một số Cominterop hữu ích docx
Hình 19 3 Sử dụng điều kiểm Web Browser (Trang 6)
Hình 19-4 Chọn Microsoft Internet Controls trong cửa sổ Add Reference - Một số Cominterop hữu ích docx
Hình 19 4 Chọn Microsoft Internet Controls trong cửa sổ Add Reference (Trang 7)
Hình 19-5 Chọn Microsoft Word Object Library trong cửa sổ Add Reference - Một số Cominterop hữu ích docx
Hình 19 5 Chọn Microsoft Word Object Library trong cửa sổ Add Reference (Trang 8)
Hình 19-6 Tạo một tài liệu Word bằng mã lệnh - Một số Cominterop hữu ích docx
Hình 19 6 Tạo một tài liệu Word bằng mã lệnh (Trang 11)
Hình 19-8 Tạo một tài liệu Excel (với một biểu đồ) - Một số Cominterop hữu ích docx
Hình 19 8 Tạo một tài liệu Excel (với một biểu đồ) (Trang 12)
Hình 19-9 Chép một biểu đồ Excel vào một Windows Form - Một số Cominterop hữu ích docx
Hình 19 9 Chép một biểu đồ Excel vào một Windows Form (Trang 13)
Hình 19-12 Chọn Microsoft Multimedia Control version 6.0 trong cửa sổ Customize Toolbox - Một số Cominterop hữu ích docx
Hình 19 12 Chọn Microsoft Multimedia Control version 6.0 trong cửa sổ Customize Toolbox (Trang 17)
Hình 19-14 Chọn Shockware Flash Object trong cửa sổ Customize Toolbox - Một số Cominterop hữu ích docx
Hình 19 14 Chọn Shockware Flash Object trong cửa sổ Customize Toolbox (Trang 19)
Hình 19-15 Ứng dụng thử nghiệm điều kiểm Shockware Flash Object - Một số Cominterop hữu ích docx
Hình 19 15 Ứng dụng thử nghiệm điều kiểm Shockware Flash Object (Trang 19)
Hình 19-18 Chọn Microsoft Agent Control 2.0 trong cửa sổ Customize Toolbox - Một số Cominterop hữu ích docx
Hình 19 18 Chọn Microsoft Agent Control 2.0 trong cửa sổ Customize Toolbox (Trang 23)
Hình 19-19 Ứng dụng thử nghiệm Microsoft Agent - Một số Cominterop hữu ích docx
Hình 19 19 Ứng dụng thử nghiệm Microsoft Agent (Trang 26)

TỪ KHÓA LIÊN QUAN

w