初めて書き込みします。よろしくお願いします。
クリップボードのデータが更新されたらデータを加工してExcelにデータを
渡すというプログラムをVC#で組みたいのですが、VC6++でいうところの
SetClipboardViewerみたいな関数はいったいどのクラスにあるんでしょうか。
System.Windows.Form.Clipboardにはないみたいだし・・・。
1日中MSDNとにらめっこしましたが、どうにも見つかりません。
どなたかキーワードだけでも教えてください!!
C#のクラスライブラリにWin32APIのSetClipboardViewerにあたるものが
無いのではないでしょうか。(未確認)
http://www.atmarkit.co.jp/
の
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_020/csharp_abc04.html
あたりを参考にしてWin32APIを直接呼び出してみてはどうでしょうか。
ウィンドウハンドルは
System.Windows.Form.Control.Handle プロパティあたりで
取得できそうです。(未確認)
MASATOさん、すばやい回答ありがとうございます。
御紹介のホームページを参考にDllImportディレクティブ
からSetClipboardViewerを呼び出そうと思うのですが
当方かなりのVC#初心者でまだわからない点があります。
一つ目:
ウィンドウハンドルの取得は↓のような感じでいいんでしょうか??
[DllImport(user32.dll)]
public static extern System.IntPtr SetClipboardViewer();
・・・・・・・・・
System.IntPtr nextHandle = SetClipboardViewer();
二つ目:
VC++でいうメッセージマップみたいなものがVC#にはないみたいですが
クリップボードの内容が変更されたときに発生するイベントはどこで
アタッチばいいのでしょうか。
なんか基本がわかってないような質問で、顔洗って出直してくる用意は
出来てますが、もすこしお付き合いいただけたら幸いです。
しつこくインターネットで探していたらまさにずばりのコードを見つけました。
http://www.codeproject.com/csharp/clipboardformatviewer.asp
やっぱりVC#のクラスライブラリにはSetClipboardViewerに相当するものは
ないみたいですね。ちょっと裏技的のような手法ですが解決いたしました。