OVH Cloud OVH Cloud

focus application

1 réponse
Avatar
manu l.
Bonjour,

Je cherche à lancer une application, puis à lui passer une série de
combinaison de touches comme suit :

...

Process proc = new Process() ;
string nomProg = "notepad.exe" ;

proc.StartInfo.FileName = nomProg ;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized ;
proc.Start() ;
SendKeys.SendWait("{F5}") ;
proc.Close() ;

...

Notepad est bien lancé par ce bout de code, mais il n'a pas le focus ! Par
conséquent l'envoi de F5, au mieux part dans la nature !

Comment faire pour lui passer le focus. J'ai cherché avec soin, je ne vois
pas comment le faire en CSharp.

J'ai besoin de votre aide.

Merci d'avance.

Manu L.

1 réponse

Avatar
manu l.
Bonjour à tout le monde,

J'ai trouvé ceci dans la MSDN Library, sous SendKeys :

"Note Because there is no managed method to activate another application,
you can either use this class within the current application or use native
Windows methods, such as FindWindow and SetForegroundWindow, to force focus
on other applications."

Voici les définitions de ces deux méthodes inspirées d'après www.pinvoke.net
:

[DllImport("user32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string
lpWindowName) ;

[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd) ;

Il va de soi que l'exemple cité ci-dessous, n'était qu'un exemple et pas ce
que je cherchais à faire par programme.

Bonne journée à tous.

Manu L.

"manu l." a écrit dans le message de news:
437a124d$0$1158$
Bonjour,

Je cherche à lancer une application, puis à lui passer une série de
combinaison de touches comme suit :

...

Process proc = new Process() ;
string nomProg = "notepad.exe" ;

proc.StartInfo.FileName = nomProg ;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized ;
proc.Start() ;
SendKeys.SendWait("{F5}") ;
proc.Close() ;

...

Notepad est bien lancé par ce bout de code, mais il n'a pas le focus ! Par
conséquent l'envoi de F5, au mieux part dans la nature !

Comment faire pour lui passer le focus. J'ai cherché avec soin, je ne vois
pas comment le faire en CSharp.

J'ai besoin de votre aide.

Merci d'avance.

Manu L.