いい方法と、サンプルを教えてください。
(方法・サンプルを知りたいので、ソフトの紹介などはコメント欄でお願いします。満足すれば別途ポイント送信でポイントを送りますので。ただし、質問自体を終了した場合は、コメント欄で紹介されてもポイントは払いません)
(方法・サンプルの紹介ではない場合(情報が足りないので補足してほしいなど)はコメント欄にてお願いします)
(コメント欄で補足するかもしれませんので確認をお願いします)
windows.pas にある関数たちを使って、キャプチャした画像に自分でカーソルを描画するみたいです。
var aRect: TRect; // キャプチャウィンドウRect構造体 CurPos: TPoint; // マウスカーソル座標 Bmp: TBitmap; begin : : GetCursorPos(CurPos); DrawIcon( Bmp.Canvas.Handle, CurPos.X - aRect.Left, CurPos.Y - aRect.Top, GetCursor);
GetCursorPos
DrawIcon
GetCursor
の3つがwindows.pasに定義されています。
事前に画面からはみ出した部分を画像(Bmp)から削除している関係で、aRect に入っている情報で位置を調整しているようです。
http://xrowcc.blog.shinobi.jp/Entry/160/
当方で開発した上記のソフトウェアにてマウスカーソルのキャプチャを行っています。
開発言語がC++ですのでちょっと異なる箇所があるかもしれません。
方法は以下の通りです。
OSがXP,Vistaの場合は「GetCursorInfo」にてマウスカーソルの形状を取得し、
「DrawIconEx」で描画しています。
マウスカーソルの座標は「GetCursorPos」で取得できると思います。
尚、OSが2000の場合は上記の「GetCursorInfo」では形状取得ができず、
「AttachThreadInput」でアタッチ後に「GetCursor」でマウスカーソルの形状を取得しています。
完全に把握しているわけではないのですがとりあえず上記の方法でマウスカーソルのキャプチャに成功しています。
参考になれば幸いでございます。
ふむ・・・
紹介していただいたソフトのソースコードを見れないのが少し残念ですが、とりあえず方法は分かりました。ありがとうございます。
今日は所用でできないのですが、また明日にでもちょっと試してみます。
Delphiでの方法ですね。
この方法でもいいのですが、このソースを見る限りでは、キャプチャしたときの「カーソル」ではなく、常に「通常の」カーソルを描画してしまうため、キャプチャをするとき、カーソルに独自のものを用いている場合(画像系の編集ソフトで編集中の場合とか)のときに、正しいカーソルが描画されないと思うのですが・・・
aRect変数にも、何も代入されていませんし、beginとGetCursorPosの間に:がある(略されているのですか?)など、明らかな文法違反・おかしい部分がありますし、コメント欄にてもうちょっと補足をお願いします。
ちなみに「みたい」「ようです」とのことですが、よければ参考になさったアドレスを書いていただけると助かります。