質問

って理解しようと ます。MainWindowHandle.

にMSDN;"のメインウィンドウのウィンドウが作成された時の処理が開始されます。初期化のその他の窓が開き、モーダル、典windowsが 最初のウィンドウのウィンドウに関連する過程では、メインウィンドウ." (追加)

ながら、デバッグであることに気が付きMainWindowHandleに変化させるようvalue...る僕を期待し、コンサルティング文書です。

確認の行動で作成したドなどをサポートアプリのタイマーをチェックをMainWindowHandleの"DEVENV"(Visual Studio)プロセス毎100ms.

ここでの興味深い部分はこの試験アプリ...

    IntPtr oldHWnd = IntPtr.Zero;

    void GetMainwindowHandle()
    {
        Process[] processes = Process.GetProcessesByName("DEVENV");

        if (processes.Length!=1)
            return;

        IntPtr newHWnd = processes[0].MainWindowHandle;

        if (newHWnd != oldHWnd)
        {
            oldHWnd = newHWnd;
            textBox1.AppendText(processes[0].MainWindowHandle.ToString("X")+"\r\n");
        }

    }

    private void timer1Tick(object sender, EventArgs e)
    {
        GetMainwindowHandle();
    }

きの値MainWindowHandle変更す(例えば)をクリックし、ドロップダウンメニュー内VS.

MainWindowHandleMystery

もっ誤解しています。

誰でもできるので光?

役に立ちましたか?

解決

@edg,

うことなんでしょうけれどにエラー MSDN.はっきりと見える、Relfector、"メインウィンドウの"チェック。純次のように記述されています。

private bool IsMainWindow(IntPtr handle)
{
    return (!(NativeMethods.GetWindow(new HandleRef(this, handle), 4) != IntPtr.Zero)  
             && NativeMethods.IsWindowVisible(new HandleRef(this, handle)));
}

です。純コードを列挙し、windows、とは言えず見えるウィンドウ(あるトップレベルウィンドウ)が一致します。

他のヒント

実際にプロセス。MainWindowHandleは取扱いの最前面ウィンドウでは、"メインウィンドウハンドル"

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top