クリップボードから文字列を取り込めない


たかしちゃん  2006-08-18 06:47:25  No: 96329

Acrobat ReaderのCtrl+Cコマンドでクリップボードに
コピーしたのち以下のVBで簡単にクリップボードの
内容が取り込めるかと思っていましたがX=""でした。

なぜ取り込めないんでしょう、クリップボードの中身を
見るソフトではちゃんと入ってるのが見えます。

ご教授よろしくお願いします。VB6.0

 'クリップボードからの取り込み
   If Clipboard.GetFormat(vbCFRTF) = True Then
      X = Clipboard.GetText
   End If


魔界の仮面弁士  2006-08-18 08:11:14  No: 96330

GetFormat で調査している物と、GetText で取得している物が
異なっていますよね。上記のコードにある
  X = Clipboard.GetText
というのは、
  X = Clipboard.GetText(vbCFText)
というコードを意味しますから。

> なぜ取り込めないんでしょう、クリップボードの中身を
> 見るソフトではちゃんと入ってるのが見えます。
クリップボードには、どの形式で格納されていましたか? (RTF ですか?)


たかしちゃん  2006-08-18 17:07:25  No: 96331

テキストだと思うんですが

X = Clipboard.GetText(vbCFText)

X = Clipboard.GetText(vbCFRTF)

どちらを指定しても
「クリップボードが開けません」とエラーが出ます。


魔界の仮面弁士  2006-08-18 18:27:57  No: 96332

> テキストだと思うんですが
思う、ではなく、きちんとツール等を使うなりコードを書くなりして、実際のクリップボード情報を
調べてみましょう。(回答者側が代わりに調べるというわけにもいきませんしね)

単にテキストといっても、CF_OEMTEXT, CF_TEXT, CF_UNICODETEXT
あるいは、HTML や RTF 等々、いろいろな形式があります。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200509/05090041.txt

それによって、VB 標準の機能で取り込めるのか、それとも別のオブジェクトや
API 等を使わなければいけないのかも変わってきますよ。
http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/clipboarddata.asp
http://msdn.microsoft.com/library/ja/jpipc/html/_win32_getclipboarddata.asp

> 「クリップボードが開けません」とエラーが出ます。
他のウィンドウが既にクリップボードを開いている場合、VB 側での
クリップボード操作が失敗する可能性があります。
開いたクリップボードを即座に閉じていないソフトがあった場合、あるいは、
偶然クリップボード操作が重なった場合には、そのような状況になりえるかと。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加