Cómo usar un mutex en Visual Basic

votos
21

Importé la kernel32biblioteca. Por lo tanto, tengo la createMutexfunción disponible, pero no estoy seguro de los diversos parámetros y valores de retorno.

Esto es clásico de Visual Basic, no de Visual Basic.NET, pero probablemente pueda trabajar con cualquiera de los dos idiomas en forma de respuesta.

Publicado el 04/08/2008 a las 02:22
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
9

Aquí están las declaraciones de VB6 para CreateMutex : acabo de copiarlas del visor de API, que debería tener como parte de su instalación de VB6. VB6 ordena cadenas a ANSI con terminación nula usando la página de códigos actual.

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

Tenga en cuenta que si crea un mutex desde el IDE VB6, el mutex pertenece al IDE y no se destruirá cuando deje de ejecutar su programa, solo cuando cierre el IDE.

Respondida el 17/09/2008 a las 13:01
fuente por usuario

votos
7

El código VB se ve más o menos así:

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

El primer parámetro es un puntero a una SECURITY_ATTRIBUTESestructura. Si no sabes de qué se trata, no lo necesitas. Pase NULL (0).

El segundo parámetro es TRUE(distinto de cero, o 1) si el hilo llamante debe tomar posesión del mutex. FALSEde otra manera.

El tercer parámetro es el nombre mutex y puede ser NULL (0), como se muestra. Si necesita un mutex con nombre, pase el nombre (algo único). No estoy seguro de si el VBcontenedor reúne el VBtipo de cadena con el prefijo de longitud ( BSTR) sobre una cadena Ascii / Unicode terminada en nulo si no es así, tendrá que hacer eso y numerosos ejemplos están por ahí.

¡Buena suerte!

Respondida el 04/08/2008 a las 05:58
fuente por usuario

votos
2

Bueno, según la documentación , parece:

  1. Atributos de seguridad (puede pasar nulo)
  2. Si es inicialmente propiedad (puede pasar falso)
  3. El nombre de ella

HTH

Respondida el 04/08/2008 a las 05:48
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more