完全に別アプリ上を、マウスで囲み、その範囲を取得したいのですが、可能でしょうか?
RECTでも、2点の座標でもいいのですが。
何らかのフラグがあり、フラグがたてば、マウスで範囲を選択できるようになり、マウスボタンが上がったら、フラグを外し、戻り値に、RECTでも、2点の座標を取得するのって可能でしょうか?
ヒントだけでもお願いします。
もっと詳しく、具体的に何をしたいのか、ゼロから書いた方がいいんじゃないかと。
私はいまいち理解できませんでした。
>何らかのフラグがあり、フラグがたてば、マウスで範囲を選択できるようになり
何らかのフラグってなんですか?
自アプリ内なら好き勝手にすればよいので、たぶん違うのでしょうが…。
あと、環境も書きましょう!
わかりにくいですか。
”完全に別アプリ上を”なので、”自アプリ内”ではないのですよ。
少し想像しにくかったですかね?
例えば、”完全に別アプリ上”なので、ExcelやWord、ブラウザ(不特定多数)なんで、画像ソフトとか、デスクトップ上で、範囲を選択するような囲いをマウスで描けないかなー?と。
下のソフトに影響なく、マウスと押した位置と、離した位置の線を、リアルタイムに引ければいいのですが。
デスクトップにカーソルを当てて、左クリック、そのままドラックすると、線がでますよね?
こんな感じのを一般ソフト上に引きたいと。何かを選択したりはしないで。
で、範囲の位置を知りたいと。
あくまで、”自アプリ内”ではなく、”完全に別アプリ上”です。
>たぶん違うのでしょうが
その通りです。(苦笑
自分で作ったアプリのことを、”完全に別アプリ”とは言いませんよねー。
もしそうだったら、素直に、自分で作ったアプリとか、Form2とか書きますよ。
でも、少し曖昧だったのは、ごめんなさい。
Delphi 2010
なるほど、だいたい分かりました。
が、書き込みをした後に「ちょっと誤解させるかな?」と思ったんですが、その悪い予感が当たってしまいました。
>何らかのフラグってなんですか?
>自アプリ内なら好き勝手にすればよいので、たぶん違うのでしょうが…。
これは↓こう書くべきでした。(必要以上に2行目に注目させてしまいましたね。)
何らかのフラグってなんですか? ”自アプリ内のフラグ”なら好き勝手にすればよいので、たぶん違うのでしょうが…。
かなり曖昧でした。ごめんなさい。
で、何らかのフラグってなんのことですか?
はははっ、お互い確信犯でしょ。(苦笑
フラグは、「マウスが移動する際につけるのがセオリーかなー?」とおもったんですが、素人考えですかね?
まぁ、フラグうんぬんは、なしでも良いです。
その別アプリをキャプチャーする(?)自アプリ自体はデスクトップには表示されず
多分タスクトレイとかに常駐させるんですよね?
他のアプリをクリックした時点で、制御は向こうに行ってしまうので
マウスの動作をシステムからフックしてゴニョゴニョって事になると思いますが
私も「ゴニョゴニョ」の部分をどうするのか、できるのかについては詳しくないです(^^;
でも発想を変えて、件のフラグを立てたときに画面全体をキャプチャーしてしまい
自アプリ上で画面全体に最前面で画像として表示してしまえば
その上では何をしようが自由自在になりますよ。
で、マウスドラッグで範囲を決定した瞬間に、その画像を消してしまえば
見かけ上それっぽい動作にはなると思いますがどうでしょう?
もっとも、ドラッグ中は画面が更新されない(フリーズしたように見える)とか
簡単には(全く?)キャプチャーできない場合がある(Flashや動画など)とか
問題はあると思いますし、そもそもその矩形範囲を何に使うのか判らないんで
こんな「ナンチャッテ」な方法ではダメかもしれませんが(^^;
いや、私もフック関係はゴニョゴニョなので(笑)、似ている方法を選びました。
やはり、その方法を選びますよね。^^;
他にも、画面に四角の囲いと、位置情報さえ取得できればいいので、枠なしForm2のpanelを透過させて、マウスの挙動に合わせる・・・、とかも考えましたが。
根本が違いますが、こっちの方がスマートかもしれませんね。
マウスのフック自体はしたことがあるのですが、線を書く部分がよく分からず、グラフィックボードに直接線画を・・・、とか思ったんですが、私には情報を追うことができませんでした。
一応締め切りますが、もし、似たような質問で調べる方がいた時に、ヒントが出ていれば、見た人が参考にするかもしれません。
とりあえずは、私は、お二方ありがとうございました。感謝感謝、で。
>線を書く部分がよく分からず
目的に合うか分かりませんが、マウスのフックを使って座標を取得くし
Xorを使ってディスクトップに好きな様に線を描画していた記憶があります。
デスクトップ上に文字列を表示(描画?)するには?
https://www.petitmonte.com/bbs/answers?question_id=7585
Mr.XRAYさんの 261_マウスカーソル位置に画像を表示
http://mrxray.on.coocan.jp/Delphi/plSamples/261_HookMouseEvent01.htm
ツイート | ![]() |