喫茶XRAYトップページ


[1602] カーソルの変更返信 削除
2008/4/13 (日) 07:47:52 鈴木商店
はじめまして。鈴木商店と申します。

Delphi(Free P6)を 最近 年取って(団塊の世代人)始めたのは良いのですが
何がどうなっているのかが 解りませんが DelphiのFreeに出会って
ぼちぼちと始めている所ですが 中々 前に進んでいません。
が ぜひ こんなの作って見たいなと言うのがあります。
マウスのカーソルを自分で作成したカーソルに変更して見たいと思い
あちこちと 探していましたら こちらのフック関数にたどり着きましたが
アレンジ方法が全く解りません 出来ましたら 作成のサンプルを
教えて頂けましたら嬉しいです 宜しくお願い致します。

他にも 探していたら 下記に色々なソフトを見つけました。
出来ましたら  **tp://afsoft.jp/program/down2/afmoucur103.exe の様な
カーソルを変更出来るようなサンプルコードを教えて頂ければ幸いです。
フックは下記にDLLを使ったコードも見つけましたが どうやって使うのか理解出来ませんでした。
**tp://www.geocities.co.jp/SiliconValley-Cupertino/5037/Software/Archive/Hook_Dll.lzh


[1603] Re:カーソルの変更返信 削除
2008/4/13 (日) 14:13:39 Mr.XRAY
▼ 鈴木商店さん,こんにちは.

提示されているアプリは確認していませんが,afmoucurで検索したら,
http://afsoft.jp/program/p06.html
http://afsoft.jp/program/img2/mousecur00.gif
というのがヒットしました.

この画像だと,現在のスクリーン上のマウスのところにある画像を表示する
ようですが,こんなのでしょうか.

マウスのフックは以下を参考にして下さい.
http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/260_HookKeyMouseEvent.htm

これで,マウスの位置に画像を表示するようにすればOKかと思います.
Windows2000,XPでしたら透明なフォームが作成できますから,
そのフォームに画像を表示して,フック開始と同時にこのフォームを
表示すればいいのではないかと思います.

フックは,プログラムの中でも難しいと思います.
頑張って下さい.

[1605] Re2:カーソルの変更返信 削除
2008/4/13 (日) 15:36:51 Mr.XRAY
サンプル作成してみました.
[261_マウスカーソル位置に画像を表示]です.下の画像は動作中のものです.
マウスクリック等で画像を変えたり,アニメにしたりしたら楽しいかも知れません.


[1604] Re:カーソルの変更返信 削除
2008/4/13 (日) 15:23:24 Mr.XRAY
▼ 鈴木商店さん

> マウスのカーソルを自分で作成したカーソルに変更して見たいと思い

システム全体でマウスカーソルを変更するのが希望でしたら,
わかりませんのであしからず.
自分のアプリだけであれば,ここのサンプルにもあります.

[1606] Re:カーソルの変更返信 削除
2008/4/13 (日) 17:36:56 Null
▼ 鈴木商店さん

横からご免なさい。

私には、フック関数は難し過ぎて解りませんが、こんな方法も有るようです。

もし宜しければ、添付ファイルを解凍後、試してみて下さい。

■添付ファイル 30.lzh

[1607] Re2:カーソルの変更返信 削除
2008/4/13 (日) 23:03:38 Mr.XRAY
▼ Nullさん,フォローどうもです.

多分そういうことなんでしょうね.ちょっと考えすぎたようです(ハハハッ!).
カーソルの変更の仕方がわからなくて,調べていたら,もしかしてフックと
いうものが必要だと思ったのかも知れませんね.

ところで,添付内のカーソル,大きくて分かり易くていいですね.


[1608] Re2:カーソルの変更返信 削除
2008/4/14 (月) 07:39:01 鈴木商店
Nullさん Mr.XRAYさん こんにちは。
複数レスまとめてレスする事を お許し下さい。

> 横からご免なさい。
> 私には、フック関数は難し過ぎて解りませんが、こんな方法も有るようです。
> もし宜しければ、添付ファイルを解凍後、試してみて下さい。


さっそくに 試してみました 中央ボタンをクリックすると
カーソルの形が変わりました。確認させて頂きましたよ・すごいです

カーソルの変更方法は解りました。ありがとうございます。
で 私が考えているのは下記のまとめてみました。

0)複数のソフト起動画面内でも カーソルの表示を変更したい。
2)また 左ボタンをクリックした場合のカーソルの表示切替
3)また 右ボタンをクリックした場合のカーソルの表示切替
4)また 左右ボタンをクリックした場合のカーソルの表示切替
5)また ホイールボタンを押した場合のカーソルの表示切替

と言う様な場合 どうしても複数のソフト窓を認識させる為にはフックが必要になるのかなと思いまして
なにか良い方法はないものかと・・・・ここにたどり着きました。
画像を表示すると言う260と261のサンプルを利用して
カーソルの表示のみ切り替えることは可能でしょうか。

