vb6 - Comment utiliser un mutex dans Visual Basic

Translate

J'ai importé lekernel32bibliothèque. Alors, j'ai lecreateMutexfonction disponible mais je ne suis pas tout à fait sûr des différents paramètres et valeurs de retour.

Il s'agit de Visual Basic classique, pas de Visual Basic.NET, mais je peux probablement travailler avec l'une ou l'autre langue sous la forme d'une réponse.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Beryl Lee
Translate

Le code VB ressemble à ceci:

hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&)

Le premier paramètre est un pointeur vers unSECURITY_ATTRIBUTESstructure. Si vous ne savez pas ce que c'est, vous n'en avez pas besoin. Passez NULL (0).

Le deuxième paramètre estTRUE(différent de zéro, ou 1) si le thread appelant doit prendre possession du mutex.FALSEautrement.

Le troisième paramètre est le nom du mutex et peut être NULL (0), comme indiqué. Si vous avez besoin d'un mutex nommé, transmettez le nom (quelque chose d'unique). Vous ne savez pas si leVBwrapper rassemble le préfixe de longueurVBtype de chaîne (BSTR) sur une chaîne Ascii / Unicode terminée par un nul sinon, vous devrez le faire et de nombreux exemples sont disponibles.

Bonne chance!

La source
Translate

Voici les déclarations VB6 pourCreateMutex- Je viens de les copier à partir de la visionneuse d'API, que vous devriez avoir dans le cadre de votre installation VB6. VB6 rassemble les chaînes en ANSI à zéro terminal à l'aide de la page de codes 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'EDI et ne sera pas détruit lorsque vous arrêterez d'exécuter votre programme - uniquement lorsque vous fermez l'EDI.

La source
Translate

Eh bien, basé sur leDocumentationOn dirait:

  1. Attributs de sécurité (peut passer null)
  2. S'il est initialement possédé (peut passer false)
  3. Le nom de celui-ci

HTH

La source