システム クリップボードに同じコンテンツがある場合、次のスニペットを実行します。
C++ の場合:
if (OpenClipboard(NULL)) {
for (int i = 0;;) {
i = EnumClipboardFormats(i);
if (i == 0)
break;
GetClipboardFormatName(i, buf, sizeof(buf)/sizeof(buf[0]));
printf("%+09d\t%s\n", i, buf);
}
CloseClipboard();
}
Java の場合 (アプレット内):
Toolkit toolkit = Toolkit.getDefaultToolkit();
Clipboard clipboard = toolkit.getSystemClipboard();
for (DataFlavor df : clipboard.getAvailableDataFlavors()) {
System.out.println(df.getHumanPresentableName() + " " + df.getMimeType());
}
私にとって驚くべきことに、2つは異なる数の利用可能なフォーマットを返します.親切。
これがなぜなのか、またはこの動作をどのように調整できるのかを誰かが知っていますか? 基本的には、Java でクリップボードを介してカスタム形式のデータにアクセスしたいのですが、すぐには機能しないようです。
UPD: これは、問題のカスタム データ形式に対して 2 つのスニペットが提供するサンプル出力です。
C++
+00049654 MDLSK
+00049156 Native
+00049155 OwnerLink
+00000003 OwnerLink
+00000014 OwnerLink
ジャワ
image/x-java-image image/x-java-image; class=java.awt.Image