StagiaireMsl
Messages postés43Date d'inscriptionmardi 19 avril 2011StatutMembreDernière intervention22 avril 2013
-
10 juil. 2012 à 14:50
StagiaireMsl
Messages postés43Date d'inscriptionmardi 19 avril 2011StatutMembreDernière intervention22 avril 2013
-
17 juil. 2012 à 16:37
Bonjour a tous,
Après quelques recherches non fructueuse sur le site, je viens m'adresser a vous.
Je conçois un soft qui tourne sur un écran tactile.
Pour que l'utilisateur puisse écrire quelque chose je lance le clavier visuel :
Process ClavierV; //En variable globale
private void frmParametre_Load(object sender, EventArgs e)
{
//Ouverture du clavier visuel
ClavierV = Process.Start("osk.exe");
}
Le clavier se lance bien et lorsque je fais : Ctrl + Shift + Echap et que je regarde dans les processus,
un petit processus nommé : msswchx.exe se lance.
Jusque la tout est normal.
Lorsque que mon programme s’arrête, je fais :
private void frmParametre_FormClosing(object sender, FormClosingEventArgs e)
{
//On ferme le clavier visuel
try { ClavierV.Kill(); }
catch { }
//Le try est la si jamais le clavier visuel à été fermé manuellement
}
Lorsque je ferme le clavier visuel en cliquant sur la croix de sa fenêtre, ce processus, s’arrête. (Avant la fermeture du programme)
En revanche, si je ne l'ai pas fermé manuellement avant, ce fameux processus : msswchx.exe ne se ferme pas et dans un de mes autres
programmes, je ne peux pas "Accédez au port COM1" -_-
C'est assez génant, avez vous une idée pour fermer proprement ce processus ?
StagiaireMsl
Messages postés43Date d'inscriptionmardi 19 avril 2011StatutMembreDernière intervention22 avril 20133 10 juil. 2012 à 16:36
Oui c'est une brillante solution ^^
Par contre, il va y avoir conflit si je veux lancer mes deux programmes en même temps :s
...
Alors, j'ai effectuer des recherche de mon coté et j'ai trouvé que le msswchx est : Microsoft On-Screen Keyboard program.
Donc normal qu'il se lance avec le clavier visuel, le problème est qu'il ne se ferme pas quand je fais un process.Kill ou autre :s
Il se ferme seulement quand je clique sur la croix su clavier visuel...
Ben je vais jouer le bourrin avec ta méthode je crois ^^
Enfin s'il y a pas d'autre solution ^^
Merci :)
Celui qui n expérimente rien ne se trompe qu'une seule fois.
StagiaireMsl
Messages postés43Date d'inscriptionmardi 19 avril 2011StatutMembreDernière intervention22 avril 20133 17 juil. 2012 à 16:37
Salut Louis14
Je n'ai jamais utilisé WM_CLOSE ...
Alors j'ai un peu chercher sur le forum en mettant dans la recherche WM_CLOSE, et je n'ai pas vraiment trouvé d'exemple exploitable
J'ai un peu compris le fonctionnement avec ce code :
public const int SC_CLOSE = 0xF060;
public const int WM_SYSCOMMAND = 0x0112;
private bool _closeClick;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if(m.Msg WM_SYSCOMMAND && (int)m.WParam SC_CLOSE)
this._closeClick = true;
base.WndProc(ref m);
}
Mais rien sur l'envoie de la fermeture à moins que ce soit base.WndProc
Pourrais tu m'en dire un peu plus ? Cette solution m'a l'air intéressante!
PS : Normal que lorsque je tape WM_CLOSE dans la recherche csharpfr, qu'il y ai un livre dénomé porno dans la section livre ? xD le rapport? (pas osé cliquer ^^)
Celui qui n expérimente rien ne se trompe qu'une seule fois.