¿Cómo deshabilitar la ejecución repetida y abrir la ventana del programa en ejecución en la bandeja si se ejecuta repetidamente?
'La siguiente es la declaración de API y el tipo de datos
. Versión 2
Comando .DLL CreateMutex, entero, "kernel32.dll", "CreateMutexA"
Parámetros Estructura Mutex, SECURITY_ATTRIBUTES
. , tipo lógico
.DLL comando WaitForSingleObject, entero, "WaitForSingleObject"
.Parámetro hHandle, entero
. Parámetro dwMillisegundos, entero
.DLL comando ReleaseMutex, entero, "kernel32.dll", "ReleaseMutex"
.Parámetro hMutex, entero
.DLL comando CloseHandle , lógico, "CloseHandle", público
.DLL comando CloseHandle, tipo lógico, , "CloseHandle", público
.Versión 2
.Tipo de datos SECURITY_ATTRIBUTES , , estructura de seguridad;
.Member nLength, entero
. Miembro lpSecurityDescriptor, entero
. Miembro bInheritHandle, entero
'El siguiente es el código de subrutina
Versión 2
Subrutina System_DisableRepeatRun, lógico, público, devuelve verdadero si se ha ejecutado. , de lo contrario devuelve falso
. Parámetro Cadena de característica, tipo de texto
Manejador de variable local, tipo entero
Estructura de seguridad de variable local, SECURITY_ATTRIBUTES
Handle = CreateMutex (estructura de seguridad, verdadero). cadena característica) 'La cadena característica se utiliza para determinar si existe un mutex
. Si es verdadero (WaitForSingleObject (identificador, 100) = 258)
ReleaseMutex (identificador)
CloseHandle (identificador)
Devolución (verdadero)
. Si es verdadero, finaliza
Devuelve (falso).