2

システム クリップボードに同じコンテンツがある場合、次のスニペットを実行します。

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
4

0 に答える 0