C#Windowsフォームプロジェクトでマウスの位置を設定する方法に関する多くの記事を見つけました。これをコンソールアプリケーションで実行したいと思います。C#Windowsコンソールアプリケーションからマウスの絶対位置を設定するにはどうすればよいですか?
ありがとう!
ヒント:コンソール内のテキストカーソルの位置を設定するだけのConsole.setCursorPositionではありません。
C#Windowsフォームプロジェクトでマウスの位置を設定する方法に関する多くの記事を見つけました。これをコンソールアプリケーションで実行したいと思います。C#Windowsコンソールアプリケーションからマウスの絶対位置を設定するにはどうすればよいですか?
ありがとう!
ヒント:コンソール内のテキストカーソルの位置を設定するだけのConsole.setCursorPositionではありません。
これは古いスレッドですが、完成させるために、この方法で行うことができます...
use System.Runtime.InteropServices;
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
それからあなたが望むどんな位置でも方法で例えば
SetCursorPos(500, 500);
コンソールアプリケーション内で、System.Windows.Forms.dllへの参照を追加し、これまでに読んだ他の手法を使用します。コンソールとWindowsexeの選択は、PEヘッダーにのみ影響します(おそらくデフォルトのコードテンプレートですが、それを簡単にハックすることができます)。コンソールexeで引き続き完全なフレームワークを使用できます。
制御するマウスは、コンソールではなくウィンドウにあります。
に割り当てるだけですCursor.Position
。
ただし、コンソールアプリケーションプロジェクトにはデフォルトでWinFormsへの参照が含まれていないため、コンソールアプリケーションではWinFormsアセンブリへの参照を追加する必要があります。
クラスにアクセスするには、System.Windows.Forms
とを追加する必要があります。後者を追加する必要があります。System.Drawing
Point
Chaz unswerの小さな間違いを修正しました:
using System.Runtime.InteropServices;
namespace ConsoleImageWorker
{
public static class Mouse
{
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
public static void SetCursorPosition(int x, int y)
{
SetCursorPos(x, y);
}
}
}
その後、どのクラスでも、次のように呼び出すことができます。
Mouse.SetCursorPosition(100, 100);