-2

更新された完全なコード

フォーカスされたウィンドウのウィンドウ ハンドルを返す単純なコード サンプルを試していますが、テキスト ボックスの値を取得できないようです。

class ApplicationExecution
{
    public static bool MyWindow()
    {
        var activatedHandle = GetForegroundWindow();
        if (activatedHandle == IntPtr.Zero)
        {
            return false;       // No window is currently activated
        }

        var procId = Process.GetCurrentProcess().Id;
        int activeProcId;
        GetWindowThreadProcessId(activatedHandle, out activeProcId);


        return activeProcId == procId;
    }


    [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
    private static extern IntPtr GetForegroundWindow();

    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    private static extern int GetWindowThreadProcessId(IntPtr handle, out int processId);

}

という感じでアクセスしてみました

ApplicationExecution esma = new ApplicationExecution();
textbox1.text = esma;

としても

 textBox1.Text = Convert.ToString(ApplicationsWPF.ApplicationExecution.MyWindow());

関数が返すはずの GetForegroundWindow 値ではなく、true または false のいずれかを取得します。

4

4 に答える 4

4

メソッドとして定義MyWindowしたstaticため、クラスを介してアクセスする必要があります。

textbox1.Text = ApplicationExecution.MyWindow().ToString();

static (C# リファレンス)を参照してください。

于 2013-06-07T00:25:08.933 に答える
2

MyWindow を非静的にするか、次のいずれかを行います。

textbox1.Text =esma.MyWindow();

また:

textbox1.Text=ApplicationExecution.MyWindow();

しかし、今説明したように、ウィンドウ名の文字列が必要です。

あなたの穴 MyWindow() メソッドを削除し、それをプライベート文字列 GetActiveWindowTitle() メソッドに置き換えます。

次に書く:

textbox1.Text=esma.GetActiveWindowTitle();
于 2013-06-07T00:20:31.333 に答える
1

メソッドを としてマークしたためですstatic。インスタンスを作成する必要はありません。

textbox1.Text = ApplicationExecution.MyWindow().ToString();
于 2013-06-07T00:24:40.170 に答える
0

元の質問を更新すると、 の署名を変更してMyWindowを返し、int次に の値を返すことができactiveProcIdます。

class ApplicationExecution
{
    public static int MyWindow()
    {
        ....

        return activeProcId;
    }

    ....
}

この変更を行った後、わかりやすくするためにメソッドの名前を MyProcessId に変更することもできますが、これは試しているサンプルにすぎないとおっしゃっていました。

于 2013-06-07T00:41:34.063 に答える