Cacher une autre application [Résolu]

Messages postés
115
Date d'inscription
mardi 1 février 2005
Dernière intervention
8 octobre 2007
- 7 sept. 2005 à 12:06 - Dernière réponse :
Messages postés
115
Date d'inscription
mardi 1 février 2005
Dernière intervention
8 octobre 2007
- 7 sept. 2005 à 18:07
Bonjour, je souhaiterais cacher l'execution d'un autre programme.


Par exemple en appuyant sur un bouton de ma Dialog Box je peux


cacher l'execution de Winamp, Windows Media Player, autres.





Bref si quelqu'un sait comment faire.





Je sais faire mais seulement en C++ en récuprérant le handle de la fenêtre


et en la cachant, mais ça ne semble pas être la même chose en C#





Merci de vos éventuelles reponses
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
- 7 sept. 2005 à 13:05
3
Merci
Voici les déclarations :

ShowWindow :
[DllImport("user32.dll")]
private static extern bool ShowWindow(
IntPtr hWnd,
int nCmdShow
);

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

SW_HIDE :
private const int SW_HIDE = 0;

Y'a plus qu'à utiliser :-)
Tu peux aussi jeter un oeil à la classe Process quant à la récupération des handle de fenêtre à la place de FindWindow.

Cocoricoooooooo !!!!
coq
MVP Visual C#

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_coq
Meilleure réponse
Messages postés
115
Date d'inscription
mardi 1 février 2005
Dernière intervention
8 octobre 2007
- 7 sept. 2005 à 14:36
3
Merci
#define SW_HIDE 0
#define SW_SHOWNORMAL 1
#define SW_NORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
#define SW_MAXIMIZE 3
#define SW_SHOWNOACTIVATE 4
#define SW_SHOW 5
#define SW_MINIMIZE 6
#define SW_SHOWMINNOACTIVE 7
#define SW_SHOWNA 8
#define SW_RESTORE 9
#define SW_SHOWDEFAULT 10

J'ai trouvé ....

Merci cs_0xYg3n3 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_0xYg3n3
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
- 7 sept. 2005 à 12:25
0
Merci
Si, cela se fait de la meme facon en C# en utilisant l'interop.

Tu importes les dll avec l'attribut [DllImport()] puis te déclares les fonctions que tu souhaites utiliser.



Regarde dans la section API du site, il y a plein d'exemple d'utilisation de l'API windows.

Mx
Commenter la réponse de MorpionMx
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
- 7 sept. 2005 à 12:48
0
Merci
Salut,

En C++ tu utilises ShowWindow avec SW_HIDE ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq
Messages postés
115
Date d'inscription
mardi 1 février 2005
Dernière intervention
8 octobre 2007
- 7 sept. 2005 à 12:56
0
Merci
En C++ (si mes souvenirs sont bon) je faisais ShowWindow(FindWindow(param),SW_HIDE);



Et je cachais n'importe quel fenêtre.
Commenter la réponse de cs_0xYg3n3
Messages postés
318
Date d'inscription
jeudi 30 janvier 2003
Dernière intervention
30 décembre 2005
- 7 sept. 2005 à 13:00
0
Merci
Salut,



Pour les applis winform, il y a aussi la propriété ShowInTaskbar que tu mettre à false.



Chris

N'oubliez pas de cloturer votre post.
Commenter la réponse de cs_69chris
Messages postés
115
Date d'inscription
mardi 1 février 2005
Dernière intervention
8 octobre 2007
- 7 sept. 2005 à 13:02
0
Merci
Mx,



si j'ai bien compris tu veux que je déclares une fonction dans un dll,

par exemple CacherFenetre, et ensuite je fais quoi ?



Comment faire pour que l'application dont je souhaites cacher la fenêtre puisses appeller cette méthode ?



Ou alors j'ai rien compris :oops:
Commenter la réponse de cs_0xYg3n3
Messages postés
115
Date d'inscription
mardi 1 février 2005
Dernière intervention
8 octobre 2007
- 7 sept. 2005 à 14:08
0
Merci
class Class1

{

/// <summary>

/// The main entry point for the application.

/// </summary>

[STAThread]

static void Main(string[] args)

{

//

// TODO: Add code to start application here

//



Process[] processus = Process.GetProcessesByName("winamp");



if (processus != null && processus.Length==1)

{

if (ShowWindow(processus[0].Handle,SW_HIDE) == true)

{

Console.WriteLine("Succes");

}

else

{

Console.WriteLine("Echec");

}

}



}



[DllImport("user32.dll")]

private static extern bool ShowWindow(

IntPtr hWnd,

int nCmdShow

);



private const int SW_HIDE = 0;

}



Ca n'a pas l'air de marcher.



J'ai toujours false pour ShowWindow.

T'es sur qu'il manque pas le code pour cacher la fenêtre ?
Commenter la réponse de cs_0xYg3n3
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
- 7 sept. 2005 à 14:26
0
Merci
processus[0].Handle => processus[0].MainWindowHandle

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq
Messages postés
115
Date d'inscription
mardi 1 février 2005
Dernière intervention
8 octobre 2007
- 7 sept. 2005 à 14:30
0
Merci
Ok.



Comme quoi j'aurais du regarder la MSDN



Merci, je me coucherais encore moins bête grâce à toi :D
Commenter la réponse de cs_0xYg3n3
Messages postés
115
Date d'inscription
mardi 1 février 2005
Dernière intervention
8 octobre 2007
- 7 sept. 2005 à 14:34
0
Merci
Ah et comment pourrais je connaître la valeur des différentes constantes

comme SW_HIDE, SW_SHOW, SW_RESTORE ?
Commenter la réponse de cs_0xYg3n3
Messages postés
115
Date d'inscription
mardi 1 février 2005
Dernière intervention
8 octobre 2007
- 7 sept. 2005 à 18:07
0
Merci
Bizarre, mais j'ai l'impression que le réaffichage ne semble pas marcher.

Ou alors ce n'est pas la bonne valeur pour SW_SHOW.



Si quelqu'un sait ?
Commenter la réponse de cs_0xYg3n3

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.