2010-11-29 32 views
2

Dans Compact Framework, comment puis-je savoir quel formulaire est le formulaire affiché à l'utilisateur (même s'il n'est pas en plein écran)?Comment savoir quel formulaire est en haut?

Des idées? Je continuerai à chercher et à poster si je trouve une réponse (et personne ne répond).

+0

GetForegroundWindow() devrait fonctionner. jetez un oeil à http://msdn.microsoft.com/en-us/library/aa932991.aspx ou vous pouvez utiliser OpenNetCF qui est un wrapper .NET CF pour les API Win CE. – fardjad

Répondre

1

exemple de http://www.pinvoke.net/default.aspx/user32/GetForegroundWindow.html:

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; 
    } 
} 
0

On dirait que vous pouvez p/invoquer GetForegroundWindow pour trouver la fenêtre actuelle.