C# 如何获取不属于我的应用程序的活动窗口?
如何获取用户当前关注的窗口标题? 我正在制作一个与另一个窗口一起运行的程序,如果用户没有关注该窗口,我发现我的程序没有理由继续更新 那么,如何确定用户关注的窗口呢 我确实试过调查C# 如何获取不属于我的应用程序的活动窗口?,c#,.net,pinvoke,C#,.net,Pinvoke,如何获取用户当前关注的窗口标题? 我正在制作一个与另一个窗口一起运行的程序,如果用户没有关注该窗口,我发现我的程序没有理由继续更新 那么,如何确定用户关注的窗口呢 我确实试过调查 [DllImport("user32.dll")] static extern IntPtr GetActiveWindow(); 但我似乎只能在窗口是我的应用程序的一部分时使用它,而不是 用于检索聚焦窗口的句柄并获取窗口标题 [ DllImport("user32.dll") ] static extern int
[DllImport("user32.dll")]
static extern IntPtr GetActiveWindow();
但我似乎只能在窗口是我的应用程序的一部分时使用它,而不是 用于检索聚焦窗口的句柄并获取窗口标题
[ DllImport("user32.dll") ]
static extern int GetForegroundWindow();
[ DllImport("user32.dll") ]
static extern int GetWindowText(int hWnd, StringBuilder text, int count);
static void Main() {
StringBuilder builder = new StringBuilder(255) ;
GetWindowText(GetForegroundWindow(), builder, 255) ;
Console.WriteLine(builder) ;
}
检查此代码:
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
private string GetActiveWindowTitle()
{
const int nChars = 256;
StringBuilder Buff = new StringBuilder(nChars);
IntPtr handle = GetForegroundWindow();
if (GetWindowText(handle, Buff, nChars) > 0)
{
return Buff.ToString();
}
return null;
}
您是否阅读了该函数的文档?如果是的话,什么部分不清楚?如果没有,为什么不呢?出于某种原因,这将是建设者的长度将是0。得到它现在的工作,谢谢。我会在我能接受的时候接受。对不起,接受答案花了这么长时间,现在就做。