C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: マウスジェスチャでの表示


(過去ログ 16 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■5844 / inTopicNo.1)  マウスジェスチャでの表示
  
□投稿者/ ak (1回)-(2007/07/24(Tue) 17:59:32)

分類:[C#] 

2007/07/24(Tue) 18:00:06 編集(投稿者)
2007/07/24(Tue) 18:00:03 編集(投稿者)

はじめまして。
akといいます。

C#の超初心者なのですが質問があります。

プログラムを実行したときに、実行直後にはフォームを表示させず、マウスでの何かしらのジェスチャをしたときに、そのジェスチャをした場所にフォームを表示させる(呼び出す)ことはできるのでしょうか?

ネットでnrlaunchというランチャーを発見したのですが、これと似た感じの動作をしたいです。
http://lab.1000leaf.net/200611/000036.php

よろしくおねがいします。
引用返信 編集キー/
■5845 / inTopicNo.2)  Re[1]: マウスジェスチャでの表示
□投稿者/ 佐久 (1回)-(2007/07/24(Tue) 18:43:36)
> プログラムを実行したときに、実行直後にはフォームを表示させず、マウスでの何かしらのジェスチャをしたときに、そのジェスチャをした場所にフォームを表示させる(呼び出す)ことはできるのでしょうか?

一応グローバルマウスフックを使えば可能です。

プログラム実行時にフォームを表示しないようにしておいて、
マウスフックのイベントで指定したジェスチャの動きをしているかを判定させて
フォームを表示するようにすればいいです。

引用返信 編集キー/
■5846 / inTopicNo.3)  Re[1]: マウスジェスチャでの表示
□投稿者/ オショウ (12回)-(2007/07/24(Tue) 19:15:22)
> プログラムを実行したときに、実行直後にはフォームを表示させず、マウスでの何かしらのジェスチャをしたときに、そのジェスチャをした場所にフォームを表示させる(呼び出す)ことはできるのでしょうか?
>
> ネットでnrlaunchというランチャーを発見したのですが、これと似た感じの動作をしたいです。
> http://lab.1000leaf.net/200611/000036.php

  http://codezine.jp/a/article.aspx?aid=382

  .NET でのマウスジェスチャを実装したものです。

  参考までに。

以上。
引用返信 編集キー/
■5853 / inTopicNo.4)  Re[2]: マウスジェスチャでの表示
□投稿者/ ak (2回)-(2007/07/24(Tue) 22:26:04)
佐久さん、オショウさん返信ありがとうございます!!


マウスフックについて調べてみたのですが、
グローバルマウスフックはC#ではできないみたいです。

「グローバル フックは .NET Framework ではサポートされていない
Microsoft .NET Framework ではグローバル フックを実装できません。グローバル フックをインストールするには、フックに、ネイティブ ダイナミック リンク ライブラリ (DLL) エクスポートが必要です。この DLL エクスポートにより、有効な、一貫した関数の呼び出しが必要な別のプロセスにフック自身を挿入します。DLL エクスポートは、.NET Framework でサポートされていません。関数ポインタは動的にビルドされるプロキシであるため、マネージ コードには関数ポインタの一貫した値の概念がありません。」
(引用URL:http://support.microsoft.com/kb/318804/ja)


オショウさんの教えてくれたページのマウスジェスチャのように、ウィンドウ内で押された状態でならウィンドウの外でもマウスの動きを検知してくれるようですが、ウィンドウの外で何かしらのジェスチャをしてその場所にフォームを呼び出すことはできるのですか?


知識がまだ全然不十分なので、間違った発言をしていたらすいません。

よろしくお願いします。

引用返信 編集キー/
■5864 / inTopicNo.5)  Re[3]: マウスジェスチャでの表示
□投稿者/ 佐久 (2回)-(2007/07/25(Wed) 01:03:13)
> マウスフックについて調べてみたのですが、
> グローバルマウスフックはC#ではできないみたいです。
>
> 「グローバル フックは .NET Framework ではサポートされていない
> Microsoft .NET Framework ではグローバル フックを実装できません。グローバル フックをインストールするには、フックに、ネイティブ ダイナミック リンク ライブラリ (DLL) エクスポートが必要です。この DLL エクスポートにより、有効な、一貫した関数の呼び出しが必要な別のプロセスにフック自身を挿入します。DLL エクスポートは、.NET Framework でサポートされていません。関数ポインタは動的にビルドされるプロキシであるため、マネージ コードには関数ポインタの一貫した値の概念がありません。」
> (引用URL:http://support.microsoft.com/kb/318804/ja)

最初に一応って書いたのは上の内容があるからです。

私も以前グローバルフックを実装したくて調べたことがあるのですが、
何故かローレベルフック(WH_MOUSE_LL)は動きます。

C#の知識だけでどうこうすることは出来ないので、結構難しいですが、
サンプルもgoogleで検索すれば見つかりますのでがんばってくださいな。
(C#で書かれている物もありますよ!)
引用返信 編集キー/
■5869 / inTopicNo.6)  Re[3]: マウスジェスチャでの表示
□投稿者/ オショウ (13回)-(2007/07/25(Wed) 09:58:13)
> オショウさんの教えてくれたページのマウスジェスチャのように、ウィンドウ内で押された状態でならウィンドウの外でもマウスの動きを検知してくれるようですが、ウィンドウの外で何かしらのジェスチャをしてその場所にフォームを呼び出すことはできるのですか?

  エクスプローラとかにインジェクションしてマウスジェスチャでファイルの操作
  を行うと言うソフトは既にあるようですので、後は応用の範囲でしょう。

  マウスジェスチャのサンプルには、WIn32版もありましたので、グローバルフック
  をWin32DLLで実装できれば、常駐ソフトとしてデスクトップを監視し、マウスジ
  ェスチャでいろいろ操作することができるでしょう。

以上。


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -