vb6 - una - Cómo usar un mutex en Visual Basic
suma de filas y columnas de una matriz en visual basic (3)
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.
He importado la biblioteca kernel32, así que tengo la función createMutex
disponible, pero no estoy seguro de los diversos parámetros y valores devueltos.
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.
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 estructura SECURITY_ATTRIBUTES
. 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. FALSE
contrario.
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 (cualquier cosa única). No estoy seguro de si el contenedor VB
dirige el tipo de cadena VB
prefijo de longitud ( BSTR
) a una cadena Ascii / Unicode terminada en nulo; de lo contrario, necesitará para hacer eso y numerosos ejemplos están por ahí.
¡Buena suerte!
Bueno, según la documentación , parece:
- Atributos de seguridad (puede pasar nulo)
- Si es inicialmente propiedad (puede pasar falso)
- El nombre de ella
HTH