いつもお世話になっています。vbクリップです。
コードでアクティブになっているメモ帳の文字列を
すべて選択して、右クリックでコピーさせたときの
コピーした文字列をVB上で取得したいんですが、
どうしたらいいんでしょうか?
クリップボードから取得できると思い、サンプルを
捜してやってみたんですが、取得できません。
ちなみにクリップボードのサンプルソースは
Const FormatName = "Sample"
Dim wFormat As Long
Dim hMem As Long
Dim p As Long
Dim data() As Byte
Dim Size As Long
wFormat = RegisterClipboardFormat(FormatName)
If OpenClipboard(ByVal 0&) Then
hMem = GetClipboardData(wFormat)
If hMem Then
Size = GlobalSize(hMem)
p = GlobalLock(hMem)
ReDim data(0 To Size)
MoveMemory VarPtr(data(0)), p, Size
GlobalUnlock hMem
End If
CloseClipboard
End If
です。
クリップボードから他取得方法は無いと思うんですが、
何か、手順が違うのかうまくいきません。
宜しくお願いします。
忘れてました。
Windows 2000
VB 6.0 SP5.0
です。
む???よく分からないけど…
[VB6.0]
Private Sub Command1_Click()
MsgBox Clipboard.GetText
End Sub
普通のローカライズされた文字列ならば、
Clipboard.GetText(vbCFtext)
で十分でしょう。RTF形式であるのならばvbCFRTFが使えます。
上記のフォーマットではないテキストを扱いたいのであれば、
API関数を使うことになるでしょう。しかし、それでも、
既定のフォーマットに関してはRegisterClipboardFormatを
用いる必要はありません。
# そもそも"Sample"というフォーマット形式はどこから出たのでしょうか?
CF_LOCALEを絡めたCF_TEXT形式、CF_OEMTEXT、CF_UNICODETEXT
などのフォーマット値は定数になっています。
IEなどからHTML形式のデータを受け取りたい場合は、
"HTML Format"をRegisterClipboardFormatに渡して、その戻り値
を使うことになるでしょう。
特攻隊長まるるうさん、K.J.K.さんありがとうございました。
Clipboard.GetTextでいけました。
># そもそも"Sample"という...
まったく理解しないまま使用していました…(汗
助かりましたありがとうございました。
ツイート | ![]() |