また 他に良い方法はないものでしょうか。
つづいて宜しくお願いいたします。



[1609] Re3:カーソルの変更返信 削除
2008/4/14 (月) 09:47:49 Null
▼ 鈴木商店さん

> 2)また 左ボタンをクリックした場合のカーソルの表示切替
> 3)また 右ボタンをクリックした場合のカーソルの表示切替
> 5)また ホイールボタンを押した場合のカーソルの表示切替



procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   if Button   =  mbRight  then
      Label1.Caption := '右';

   if Button   =  mbLeft  then
      Label1.Caption := '左';

   if Button   =  mbMiddle  then
      Label1.Caption := '中';
end;

Delphi7 の「OnMouseDown」のヘルプを参考にして書きました。
私の能力では此処までが限界です。

Delphi(Free P6)は使った経験が無いので解りませんが、多分ヘルプ
も付属していると思います。  是非参考にして下さい。



[1610] Re3:カーソルの変更返信 削除
2008/4/14 (月) 22:30:00 Mr.XRAY
▼ 鈴木商店さん

[1608]読みましたが,いまいち,仕様が理解できません.
特定のアプリでマウスカーソルを変更したいのでしょうか.

可能であるかの可否はともかく.
余計なお世話でしょうが,そんなことはしない方がいいような気がし
ます(^_^;)

[1612] Re4:カーソルの変更返信 削除
2008/4/15 (火) 10:07:29 鈴木商店
▼ Mr.XRAYさん こんにちは。

> [1608]読みましたが,いまいち,仕様が理解できません.
> 特定のアプリでマウスカーソルを変更したいのでしょうか.

 
> 可能であるかの可否はともかく.
> 余計なお世話でしょうが,そんなことはしない方がいいような気がし
> ます(^_^;)


は〜い 画面動画キャプチャーでソフトの操作説明動画を作成したいので
マウスの左ボタン 右ボタン 同時ボタン ホイールボタンのクリック時に
カーソルの形を変更出来たらいいなと思いまして
画面表示出来ると視覚的に解り易いので 是非挑戦して
見たくて グローバルフックとやらの方が良い見たいなので
SetWindowsHookExを利用してDLL作成してHookした方が
良さそうな気配ですね。

参考動画を見つけましたのでどうぞ(こんな感じに出来たら)

http://video.nifty.com/cs/catalog/video_metadata/catalog_080330073823_1.htm

[1613] Re5:カーソルの変更返信 削除
2008/4/15 (火) 16:48:13 Mr.XRAY
▼ 鈴木商店さん

> http://video.nifty.com/cs/catalog/video_metadata/catalog_080330073823_1.htm

えっ〜とですね.
ダウンロードして確認しました.
新しいマウスカーソルを作成していますね.
マウスクリックでマウスカーソルを変更しているのでしょう.
[261]にシステムのマウスカーソルを非表示にするコードの説明もしておきました
から,[261]のリスト1のMstStrの値を判断して,システムのマウスカーソルを
自分で作成したマウスカーソルに変更すればいいですね.

でも[261]のコードで画像だけを変更する方法の方が私はいいと思いますねけどね.
システムのマウスカーソルを変更する必要がないんですから.
マウス操作によって画像の一部を描画するか,他の画像に入れ換えるだけですから.

たとえば右ボタンクリックだって,いつも同じカーソルではありません.
ウィンドウのサイズを変更するときは矢印になりますし,サイズ変更は十字,
スビリッターはI型,というふうに変化します.
これをいちいち作っていては大変です.システムが提供するものをそのまま
利用するほうが簡単です.

例のアプリでは,サイズ変更の時はデフォルトになってしまうようです.
常にじゃないんですね.[261]で画像を使用する方法なら常に画像が表示
されますよ.

どちらを採用するは,鈴木商店さんが決めて下さい.

まっ,いずれにしてもあまり感心しませんけどね.
ネットワーク越しに,他の人のパソコンの操作を見て指導するならともかく,
例のソフトの作者には悪いですが,右ボタンをクリックしたか,している
とかは,操作している本人がわかっていると思いますけどね.

遊び心としては面白いとは思いますよ.

では,この件は一件落着ということですね.



[1614] Re6:カーソルの変更返信 削除
2008/4/15 (火) 17:09:15 Mr.XRAY
▼ 鈴木商店さん

> 遊び心としては面白いとは思いますよ

失礼!!.

>ソフトの操作説明動画を作成したいので

ということなんですね.

> http://video.nifty.com/cs/catalog/video_metadata/catalog_080330073823_1.htm

もそういうことですか.
ならなおさら[261]の画像を追加する方法の方が私的にはいいと思います.
だって,操作説明ならば,尚更,システムカーソルはそのままの方がいい
のではないでしょうか?



INCM/CMT
Cyclamen v3.82