Rubrique : Script
Comment peut-on mettre en avant-plan la fenêtre d'un autre programme ?

Date: 25.04.2000

L'auteur, ainsi que les membres du Club des Utilisateurs de WinCC® déclinent toute responsabilité sur les scripts, leurs contenus; et plus généralement sur les informations diffusés dans la totalité des pages du site.

Vous pouvez établir une poignée vers une fenêtre avec la fonction API Windows FindWindow.

Exemple :

vous souhaitez ouvrir une fenetre Access au premier plan :

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

Si la fenetre Access n'est pas trouvee, une nouvelle session Access est lancee.

Remarque relative à la fonction FindWindow:
Le premier paramètre est la classe de la fenêtre.On peut retrouver la classe à l'aide d'un compilateur ( par exemple : Spy de Visual C++).
Le deuxième paramètre est le titre de la fenêtre ( bandeau de titre ). On peut renseigner l'un des deux paramètres ou bien les deux en combinaison. Dans cet exemple, l'instruction prend la forme suivante :Handle=FindWindow(NULL,"Microsoft Access -");

Lorsque l'on cherche le nom de la fenêtre, il faut veiller au fait que le titre dépend de la langue pour bon nombre de programmes. Par conséquent la fenêtre peut ne pas être trouvée dans une autre langue. La classe est toujours indépendante de la langue.
Si l'on connaît la classe de la fenêtre, on peut utiliser cette méthode également pour d'autres applications.Les noms des classes de fenêtres de quelques applications sont regroupés ci-dessous :

Application..................................................... Classe

Access........................................................... OMAIN
Internetexplorer 4.0........................................ IEFrame
Microsoft Excel97.......................................... XLMAIN
Microsoft Outlook97...................................... Rctrl_renwnd32
Microsoft PowerPoint97................................. PP97FrameClass
Microsoft Word97 .........................................OpusApp
Invite Msdos................................................. .ConsoleWindowClass
Netscape .......................................................Afx:400000:b:10008:6:947d03d8
Notepad........................................................ Notepad
Paint:.............................................................. MSPaintApp
Calculatrice.................................................... SciCalc
Explorateur Windows.................................... ExploreWClass
Simatic Manager ............................................s7tgtopx
WordPad......................................................WordPadClass

Automatismes et Systèmes Industriels

Les membres du Club WinCC sur le Ouebe
José Ros - Edito & Tips - jose.ros@asi-system.com
Benjamin Barletta - Web Designer - benjamin.barletta@asi-system.com
Jean-Louis Marin - Contacts - jean-louis.marin@asi-system.com