cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 2014
-
6 juil. 2006 à 14:23
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 2014
-
7 juil. 2006 à 07:56
Bonjour,
Pour information : VSNET2003 fonctionnait, en terme de gestion de process, par session utilisateur, VSNET2005 fonctionne par poste de travail ce qui pose quelques problèmes de gestions en terminal server...
Exemple : un getprocess avec un utilisateur ayant des droits restreints ramène tous les process de tous les utilisateurs... alors qu'en 2003 il ne ramenait que celui de l'utilisateur concerné ce qui était logique...
-- Pourquoi faire simple quand on peut faire compliquer --
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 7 juil. 2006 à 07:56
Dim
P
As
Process() = Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName)
ça ça ramène en 2005 tous les process de tous les users, alors qu'en 2003 ça ne ramenait que les process du user en cours (et s'il n'avait pas les droits ben ça plantait il me semble)
du coup, pour vérifier qu'une application ne se lance qu'une seule par user il faut faire ça :
Dim
B
As
Boolean =
False
Try
Dim P
As Process() = Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName)
Dim i
As
Integer, N
As
Integer = P.GetLength(0)
Dim Nb
As
Integer = 0
Dim cP
As
Integer = Process.GetCurrentProcess.SessionId
For i = 0
To N - 1
Dim pP
As Process = P(i)
If pP.SessionId = cP
ThenNb += 1
End
If
Next
If Nb <= 1
ThenB =
True
End
If
Catch ex
As ExceptionB =
True
End
Try
Return B
-- Pourquoi faire simple quand on peut faire compliquer --