Comment utiliser un mutex dans Visual Basic
j'ai importé l' kernel32
bibliothèque. Donc, j'ai l' createMutex
fonction disponible mais je ne suis pas tout à fait sûr des différents paramètres et des valeurs de retour.
C'est classique visuel Basique, pas visuel Basic.NET mais je peux probablement travailler avec l'une ou l'autre langue sous la forme d'une réponse.
3 réponses
Le code VB ressemble à quelque chose comme ceci:
hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&)
Le premier paramètre est un pointeur vers un SECURITY_ATTRIBUTES
structure. Si vous ne savez pas ce que c'est, vous n'avez pas besoin. Pass NULL (0).
le second paramètre est TRUE
(non-zéro ou 1) si le thread appelant doit prendre en charge le mutex. FALSE
autrement.
le troisième paramètre est le nom mutex et peut être nul (0), comme indiqué. Si vous avez besoin d'un mutex nommé, passer le nom (unique). Pas assurez-vous que l' VB
wrapper commissaires de la longueur de préfixe VB
type de chaîne de caractères (BSTR
) sur une chaîne ASCII/Unicode sans fin si ce n'est pas le cas, vous aurez besoin de le faire et de nombreux exemples sont disponibles.
Bonne chance!
Voici les déclarations VB6 pour CreateMutex - je viens de les copier à partir de L'API viewer, que vous devriez avoir dans le cadre de votre installation VB6. VB6 marshalls les chaînes de caractères à terminaison nulle ANSI en utilisant la page de code actuelle.
Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" _
(lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, _
ByVal lpName As String) As Long
gardez à l'esprit que si vous créez un mutex à partir de L'IDE VB6, le mutex appartient à L'IDE et ne sera pas détruit lorsque vous arrêtez d'exécuter votre programme - seulement lorsque vous fermez l'IDE.
Eh bien, basé sur le documentation ça ressemble:
- attributs de sécurité (peut passer null)
- si elle est d'abord détenue (peut passer false)
- Le nom
HTH