2009-03-18 13 views
1

私はwpfウィンドウの高さが2000で、実際のデスクトップの高さは約1000です。明らかに、ウィンドウの約半分はスクリーンから外れています。ウィンドウが画面の下に広がっていても、マウスはその領域に移動しません。私はこのコンテンツを画面外にしたい、マウスがその位置にある要素の上に置かれていれば、マウスがその上を移動して要素をクリックできるようにしたい。一部のコンテンツが絶対に画面外になければならないため、画面解像度を変更する必要はありません。これについてどうやって行くかわからない。C#の画面からマウスカーソルを移動する

答えて

4

カーソル区切りは、アプリケーションではなく、Windows自体によって行われます。私の知る限り、カーソルを画面の外に向ける方法はありません。

多くのゲームのやり方で、あなたが望むものをシミュレートすることができます。 Windowsのカーソルを描画せず、アプリケーションウィンドウにカスタムカーソルを描画します。実際のカーソル(描画されていない)を強制的にモニタの中央にとどまらせる。ユーザーが実際のカーソルを移動するたびに、アプリケーションのカーソルをそれに応じて移動し、実際のカーソルを画面の中央に移動します。

これはあなたが望むものの錯覚を与えますが、私はWPFがこれを処理できるとは思いません。

1

Windowsでは画面のカーソル位置がオフになっていません。私はマウスが画面の解像度に縛られていると思う。

0

と思います。 This programは、セカンダリコンピュータを余分なモニタとして使用できるようにします。マウスカーソルが置かれている座標を知らせるプログラムがいくつかあります。例えばAutoItは簡単にそれを行います。あなたはそれはあなたがマウスを置くcordinatesをお知らせします。このユーティリティが付属していたAutoItをインストール

enter image description here

。私がスクリーンキャプチャを取ったとき、マウスは表示されませんが、私はマウスが位置していたところに青い点を描画します。ここで、座標は710,1464です。今、私の画面解像度は1200 * 1920です(私のモニターは回転しています)。 AutoItの持つので、私はそれがその場所にマウスを移動することのAutoItプログラムを実行すると

enter image description here

ような何かをすることによって私のマウスのカーソルを配置することができています。この質問に対する答えは、マウスを1200以上右に動かすことができないためです。 つまり、MouseMove(2500,800)を実行するとマウスが1200,800に移動します。興味深い部分はどうなるのですかマウスを(2500,800)に移動できます! This programつまりMouseMove(2500,800)を実行すると、Autoitで動作し、実際にはマウスが他のコンピュータに移動します(maxivistaが動作していなければなりません)。 maxivistaは、画面の解像度以外でマウスを動かす方法があることを示しています

1

あなたがMaxiVistaのスクリーンショットを見ている場合は、デバイスマネージャを示すスクリーンショット見つけることができます:あなたは、彼らは単には、仮想ディスプレイアダプタを書いた見ることができるように

Device Manager http://www.maxivista.com/pics/screenshots/vista_devicemanager_en.gif

をそれ自身の表示サイズを提供する。したがって、ウィンドウには利用可能なサイズ、例えば、 2560x1600が可能で、すべてのウィンドウとマウスに対してこれらの境界を許可します。この仮想スクリーンの右側の部分を現在の実際のディスプレイアダプタに転送して、各物理デバイスに正しい部分が表示されるようにするのは、ディスプレイドライバの責任です。

+0

あなたの答えを受け入れることを誓います!私は別の賞金を始め、あなたにその点を申し訳ありません。 –

+0

オリバーは私にあなたに賞金を授与します:http://stackoverflow.com/questions/694730/why-is-set-as-startup-option-stored -in-the-suo-file-and-not-sln-fileは、スタックのオーバーフローが起こるとすぐに... –

関連する問題