Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Pengembang dapat menggunakan format clipboard CF_HTML (HTML
Format) untuk berbagi HTML data dengan aplikasi lain yang memahami HTML, seperti
sebagai Microsoft Office dan Microsoft Internet Explorer.
CF_HTML adalah
sepenuhnya berbasis teks format yang menyertakan deskripsi, konteks, dan
fragmen dalam konteks. Ketika Anda sedang membangun data untuk mengirim ke
clipboard, Anda harus menyertakan deskripsi data untuk menunjukkan clipboard
Versi dan offset untuk konteks dan fragmen. Anda dapat menggunakan PutHTMLClipboard prosedur yang dijelaskan pada artikel ini untuk menyederhanakan tugas ini.
Memulai sebuah proyek EXE standar baru dalam Visual Basic. Form1 adalah
dibuat secara default.
Menambahkan dua CommandButton kontrol untuk Form1. Perubahan Keterangan properti Command1 untuk Menempatkan HTML, dan mengubah Keterangan properti Command2 untuk Mendapatkan HTML.
Pada Project menu, pilih Menambahkan modul untuk menambahkan modul BAS standar untuk proyek.
Tambahkan kode berikut ke jendela modul:
Option Explicit
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) _
As Long
Private Declare Function GlobalAlloc Lib "kernel32" ( _
ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function SetClipboardData Lib "user32" ( _
ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function RegisterClipboardFormat Lib "user32" Alias _
"RegisterClipboardFormatA" (ByVal lpString As String) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) _
As Long
Private Declare Function GlobalUnlock Lib "kernel32" ( _
ByVal hMem As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
pDest As Any, pSource As Any, ByVal cbLength As Long)
Private Declare Function GetClipboardData Lib "user32" ( _
ByVal wFormat As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" ( _
ByVal lpData As Long) As Long
Private Const m_sDescription = _
"Version:1.0" & vbCrLf & _
"StartHTML:aaaaaaaaaa" & vbCrLf & _
"EndHTML:bbbbbbbbbb" & vbCrLf & _
"StartFragment:cccccccccc" & vbCrLf & _
"EndFragment:dddddddddd" & vbCrLf
Private m_cfHTMLClipFormat As Long
Function RegisterCF() As Long
'Register the HTML clipboard format
If (m_cfHTMLClipFormat = 0) Then
m_cfHTMLClipFormat = RegisterClipboardFormat("HTML Format")
End If
RegisterCF = m_cfHTMLClipFormat
End Function
Public Sub PutHTMLClipboard(sHtmlFragment As String, _
Optional sContextStart As String = "<HTML><BODY>", _
Optional sContextEnd As String = "</BODY></HTML>")
Dim sData As String
If RegisterCF = 0 Then Exit Sub
'Add the starting and ending tags for the HTML fragment
sContextStart = sContextStart & "<!--StartFragment -->"
sContextEnd = "<!--EndFragment -->" & sContextEnd
'Build the HTML given the description, the fragment and the context.
'And, replace the offset place holders in the description with values
'for the offsets of StartHMTL, EndHTML, StartFragment and EndFragment.
sData = m_sDescription & sContextStart & sHtmlFragment & sContextEnd
sData = Replace(sData, "aaaaaaaaaa", _
Format(Len(m_sDescription), "0000000000"))
sData = Replace(sData, "bbbbbbbbbb", Format(Len(sData), "0000000000"))
sData = Replace(sData, "cccccccccc", Format(Len(m_sDescription & _
sContextStart), "0000000000"))
sData = Replace(sData, "dddddddddd", Format(Len(m_sDescription & _
sContextStart & sHtmlFragment), "0000000000"))
'Add the HTML code to the clipboard
If CBool(OpenClipboard(0)) Then
Dim hMemHandle As Long, lpData As Long
hMemHandle = GlobalAlloc(0, Len(sData) + 10)
If CBool(hMemHandle) Then
lpData = GlobalLock(hMemHandle)
If lpData <> 0 Then
CopyMemory ByVal lpData, ByVal sData, Len(sData)
GlobalUnlock hMemHandle
EmptyClipboard
SetClipboardData m_cfHTMLClipFormat, hMemHandle
End If
End If
Call CloseClipboard
End If
End Sub
Public Function GetHTMLClipboard() As String
Dim sData As String
If RegisterCF = 0 Then Exit Function
If CBool(OpenClipboard(0)) Then
Dim hMemHandle As Long, lpData As Long
Dim nClipSize As Long
GlobalUnlock hMemHandle
'Retrieve the data from the clipboard
hMemHandle = GetClipboardData(m_cfHTMLClipFormat)
If CBool(hMemHandle) Then
lpData = GlobalLock(hMemHandle)
If lpData <> 0 Then
nClipSize = lstrlen(lpData)
sData = String(nClipSize + 10, 0)
Call CopyMemory(ByVal sData, ByVal lpData, nClipSize)
Dim nStartFrag As Long, nEndFrag As Long
Dim nIndx As Long
'If StartFragment appears in the data's description,
'then retrieve the offset specified in the description
'for the start of the fragment. Likewise, if EndFragment
'appears in the description, then retrieve the
'corresponding offset.
nIndx = InStr(sData, "StartFragment:")
If nIndx Then
nStartFrag = CLng(Mid(sData, _
nIndx + Len("StartFragment:"), 10))
End If
nIndx = InStr(sData, "EndFragment:")
If nIndx Then
nEndFrag = CLng(Mid(sData, nIndx + Len("EndFragment:"), 10))
End If
'Return the fragment given the starting and ending
'offsets
If (nStartFrag > 0 And nEndFrag > 0) Then
GetHTMLClipboard = Mid(sData, nStartFrag + 1, _
(nEndFrag - nStartFrag))
End If
End If
End If
Call CloseClipboard
End If
End Function
Tambahkan kode berikut dalam jendela kode untuk Form1:
Private Sub Command1_Click()
Dim sFrag As String, sStart As String, sEnd As String
sStart = "<HTML><BODY><FONT FACE=Arial SIZE=1 COLOR=BLUE>"
sFrag = "<B>This is bold</B> and <I>this is italic.</I>"
sEnd = "</FONT></BODY></HTML>"
PutHTMLClipboard sFrag, sStart, sEnd
End Sub
Private Sub Command2_Click()
MsgBox GetHTMLClipboard
End Sub
Tekan tombol F5 untuk memulai program Visual Basic. Klik Menempatkan HTML untuk menambahkan HTML data ke clipboard. Kemudian, klik Mendapatkan HTML untuk mengambil clipboard data. Catatan yang menampilkan kotak pesan
fragmen HTML.
Mulai Microsoft Word (atau aplikasi yang mengakui
HTML Format untuk clipboard). Menyisipkan konten clipboard ke baru
dokumen untuk memeriksa hasil kode HTML yang terdapat pada
Clipboard.
Catatan tambahan
Menggunakan pendekatan yang mengirim kode HTML ke clipboard mungkin
sangat bermanfaat untuk otomatisasi Office klien. Sebagai contoh, jika Anda memiliki
klien otomasi yang perlu menghasilkan data diformat untuk sel dalam
Microsoft Excel atau paragraf di Microsoft Word, Anda bisa membangun data
Kode HTML, mengirimkannya ke clipboard, dan kemudian menyisipkannya ke dalam aplikasi. Oleh
menggunakan teknik ini, Anda dapat mengurangi jumlah panggilan keluar dari proses untuk
klien otomasi.
Untuk mempelajari lebih lanjut tentang Spesifikasi HTML clipboard
format, lihat topik "HTML Clipboard Format" di Pengembang Microsoft berikut
Situs Web Network (MSDN):
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use
(http://go.microsoft.com/fwlink/?LinkId=151500)
for other considerations.
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:274326
(http://support.microsoft.com/kb/274326/en-us/
)
Seberapa besar upaya Anda untuk menggunakan artikel ini?
Sangat sedikit
Sedikit
Sedang
Besar
Sangat besar
Berikan saran tentang apa yang dapat kami lakukan untuk menyempurnakan informasi ini
Terima kasih! Masukan Anda akan digunakan untuk membantu kami meningkatkan konten dukungan. Untuk opsi bantuan lainnya, kunjungi Halaman Beranda Bantuan dan Dukungan.