alberto-moyano   09-02-2021, 22:32
#1
Hola gente, estoy buscando por internet y dentro del foro y no escuentro nada al respecto, seguramente estoy buscando mal.

La cuestión es que quiero que mi aplicación no se pueda ejecutar varias veces al mismo tiempo, y no encuentro como armar el registro que busque si la aplicación ya está corriendo.

Gracias de antemano  Big Grin
vuott   10-02-2021, 04:35
#2
Propongo esta pagina del wiki del foro italiano de Gambas:

   https://www.gambas-it.org/wiki/index.php...A0_avviato

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
alberto-moyano   10-02-2021, 06:06
#3
geniale!!! per tutti i gusti  Smile
vuott   10-02-2021, 06:17
#4
Añado también este código con los únicos recursos de Gambas, leyendo un par de archivos de la carpeta del proceso del programa .gambas lanzado.:

Código:
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
Última modificación: 10-02-2021, 06:18 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
kokodrilo   10-02-2021, 22:08
#5
Código:
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
Última modificación: 10-02-2021, 22:12 por kokodrilo.

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
  
Usuarios navegando en este tema: 2 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.