C# 如何找出上面的表格?

C# 如何找出上面的表格?,c#,winforms,compact-framework,C#,Winforms,Compact Framework,在Compact Framework中,如何确定向用户显示的表单是哪个表单(即使不是全屏) 有什么想法吗?如果我找到答案(没有人响应),我将继续查找并发回。看起来您可以调用GetForegroundWindow来查找当前窗口。示例来自: GetForegroundWindow()应该可以工作。另外,您也可以使用OpenNetCF,它是Win CE API的.NET CF包装器。 public ApplicationState AppState { get { Pr

在Compact Framework中,如何确定向用户显示的表单是哪个表单(即使不是全屏)


有什么想法吗?如果我找到答案(没有人响应),我将继续查找并发回。

看起来您可以调用GetForegroundWindow来查找当前窗口。

示例来自:

GetForegroundWindow()应该可以工作。另外,您也可以使用OpenNetCF,它是Win CE API的.NET CF包装器。
public ApplicationState AppState
{
    get
    {
        Process[] processCollection = Process.GetProcessesByName(ProcessName);
        if(processCollection != null && processCollection.Length  >= 1 && 
            processCollection[0] != null)
        {
            IntPtr activeWindowHandle = Win32.GetForegroundWindow();
            //Optional int ProcessID;
            //Optional Win32.GetWindowThreadProcessId(GetForegroundWindow(),out ProcessID)
            foreach(Process wordProcess in processCollection)
            {
                //Optional if( ProcessID == wordProcess.Id ) return ApplicationState.Focused;
                if(wordProcess.MainWindowHandle == activeWindowHandle)
                {
                    return ApplicationState.Focused;
                }
            }
            return ApplicationState.Running;
        }
        return ApplicationState.NotRunning;
    }
}