Fermer Proprement une Application [Résolu]

Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
- - Dernière réponse : melastis2
Messages postés
1
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010
- 27 mai 2010 à 16:33
Bonjour,

J'ai fais une application pour pocket PC, et pour le moment tout ce passe bien.
Sauf que le client "exige" que le pilotage du scanner soit fait par
un petit logiciel fourni avec le PDA. Bon jusque là tant mieux c'est ca de
moins à faire.

Ce petit logiciel tourne en font et lorsque l'on scan un code à barres il écrit
la valeur dans zone de texte de la forme active.

Ce logiciel utilise un port - COM6.

La où cela ce complique c'est que je dois faire tournée un modem, qui lui aussi
fonctionne sur le même port. D'après le service technique du fournisseur on ne
peut pas faire fonctionner l'un ou l'autre sur un autre port.


Donc j'ai commencé à chercher comment je pourrais faire.

1) Lister les ports et vérifié la propriété IsOpen - False pour tout mes port.

2) Ouvrir le port COM6 - ou le fermer- ce qui me donne Erreur et rien.

3) Instancié le port COM6 - et fermer mon application - Le logiciel de scan ne
fonctionne plus et je ne peux plus rien faire de mon port.

4) Killer le process - On ne peut plus rien obtenir du port ya plus qu'a faire
un reset.


Je m'en remets à vous si quelqu'un a une idée pour stopper l'application gentiment,
pour qu'elle libère le port d'elle même.

Ou bien une instruction qui me ferait, tel un phœnix, revivre mon Port.

Ou encore  un technique genre  envoyer une instruction a mon
port  (02H......03H)



Merci
Baguauda
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
1
3
Merci
[
DllImport
(
"coredll.dll"
, EntryPoint =
"FindWindow"
,
SetLastError =
true
)]





       

public


static


extern


IntPtr
FindWindow(
string
lpClassName,
string
lpWindowName);






 

IntPtr
handle = FindWindow(
null
,
"ScanEmul"
);//Nom de  la form  il  y  a certainement mieux








 








internal


const


UInt32
WM_CLOSE = 0x10;








[
DllImport
(
"coredll.dll"
,
EntryPoint =
"PostMessage"
)]





       

public


static


extern


Boolean
PostMessage(
IntPtr
hWnd,
UInt32
Msg,
int
wParam,
int
lParam);





PostMessage(proc.Handle,WM_CLOSE, 0,
0);

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Baguauda
Messages postés
1
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010
0
Merci
Bonjour,
Je sais que ce message date un peu... lol
J'ai le même souci que vous, je cherche à fermer correctement le ScanEmul.exe. Avez-vous une solution? Développez-vous en windev?
Mon problème est que je n'arrive pas à récupérer le handle du ScanEmul.
Cordialement.
Mélanie
Commenter la réponse de melastis2