Processus et Windows CE

tfrancais Messages postés 21 Date d'inscription dimanche 28 novembre 2010 Statut Membre Dernière intervention 22 février 2015 - 16 févr. 2005 à 11:47
tfrancais Messages postés 21 Date d'inscription dimanche 28 novembre 2010 Statut Membre Dernière intervention 22 février 2015 - 17 févr. 2005 à 15:25
Bonjour,



Est-ce qu'il est possible de contrôler le nombre de scession pour une
applications sous Windows CE comme on peut le faire sous Windows avec
ces quelques lignes :



Process ThisProcess = Process.GetCurrentProcess();

Process [] AllProcesses = Process.GetProcessesByName(ThisProcess.ProcessName);

if (AllProcesses.Length != 1) {

// Rien à faire le processus existe déjà

}

else {

Application.Run (new Appli());

}

}



Merci,

Thomas

7 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
16 févr. 2005 à 22:05
Oui

::|The S@ib|::
MVP C#.NET
0
tfrancais Messages postés 21 Date d'inscription dimanche 28 novembre 2010 Statut Membre Dernière intervention 22 février 2015
17 févr. 2005 à 09:29
Merci The Saib, et comment procède-t-on ?
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
17 févr. 2005 à 13:39
Sur du compact framework, tu ne peux pas avoir deux instances de la meme application

::|The S@ib|::
MVP C#.NET
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
17 févr. 2005 à 13:45
Sur du pocket j'entend

::|The S@ib|::
MVP C#.NET
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
17 févr. 2005 à 13:46
Voici tout de meme une solution pour du CE

private const int ERROR_ALREADY_EXISTS = 183;

[DllImport("coredll.dll", EntryPoint="GetLastError")]
private static extern int GetLastError();

[DllImport("coredll.dll", EntryPoint="CreateMutexW")]
private static extern int CreateMutex(IntPtr lpMutexAttributes, bool InitialOwner, string MutexName);

public static bool IsInstanceRunning()
{

string appname = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;

if(CreateMutex(IntPtr.Zero, true, appname) != 0)
{
if(GetLastError() == ERROR_ALREADY_EXISTS)
{
DEBUGMSG(true, "Already running\r\n");
return true;
}
else
{
DEBUGMSG(true, "Not already running\r\n");
return false;
}
}

DEBUGMSG(true, "CreateMutex failed!\r\n");
return false;
}

::|The S@ib|::
MVP C#.NET
0
tfrancais Messages postés 21 Date d'inscription dimanche 28 novembre 2010 Statut Membre Dernière intervention 22 février 2015
17 févr. 2005 à 13:48
Alors, je n'ai pas de chance car sur mon Pocket PC si je double-clique
plusieurs fois sur l'icône de mon appli, il me lance autant d'instance
de série de clique.

Est-ce que ça peut venir du mode "debug" ?



Thomas
0
tfrancais Messages postés 21 Date d'inscription dimanche 28 novembre 2010 Statut Membre Dernière intervention 22 février 2015
17 févr. 2005 à 15:25
Merci pour ton aide The Saib
0
Rejoignez-nous