Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取不属于我的应用程序的活动窗口?_C#_.net_Pinvoke - Fatal编程技术网

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。得到它现在的工作,谢谢。我会在我能接受的时候接受。对不起,接受答案花了这么长时间,现在就做。