Cacher une autre application [Résolu]

cs_0xYg3n3 115 Messages postés mardi 1 février 2005Date d'inscription 8 octobre 2007 Dernière intervention - 7 sept. 2005 à 12:06 - Dernière réponse : cs_0xYg3n3 115 Messages postés mardi 1 février 2005Date d'inscription 8 octobre 2007 Dernière intervention
- 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
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 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é 83 internautes ce mois-ci

Commenter la réponse de cs_coq
Meilleure réponse
cs_0xYg3n3 115 Messages postés mardi 1 février 2005Date d'inscription 8 octobre 2007 Dernière intervention - 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é 83 internautes ce mois-ci

Commenter la réponse de cs_0xYg3n3
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 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
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 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
cs_0xYg3n3 115 Messages postés mardi 1 février 2005Date d'inscription 8 octobre 2007 Dernière intervention - 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
cs_69chris 318 Messages postés jeudi 30 janvier 2003Date d'inscription 30 décembre 2005 Dernière intervention - 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
cs_0xYg3n3 115 Messages postés mardi 1 février 2005Date d'inscription 8 octobre 2007 Dernière intervention - 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
cs_0xYg3n3 115 Messages postés mardi 1 février 2005Date d'inscription 8 octobre 2007 Dernière intervention - 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
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 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
cs_0xYg3n3 115 Messages postés mardi 1 février 2005Date d'inscription 8 octobre 2007 Dernière intervention - 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
cs_0xYg3n3 115 Messages postés mardi 1 février 2005Date d'inscription 8 octobre 2007 Dernière intervention - 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
cs_0xYg3n3 115 Messages postés mardi 1 février 2005Date d'inscription 8 octobre 2007 Dernière intervention - 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.