Public Sub Form_Activate() ' o Sub Main() con un programa con "interfaz de linea de comandos"
Dim s, cmdline As String
Dim id As New String[]
For Each s In Dir("/proc", "*", gb.Directory)
If Exist("/proc" &/ s &/ "cmdline") Then
cmdline = File.Load("/proc" &/ s &/ "cmdline")
If (cmdline Like "*" & Application.Name & ".gambas*") Then
id.Push(Split(File.Load("/proc" &/ s &/ "stat"), Chr(32))[0])
If id.Count > 2 Then
If id[id.Max] > id[id.Max - 1] Then Quit
Endif
Endif
Endif
Next
End
Private hLock As Stream
Private Sub VisorYaEstaAbierto() As Boolean
subR1.ExisteCarpeta(vp.DirBD)
Wait 0.05
subR1.ExisteCarpeta(vp.DirConfig)
Wait 0.05
subLog.Activar()
Try hLock = Lock vp.DirConfig &/ ".lock"
If Error Then
subR1.EscucharSonido("Sonidos/atencion.ogg") '04 ene 2021
Message.Warning("VisorRV1960 ya se encuentra abierto!!" & gb.NewLine &
gb.NewLine & "Si esta seguro que abrió VisorRV1960 una sola vez, intente desde consola: visorrv1960 -l")
Return True
Endif
Return False
End
'en evento close esto:
If Exist(vp.DirConfig &/ ".lock") Then '18 dic 2020
Kill vp.DirConfig &/ ".lock"
Endif