×
Siemens Industry Online Support
Siemens AG
Type de contribution : FAQ ID de la contribution : 415808, Date de la contribution : 20/01/2015
(4)
Évaluer

Comment afficher en premier plan une fenêtre d’un autre programme dans WinCC ?

  • Contribution
  • Concerne le/les produits(s)
Vous pouvez déterminer l’handle d’une fenêtre avec la fonction API Windows FindWindow.

Exemple 1
Vo
us voulez mettre en avant-plan une fenêtre de Microsoft Access:

HHWND Handle= NULL;
Handle= FindWindow("OMAIN",NULL);
if(Handle)
{
    ShowWindow(Handle, SW_MINIMIZE); 
    ShowWindow ( Handle, SW_SHOWNORMAL );
    SetForegroundWindow(Handle);    
}
else
    ProgramExecute("C:\\MSOffice.97\\Office\\ACCESS.EXE");

Si la fenêtre n’est pas trouvée, Microsoft Access est alors redémarré.

Notes sur la fonction FindWindow:
   

  • Le premier paramètre est la Classe de la fenêtre.
    On peut déterminer la Classe à l’aide d’un compilateur (par exemple SPY de Visual C++) .   
  • Le second paramètre est le Titre de la fenêtre (barre de titre). On peut y indiquer un des deux paramètres ou les deux combinés.  Dans cet exemple la commande ressemble à cela :
      
    Handle=Find
    Window(NULL,"Microsoft Access -");

Si on cherche le nom de la fenêtre, il faut savoir que dans certains programmes le titre dépend de la langue et qu’éventuellement cette fenêtre n’existe pas dans une autre langue. La classe est toujours indépendante de la langue.
Si on connaît la classe de la fenêtre, cette procédure peut également être utilisée pour d’autres applications.
Ce tableau donne les noms des classes de fenêtre pour certaines applications : 
  

Application Nom de la Classe dans Windows 2000/XP Nom de la Classe dans Windows 7
Access OMAIN OMAIN
Internet Explorer IEFrame IEFrame
Microsoft Excel XLMAIN XLMAIN
Microsoft Word OpusApp OpusApp
MS-DOS Input Prompt ConsoleWindowClass ConsoleWindowClass
Notepad Notepad Notepad
Paint MSPaintApp MSPaintApp
Calculator SciCalc CalcFrame
Windows Explorer ExploreWClass CabinetWClass
SIMATIC Manager s7tgtopx s7tgtopx
WinCC V4.x Control Center MCPFrameWndClass ---
WinCC V5.x / V6.x / V7.x WinCC Explorer WinCCExplorerFrameWndClass WinCCExplorerFrameWndClass
WordPad WordPadClass WordPadClass
Tableau 01
 
Exemple 2
WinCC V5.x / WinCC V6.x / WinCC V7.x: mettre WinCC Explorer en avant-plan

HWND Handle= NULL;
Handle= FindWindow("WinCCExplorerFrameWndClass",NULL);
if(Handle)
{
   ShowWindow(Handle, SW_MINIMIZE);
   // Cette saisie n'est nécessaire que pour Windows 2000
   //(ou pour Windows XP et Windows 7 dans le cas de WinCC V6.x / WinCC V7.x)

   ShowWindow ( Handle, SW_SHOWNORMAL );
   SetForegroundWindow(Handle);
}

Exemple 3
WinCC V4: mettre Control Center en avant-plan

HWND Handle= NULL;
Handle= FindWindow("MCPFrameWndClass",NULL);
if(Handle)
{
   ShowWindow ( Handle, SW_SHOWNORMAL );
   SetForegroundWindow(Handle);
}

Mots-clés
Astuces de programmation

Aide pour la statistique
Cette fonction permet de délivrer les identifiants des résultats de la recherche selon la quantité souhaitée (format .txt).

Générer une liste
Copier l'URL
Afficher cette page dans le nouveau design
Poste de commande mySupport