人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

C#またはDelphiでカーソル付きでスクリーンキャプチャし、ちょっとした編集(丸や四角で囲ったりなど)もできるソフトを作りたいのですが、カーソル付きでのキャプチャが難しいようで、なかなかいい方法を見つけれません。


いい方法と、サンプルを教えてください。
(方法・サンプルを知りたいので、ソフトの紹介などはコメント欄でお願いします。満足すれば別途ポイント送信でポイントを送りますので。ただし、質問自体を終了した場合は、コメント欄で紹介されてもポイントは払いません)
(方法・サンプルの紹介ではない場合(情報が足りないので補足してほしいなど)はコメント欄にてお願いします)
(コメント欄で補足するかもしれませんので確認をお願いします)

●質問者: かずぼっくり
●カテゴリ:コンピュータ
✍キーワード:C# Delphi カーソル キャプチャ コメント欄
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● quintia
●32ポイント

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 に入っている情報で位置を調整しているようです。

◎質問者からの返答

Delphiでの方法ですね。

この方法でもいいのですが、このソースを見る限りでは、キャプチャしたときの「カーソル」ではなく、常に「通常の」カーソルを描画してしまうため、キャプチャをするとき、カーソルに独自のものを用いている場合(画像系の編集ソフトで編集中の場合とか)のときに、正しいカーソルが描画されないと思うのですが・・・


aRect変数にも、何も代入されていませんし、beginとGetCursorPosの間に:がある(略されているのですか?)など、明らかな文法違反・おかしい部分がありますし、コメント欄にてもうちょっと補足をお願いします。


ちなみに「みたい」「ようです」とのことですが、よければ参考になさったアドレスを書いていただけると助かります。


2 ● xrowcc
●38ポイント

http://xrowcc.blog.shinobi.jp/Entry/160/

当方で開発した上記のソフトウェアにてマウスカーソルのキャプチャを行っています。

開発言語がC++ですのでちょっと異なる箇所があるかもしれません。

方法は以下の通りです。

OSがXP,Vistaの場合は「GetCursorInfo」にてマウスカーソルの形状を取得し、

「DrawIconEx」で描画しています。

マウスカーソルの座標は「GetCursorPos」で取得できると思います。

尚、OSが2000の場合は上記の「GetCursorInfo」では形状取得ができず、

「AttachThreadInput」でアタッチ後に「GetCursor」でマウスカーソルの形状を取得しています。

完全に把握しているわけではないのですがとりあえず上記の方法でマウスカーソルのキャプチャに成功しています。

参考になれば幸いでございます。

◎質問者からの返答

ふむ・・・

紹介していただいたソフトのソースコードを見れないのが少し残念ですが、とりあえず方法は分かりました。ありがとうございます。

今日は所用でできないのですが、また明日にでもちょっと試してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