C#は、子ウィンドウのクラス名とウィンドウの子ウィンドウハンドルの父のタイトルを返します。

非常に古いプロジェクトコードあなたが書いた理由は、今思い出すことができません。

        [DLLIMPORT(" user32.dllの" )]
         パブリック 静的 にexternのIntPtrのFindWindow(文字列 lpClassName、ストリングlpWindowName)。
        [DLLIMPORT(" user32.dllの" )]
         公共 のextern  静的 INT getClassNameメソッド(のIntPtr hWndは、StringBuilderのlpClassName、INT nMaxCount)。
        [DLLIMPORT(" User32.dllの" )]
         パブリック 静的 にexternのIntPtr FindWindowEx(のIntPtr親のIntPtrチャイルド、文字列 strclass、ストリングFrmText)。
        [DLLIMPORT(" user32.dllの" )]
         パブリック 静的 にextern  INT EnumChildWindows(のIntPtr hWndParent、コールバックlpfn、INT lParamに)。
        パブリック デリゲート ブールコールバック(のIntPtr hwndは、int型のlParam);

        ///  <要約> 
        ///は見出しに応じてサブウィンドウの名前を返し、サブクラスの親ウィンドウハンドル
         ///  </要約> 
        ///  ます。<param name =「HwndName」> クラス名サブウィンドウ</ PARAM > 
        ///  ます。<param name = "WindowName"> タイトル親ウィンドウ</ param>の
        ///  <戻り値> </戻り値> 
        パブリック 静的のIntPtr FindWindowExOrde(文字列 HwndName、文字列WindowName)
        {
            IntPtr HwndId = 新しいのIntPtr();

            IntPtr HWND =のFindWindow(NULL 、WindowName)。

            IntPtr ChildHwndWindow = FindWindowEx(HWND、IntPtr.Zero、NULLNULL );

            VAR H = EnumChildWindows(HWND、(X、L)=>
            {

                StringBuilderのSB = 新規のStringBuilder(HwndName.Length + 2 )。

                もし(X!= IntPtr.Zero)
                {
                    getClassNameメソッド(X、SB、sb.Capacity)。

                    もし(HwndName.Equals(sb.ToString()))
                    {
                        HwndId = X。
                        返す ;
                    }
                }
                それ以外の
                    リターン はfalse ;

                返す ;
            }、0 );


            返すHwndIdを。



        }

 

おすすめ

転載: www.cnblogs.com/T-ARF/p/12159261.html