質問
マウスを上に動かし続ける小さなプログラムを作成するにはどうすればよいでしょうか?
知りたい人のために言っておきますが、これは使い捨ての小さなものです。スター・ウォーズ ザ・フォース・アンリーシュドをプレイしています。コンソール版では、右スティックを上に押し続けます。の中に 悪い PC のコンソール ポートでは、マウスを使用しています。私のイライラを理解していただけるかもしれません。
解決
SetCursorPos
は、アンマネージコードでこれを行います。私は同じことを行うには、.NETメソッドがあるかどうかわからないが、あなたは常にCOM相互運用機能を使用することができます。それはUser32.dllのであります。
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
少しGoogleは SetCursorPosとしてこれを生成します.NET の
の等価System.Windows.Form.Cursor.Position
他のヒント
これは機械的プログラミングの問題であり、CSharp の問題ではありません。
- 2枚目のマウスを接続し、安価な可変速度コードドリルを取得する必要があります。
- ドリルにサンディングドラムを置き、ストライプ紙で包み、最低速度に設定します。
- 次に、ドリルの非回転ボディにブラケットを置き、センサーを回転する縞模様の紙の近くにマウスを保持します。
- マウスがUPの動きをシミュレートする正しい方法に直面していることを確認してください。
プログラムを実行するには、ドリルが接続されている電源タップの電源スイッチを入れます。
編集:よりポータブルなコードが必要な場合は、コードレス ドリルを使用してください。電池は付属しません。
私はゲームを知らないが、内部のウィンドウはマウスの移動のためのメッセージを送信します。これらは、アプリケーションへのSendMessage()
API呼び出しによって送信されます。 C#では、あなたがイベントを送信/作成することによって、直接または多分同じのWin32 APIを使用する必要がありますどちらか?しかし、他の実行中のアプリケーションにイベントを送信する方法がわからない。
のSendMessage()のWin32 API呼び出しは次のようになります:
[DllImport("user32.dll")]
public static extern int SendMessage(
int hWnd, // handle to destination window
uint Msg, // message
long wParam, // first message parameter
long lParam // second message parameter
);
あなたはコントローラーやジョイスティックを使用してみましたか。