Fermer Proprement une Application [Résolu]

Baguauda 219 Messages postés mercredi 31 août 2005Date d'inscription 28 novembre 2008 Dernière intervention - 3 sept. 2007 à 18:01 - Dernière réponse : melastis2 1 Messages postés jeudi 27 mai 2010Date d'inscription 27 mai 2010 Dernière intervention
- 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 

Votre réponse

2 réponses

Meilleure réponse
Baguauda 219 Messages postés mercredi 31 août 2005Date d'inscription 28 novembre 2008 Dernière intervention - 6 sept. 2007 à 11:45
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);

Merci Baguauda 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 122 internautes ce mois-ci

Commenter la réponse de Baguauda
melastis2 1 Messages postés jeudi 27 mai 2010Date d'inscription 27 mai 2010 Dernière intervention - 27 mai 2010 à 16:33
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

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.