4

私は、Windows システムの内部構造と仕組みを学ぶことに興味があります。Windows でのシステム プログラミングの学習に傾倒しています。そのコンテキストで、Windows クリップボードが内部でどのように機能するかについていくつか知りたいと思っています。

  • テキストや画像などを選択して Ctrl + C を押すと、正確には何が起こりますか?
  • 別のアプリケーションで Ctrl + V を押すと、正確にはどうなりますか?
  • コピーされたデータは正確にはどこにありますか? コピーされたデータは、すべてのプロセスで共有されるカーネル モード メモリに格納されますか?
  • コピーされたデータはどのようにして別のプロセスで使用できるようになりますか?

システム プログラマーの観点から、上記の質問に対する答えを知りたいです。

また、Windows クリップボードの内部について説明しているリソースを共有してください。

4

1 に答える 1

2

私のサイトにはいくつかの優れたリソースがあります: http://www.clipboardextender.com クリップボード ビューアーの実装、典型的な間違い、すべきこととすべきでないことについて説明しています。

基本的に、クリップボードは共有メモリ領域であり、データをそこにコピーし (ユーザーが Ctrl+C を押した場合などに「コピー」)、そこからデータをコピーします (「貼り付け」とも呼ばれます)。データは、数十の一般的な形式と、任意の数のプログラマ定義の形式で同時に表現できます。

クリップボードを完全に「バックアップ」して元のように復元することは、他のプログラムに影響を与えず、ユーザー エクスペリエンスに悪影響を与えることはありません。「遅延レンダリング」を調べて理由を確認し、Excel ユーザーがスプレッドシートに 5000 行 x 255 列をコピーして Ctrl+V を押すとどうなるかを考えてみてください。それを理解すれば、遅延レンダリングの魔法 (と落とし穴) を理解できるでしょう。

于 2011-11-17T20:57:23.153 に答える