Geliştiriciler, CF_HTML Pano biçimi (HTML biçimi), Microsoft Office ve Microsoft ınternet Explorer gibi HTML anlamak için diğer uygulamalarla birlikte HTML verileri paylaşmak için kullanabilirsiniz.
CF_HTML tümüyle bir parçası, bir içerik içinde bir açıklama ve bir içerik içeren bir metin tabanlı biçimidir. Panoya göndermek için veri oluştururken, verileri Pano sürümü ve içeriği ve parça uzaklıklar belirtmek için bir açıklama eklemeniz gerekir. Bu görevi kolaylaştırmak için bu makalenin sonraki bölümlerinde açıklanan PutHTMLClipboard yordamını kullanabilirsiniz.
Yeni bir Standart EXE Project, Visual Basic'te başlatın. Varsayılan olarak, Form1 oluşturulur.
Iki KomutDüğmesi denetim Form1'e ekleyin. Command1 <a1>Caption</a1> özelliği için HTML yerine değiştirmek ve HTML AlCommand2 <a1>başlık</a1> özelliğini değiştirin.
Proje) menüsünde Add Module standart bir BAS modülüne projeye eklemek için seçin.
Aşağıdaki kodu modüle penceresine ekleyin:
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
Aşağıdaki kodu Form1 için kod penceresinde ekleyin:
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
Visual Basic programını başlatmak için F5 tuşuna basın. Panoya HTML veri eklemek için HTML yerine Ek Yardım düğmesini tıklatın. Daha sonra pano verilerini almak için HTML Al ' ı tıklatın. Bir ileti kutusu HTML parçası görüntülediğini unutmayın.
Microsoft Word (veya Pano biçimini HTML olarak tanıdığı herhangi bir uygulama) başlatın. Pano içeriğini Pano üzerinde bulunan HTML kodunu sonuçları incelemek için yeni bir belgeye yapıştırın.
Ek Not
HTML kodu panoya gönderen bir yaklaşım kullanarak Office Otomasyonu istemciler için özellikle yararlı olabilir. Örneğin, biçimlendirilmiş bir veri hücreleri için Microsoft Excel veya Microsoft Word içinde paragraf oluşturmak için gereksinim duyduğu bir otomasyon istemci varsa, HTML kodu verilerde oluşturmak panoya göndermeden ve uygulamaya yapıştırın. Bu yöntemi kullanarak, işlem dışı aramalar <a0>Otomasyon</a0> istemciye sayısını azaltabilir.
<a0>HTML</a0> pano biçiminin özelliklerini hakkında daha fazlasını öğrenmek için aşağıdaki Microsoft Developer Network (MSDN) Web sitesinde "HTML Pano biçimi" konusuna bakın:
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:274326
(http://support.microsoft.com/kb/274326/en-us/
)
Bu makaleyi kullanabilmek için kişisel olarak ne kadar çaba harcadınız?
Çok az
Az
Ne Az, Ne Fazla
Fazla
Çok fazla
Bu bilgiyi geliştirmek için ne yapabiliriz?
Gizliliğinizi korumak için, irtibat bilgilerinizi görüşlerinize eklemeyin.
Teşekkür ederiz! Görüşleriniz, destek içeriğimizi geliştirmek amacıyla kullanılacaktır. Daha fazla yardım seçeneği için lütfen, Yardım ve Destek Ana Sayfası’nı ziyaret edin.