当前位置:编程学习 > C#/ASP.NET >>

请问,如何得到最靠前窗口的名称

我一个程序,期间会弹出一些窗口,
请问:怎么得到弹出最前面的窗口的名称?
谢谢 --------------------编程问答-------------------- 试试api的 GetForegroundWindow得到句柄 --------------------编程问答-------------------- 没积分啊没积分 --------------------编程问答-------------------- --------------------编程问答-------------------- 这些窗口是本程序弹出来的吗?那你是要在什么情况下获得? --------------------编程问答--------------------


[DllImport( "User32.dll ")] 
static   extern   int   GetWindowText(IntPtr   handle,StringBuilder   text,int   MaxLen); 

调用 
StringBuilder   text   =   new   StringBuilder(len); 
int   i=GetWindowText(handle,text,len); 
--------------------编程问答--------------------
API方式

/// <summary>
        /// 
        /// </summary>
        /// <param name="hwnd"></param>
        /// <returns></returns>
        [DllImport("user32.dll", EntryPoint = "GetForegroundWindow")]
        public static extern IntPtr GetForegroundWindow();

        public Form1()
        {
            InitializeComponent();

            IntPtr ip = GetForegroundWindow();
            if (ip != IntPtr.Zero)
            {
                //...............
            }
        }




如果是。Net程序自己的窗口使用如下属性:

Form ActiveFrm = Form.ActiveForm;
--------------------编程问答--------------------
引用 6 楼 isjoe 的回复:
API方式
C# code

/// <summary>
        /// 
        /// </summary>
        /// <param name="hwnd"></param>
        /// <returns></returns>
        [DllImport("user32.dll", EntryPoint = "GetForegroundW……
不错啊,牛人 --------------------编程问答--------------------
引用 4 楼 lei1988 的回复:
这些窗口是本程序弹出来的吗?那你是要在什么情况下获得?

是本程序的,要在一个label的Text属性,中得到最前窗口的Text --------------------编程问答--------------------
引用 6 楼 isjoe 的回复:
如果是。Net程序自己的窗口使用如下属性:
C# code
Form ActiveFrm = Form.ActiveForm;

我的意思就是本程序的窗口,阁下的意思,是不是就只需要这句代码,你的6楼回答中,上面那部分内容不需要了吗? --------------------编程问答--------------------
引用 6 楼 isjoe 的回复:
API方式

C# code


/// <summary>
        /// 
        /// </summary>
        /// <param name="hwnd"></param>
        /// <returns></returns>
        [DllImport("user32.dll", EntryPoint = "GetF……


牛人  --------------------编程问答--------------------
引用 6 楼 isjoe 的回复:
API方式
C# code

/// <summary>
        /// 
        /// </summary>
        /// <param name="hwnd"></param>
        /// <returns></returns>
        [DllImport("user32.dll", EntryPoint = "GetForegroundW……


不错 的方法   没用过 一直做BS --------------------编程问答--------------------
引用 6 楼 isjoe 的回复:
API方式

C# code

/// <summary>
        /// 
        /// </summary>
        /// <param name="hwnd"></param>
        /// <returns></returns>
        [DllImport("user32.dll", EntryPoint = "GetFor……

请问,6楼回答的,是只要下面那部分,还是把下面那部分添加到if里面 --------------------编程问答-------------------- 我主要是想得到这样的效果:
无论何时,只要最前窗口,发生了变化,label就显示最前窗口的名称(包括当弹出多个窗口的时候,我在窗口间换来换去,改变最靠前窗口),反正label就显示最前窗口的名称,无论是通过何种方式, --------------------编程问答--------------------
引用 13 楼 sdvrsrv5 的回复:
我主要是想得到这样的效果:
无论何时,只要最前窗口,发生了变化,label就显示最前窗口的名称(包括当弹出多个窗口的时候,我在窗口间换来换去,改变最靠前窗口),反正label就显示最前窗口的名称,无论是通过何种方式,

等待答案
具体该怎么写 --------------------编程问答-------------------- 等待答案 --------------------编程问答-------------------- 以前vb有个ZOrder,现在.net里似乎没有给出访问窗口z顺序的方法了,看看这几个WinAPI
http://blog.csdn.net/hhf383530895/archive/2009/11/24/4862179.aspx

GetTopWindow是不是你要的 --------------------编程问答--------------------
引用 13 楼 sdvrsrv5 的回复:
我主要是想得到这样的效果:
无论何时,只要最前窗口,发生了变化,label就显示最前窗口的名称(包括当弹出多个窗口的时候,我在窗口间换来换去,改变最靠前窗口),反正label就显示最前窗口的名称,无论是通过何种方式,

用6楼前面部分就可以了吧,得到当前窗口的句柄,再通过句柄得到窗口名称
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,