Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Donner le focus à une application externe [ Archives / Au secours ] (Le_proprio_de_mykeyes)

dimanche 16 avril 2006 à 02:19:34 | Donner le focus à une application externe

Le_proprio_de_mykeyes

Je m'explique: j'ai mon application principale "Windows Controller" qui fait Process.Start("FCSCtrl.exe") et qui stocke le Process dans fcsConsoleProcess. (FCS = Fast Console Script"). Je voudrais, lorsqu'on clique sur le menu, que ca focus sur la fenêtre de la console FCS. je sais qu'on peut utiliser HasExited pour vérifier mais je ne trouve pas comment donner le focus à cette fenêtre . Est-ce que qqun peut m'aider? Merci d'avance

dimanche 16 avril 2006 à 11:55:40 | Re : Donner le focus à une application externe

coq

Administrateur CodeS-SourceS
Salut,

Avec la méthode SetWindowPos de l'API Win.


/*
coq
MVP Visual C#
*/

dimanche 16 avril 2006 à 11:58:35 | Re : Donner le focus à une application externe

coq

Administrateur CodeS-SourceS
Réponse acceptée !

Exemple :
NativeMethods.SetWindowPos(
    new HandleRef(this.fcsConsoleProcess, this.fcsConsoleProcess.MainWindowHandle),
    NativeMethods.HWND_TOP,
    0,
    0,
    0,
    0,
    NativeMethods.SWP_NOMOVE | NativeMethods.SWP_NOSIZE
    );




Avec la classe NativeMethods définie comme ceci :
------
using System;
using System.Runtime.InteropServices;

internal class NativeMethods
{
    private NativeMethods()
    {
    }

    static NativeMethods()
    {
        NativeMethods.HWND_TOP = new HandleRef(null, IntPtr.Zero);
    }

    public static readonly HandleRef HWND_TOP;

    public const int SWP_NOSIZE = 0x0001;
    public const int SWP_NOMOVE = 0x0002;

    [DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
    public static extern bool SetWindowPos(
        HandleRef hWnd,
        HandleRef hWndInsertAfter,
        int X,
        int Y,
        int cx,
        int cy,
        int uFlags
        );
}

------


/*
coq
MVP Visual C#
*/


dimanche 16 avril 2006 à 20:07:43 | Re : Donner le focus à une application externe

Le_proprio_de_mykeyes

C'est en plein ça merci à toi Coq

dimanche 16 avril 2006 à 23:05:00 | Re : Donner le focus à une application externe

Lutinore

Administrateur CodeS-SourceS

Coq, à ton avis c'est mieux d'utiliser SetWindowPos ou SetForegroundWindow ?


dimanche 16 avril 2006 à 23:44:37 | Re : Donner le focus à une application externe

coq

Administrateur CodeS-SourceS
En fait je ne sais pas trop quoi penser sur ce coup là.
La seule différence notable à laquelle je pense est la différence de comportement si l'application à auparavant utiliser LockSetForegroundWindow : avec SetWindowPos, la fenêtre passera au dessus sans prendre le focus, alors qu'avec SetForegroundWindow elle se contentera de "clignoter" en barre des tâches sans changer de z-order.
Mais je ne suis pas complètement au point côté API Win, j'ai probablement rater d'autre subtilités (priorités d'accès aux ressources, etc etc)

Donc j'aurais tendance a privilégier SetWindowPos, juste parce que j'oublie toujours l'existence de SetForegroundWindow :p



/*
coq
MVP Visual C#
*/

lundi 17 avril 2006 à 00:52:43 | Re : Donner le focus à une application externe

Lutinore

Administrateur CodeS-SourceS

Je me suis demandé quel était l'avantage de l'une de ces fonctions par rapport à l'autre sans vraiment trouver.. Je te remercie de ta réponse. : )




Cette discussion est classé dans : application, process, focus, donner, externe


Répondre à ce message

Sujets en rapport avec ce message

Application multi form [ par LuckyLuck ] Bon ben voilà, j'ai fait une application qui est en fait un form, qui crée une seconde classe(le deuxième form) et qui l'affiche. Tt va bien, sauf que Executer un prgm externe [ par Virtua747 ] J'ai chercher dans le forum et je trouve partout que c'est System.Diagnostics.Process.Start(Path,Arg);Mon problème est que Process est inconnu dans Di Lancer une application externe dans un mdi form [ par Tsu91 ] Bonjour,Je voudrais savori s'il est possible de lancer un prgramme windows, dans un projet c# dans un form MDI ?Je voudrais lancer cmd.exe par exemple Bouton OK externe [ par vxr888 ] J'aimerais activer un bouton OK externe à mon application (c'est-à-dire faisant partie d'une autre application) mais en l'activant via la mienne.Quelq Appel application externe [ par Ninounette ] Salut à tous!Je dispose d'une application qui, après avoir fait son travail, souhaite en appeller une autre (via l'exe de cette dernière).Ces deux app Gérer une apllication externe (Process) [ par sOuRisoOo ] Bonjour,Je voulais savoir comment je peut faire en C# pour pouvoir: - démarrer une application externe à mon programme - la contrôler (gestion des e Petit Probleme [ par MorpionMx ] Bonjour, Je développe une application qui detecte quand internet explorer est lancé, le but etant de pouvoir le controler comme une instance de l'obj Lancer une application... [ par Yandroide ] Salut, Je voudrais pouvoir lancer une appli externe à mon application. Je réussi à le faire avec Process.start... Mon problème est de pouvoir afficher contrôle du clavier [ par Yandroide ] salut, J'ai un bouton qui lance une application externe dès qu'on clique dessus. L'application externe devient la fenêtre active. Je voudrais pouvoir Executer une application sur un serveur [ par MayDuroc ] J'ai une application sur un poste client qui execute une application.    Process currentProcess = Process.GetCurrentProcess();&nbsp


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.