クリップボードが更新されたかどうかを取得するには?

タグの編集
投稿者 VB中学生  (中学生) 投稿日時 2011/11/4 22:55:44
暇なので、Windowsの動作ログみたいなものを制作しているのですが、

クリップボードが更新されたら、
RichTextBox内に「更新されました」と表示する方法がわからず困っています。

あともう1つ、ログなので前の文字を保持したまま改行して、新しい文字を表示させたいです。
要望が多いですが、よろしくお願いします。
投稿者 YuO  (社会人) 投稿日時 2011/11/5 00:10:54
.NET Frameworkだけで行うには,Timer使って監視するしかありません。

ただし,APIには監視するためのAPIとMessageがあります。
探すと,@ITに記事がありました。

Site: クリップボードの内容をリアルタイムに取得するには?[C#、VB] - @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/848cbviewer/cbviewer.html

references)
MSDN: SetClipboardViewer function
http://msdn.microsoft.com/en-us/library/windows/desktop/ms649052.aspx

MSDN: WM_DRAWCLIPBOARD message
http://msdn.microsoft.com/en-us/library/windows/desktop/ms649025.aspx

MSDN: WM_CHANGECBCHAIN message
http://msdn.microsoft.com/en-us/library/windows/desktop/ms649019.aspx

MSDN: ChangeClipboardChain function
http://msdn.microsoft.com/en-us/library/windows/desktop/ms649034.aspx

MSDN: Using the Clipboard # Adding a Window to the Clipboard Viewer Chain
http://msdn.microsoft.com/en-us/library/windows/desktop/ms649016.aspx#_win32_Adding_a_Window_to_the_Clipboard_Viewer_Chain