2009-08-24 19 views
35

クリップボードにコピーできるデータのサイズに制限はありますか?私はVB6を使用しており、データのブロックをクリップボードにコピーする必要があります。クリップボードのサイズ制限

+0

これはプログラミングの質問ですか?もしそうなら、私たちがあなたを助けるために私たちにいくつかの詳細を与えるのはどうですか?そうでない場合、この質問は他の場所に属します。 – Bevan

+2

はい、私はクリップボードにvb6を使ってデータを書き込もうとしています。 なぜ私はその限界について疑問に思っているのですか? –

答えて

0

システムのメモリ容量によって異なります。

+3

私はそうは思いませんが、とにかく "記憶の量"はあまりにも曖昧です。 Phyyical RAMまたは仮想メモリ? 4GB以上のメモリと32ビットのアプリを搭載したシステムはどうですか? –

1

ほとんどのデータはデータ自体ではなく参照としてコピーされるため、ほとんどのサイズのものをコピーできます。テキストは実際にコピーされますが、私が知っているところでは、データ量は現在利用可能なRAMの量に制限されています。これを覚えておいてください。もしvb6がそれを処理できるなら、私はクリップボードがそれを扱うことができると確信しています。

+6

(-1)ほとんどのデータは参照によってコピーされません。最も単純なケースでは、アプリ内の文字列変数は、Janが示すように、グローバルメモリブロックにコピーされます。コピー/ペーストに内部ストレージへのポインタが含まれている状況がいくつかありますが、それは通常独自の/プライベートフォーマットです。 AnsiString、UnicodeString、RTF、HTML、Bitmapなどの一般的なものについては、共有グローバルメモリが使用されます。つまり、データの2番目のコピーが存在する必要があります。 –

27

アプリケーションでは、データをクリップボードに保存するためにメモリを割り当て、他のアプリケーションで使用できるようにするためにGlobalAlloc(GMEM_MOVEABLE or GMEM_DDESHARE)を呼び出します。 32ビットアプリケーションの場合、GlobalAllocは、ブロックのサイズを最大2 GBまで、またはPCが持つ仮想メモリのうち、どちらか小さい方に割り当てることができます。 Windowsのクリップボードには、他のサイズ制限はありません。

1

情報として、<NUL>(ascii 0)文字を含むテキストをエディタにコピーするときに、クリップボードのバッファが小さくなると考えることができます。

この場合、問題はクリップボードのサイズではありませんが、エディタはテキストの末尾に<NUL>を認識し、この文字の後にはもう挿入しません。

+6

これは、**回答**の代わりに**コメント**にする必要があります。それは情報ですが、その質問に答えるつもりはありません。 – Adam

関連する問題