Baguauda
Messages postés219Date d'inscriptionmercredi 31 août 2005StatutMembreDernière intervention28 novembre 2008
-
14 sept. 2006 à 09:45
Baguauda
Messages postés219Date d'inscriptionmercredi 31 août 2005StatutMembreDernière intervention28 novembre 2008
-
19 sept. 2006 à 11:49
bonjour a tous.
voila quel est mon problème,
j'ai fait une application de force de vente sur PDA. Je dispose d'un emulateur pour le lexteur de code à barres qui tourne en arrière plan.
Le problème est pour la "synchro" qui se fait via modem RTC, et qui ne supporte pas que l'emulateur tourne en même temps.
J'utilise pour lancer l'emulateur la fonctin suivante.
Public Class Launch
<DllImport("CoreDll.DLL", SetLastError:=True)> _
Private Shared Function CreateProcess(ByVal imageName As String, ByVal cmdLine As String, ByVal lpProcessAttributes As IntPtr, ByVal lpThreadAttributes As IntPtr, ByVal boolInheritHandles As Int32, ByVal dwCreationFlags As Int32, ByVal lpEnvironment As IntPtr, ByVal lpszCurrentDir As IntPtr, ByVal si() As Byte, ByVal pi As ProcessInfo) As Integer
End Function
<DllImport("CoreDll.dll")> _
Private Shared Function GetLastError() As Int32
End Function
Public Shared Function CreateProc(ByVal ExeName As String, ByVal CmdLine As String, ByVal pi As ProcessInfo) As Boolean
If pi Is Nothing Then
pi = New ProcessInfo
End If
Dim si(127) As Byte
Return CreateProcess(ExeName, CmdLine, IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, si, pi) <> 0
End Function 'CreateProc
End Class 'Externals
Public Class ProcessInfo
Public hProcess As IntPtr
Public hThread As IntPtr
Public ProcessId As Int32
Public ThreadId As Int32
End Class
ce que je recherche c'est la fonction inverse qui va arrêter mon process, afin de lancer ma connexion.
J'ai bien testé
System.Diagnostics.Process myProcess;
puis myProcess.Start(); (qui fonctionne très bien )
mais myProcess.Close(); n'arrete pas grand chose.
et myProcess.Kill(); m'oblige a rebouter le PDA pour refaire tourner correctement la PDA.
Donc si quelqu'un aurais quelques piste afin d'orienté mes recherche, ce serais vachtement bien.
cs_Stephane33
Messages postés630Date d'inscriptionsamedi 15 février 2003StatutModérateurDernière intervention 9 octobre 20111 18 sept. 2006 à 19:07
Pas de System.Diagnostics.Process sous Net CF, je t'invite à utiliser les librairies OpenNetCf qui dans l'espace de nom ToolHelp te permettront de gérer tes processus.(ProcessEntry)
Perso je m'en sers et cela marche plutôt bien
Baguauda
Messages postés219Date d'inscriptionmercredi 31 août 2005StatutMembreDernière intervention28 novembre 20081 19 sept. 2006 à 11:49
Ca fonctionne en effet mais j'ai le même problème qu'avec System.Diagnostics.Process.
Mais j'ai pu constater plus en détail d'où venais le problème. En fait mon Emulateur de Lecteur de Code à Barres utilise un port. Donc lorsque je Kill et que je relance la bête il ne peut pas fonctionner car "l'option" prise sur le port n'est pas libèrer.
Je vais chercher Comment libèrer mon port.
Merci.