buenas
creo que hay un post sobre este tema pero no logro encontrarlo
la cuestión es esa, en el caso de VisorRV1960 se habré mas de una vez lo que no debe pasar.
como identificar el proceso para después hacer una comprobación.?
lo peor que el nombre del proceso de VisorRV1960 no es por su nombre sino que aparece como gbr3
alguien ya resolvió este tema?
estoy mirando varios comando para identificar el pid o nombre pero el problema mayor es lo del gbr3
saludos.
¿Como Impedir Que Un Programa Gambas Se Ejecute Mas De Una Vez?[Resuelto]
Objetivo: ¿Como Impedir Que Un Programa Gambas Se Ejecute Mas De Una Vez?[Resuelto]
última edición por v3ctor el Domingo, 15 Abril 2018, 15:53; editado 1 vez
última edición por v3ctor el Domingo, 15 Abril 2018, 15:53; editado 1 vez
Objetivo: Re: ¿Como Impedir Que Un Programa Gambas Se Ejecute Mas De Una Vez?
v3ctor:
De los dos antiguos enlaces, uno no existe y el otro FireFox lo da como sitio engañoso.
¿ Y cómo es que se abre más veces la misma aplicación ?.
Saludos
De los dos antiguos enlaces, uno no existe y el otro FireFox lo da como sitio engañoso.
¿ Y cómo es que se abre más veces la misma aplicación ?.
Saludos
Objetivo: Re: ¿Como Impedir Que Un Programa Gambas Se Ejecute Mas De Una Vez?
al parecer esto funciona
' gambas module file
Private hLock As Stream
Public Sub Main()
Dim a As Integer
Dim Argumento As String
For a = 1 To Args.Max
Argumento = Args[a]
If Argumento = "--version" Or If Argumento = "-v" Then
Print "VisorRV1960 versión " & Application.Version
Quit
Else If Argumento = "--help" Or If Argumento = "-h" Then
Print File.Load("textos/comando")
Quit
Else If Argumento = "--azar" Or If Argumento = "-a" Then
Print cmdAzar.VersiculoAzar()
Quit
Else If Argumento = "--reiniciar-config" Or If Argumento = "-r" Then
If Exist(Settings.Path) Then
Shell "rm " & Settings.Path
Print "Se elimino archivo de configuración de VisorRV1960 v." & Application.Version
Print Settings.Path
Else
Print "Archivo de configuración '" & File.Name(Settings.Path) & "' no existe en:"
Print File.Dir(Settings.Path)
Endif
Quit
Else
Print "Comando desconocido: " & Argumento
Print "Prueba--> VisorRV1960 --help"
Quit
Endif
Next
If VisorYaEstaAbierto() Then Quit ''11 abr 2018
CargarVariables()
FMain.Show()
If Settings["Opciones/Azar", False] = True Then
If FMain.ModoBandejaAuto = False Then azar.ShowModal 'mod '05 abr 2018
Endif
End
Private Sub CargarVariables()
vp.Moneda = Settings["Moneda/NombreMondeda", "Pesos Uruguayos"]
vp.MonedaSigno = Settings["Moneda/SignoMondeda", "$U"]
vp.MonedaPorGrPlata = Settings["Moneda/ValorGrPlata", 0]
FMain.ModoBandejaAuto = Settings["ModoBandeja/ModoBandejaAuto", False] 'new 5 abr 2018 22:06
End
Private Sub VisorYaEstaAbierto() As Boolean '11 abr 2018
Try hLock = Lock vp.DirConfig &/ ".lock"
If Error Then
Message.Warning("VisorRV1960 ya se encuentra abierto!!")
Return True
Endif
Return False
End
' gambas module file
Private hLock As Stream
Public Sub Main()
Dim a As Integer
Dim Argumento As String
For a = 1 To Args.Max
Argumento = Args[a]
If Argumento = "--version" Or If Argumento = "-v" Then
Print "VisorRV1960 versión " & Application.Version
Quit
Else If Argumento = "--help" Or If Argumento = "-h" Then
Print File.Load("textos/comando")
Quit
Else If Argumento = "--azar" Or If Argumento = "-a" Then
Print cmdAzar.VersiculoAzar()
Quit
Else If Argumento = "--reiniciar-config" Or If Argumento = "-r" Then
If Exist(Settings.Path) Then
Shell "rm " & Settings.Path
Print "Se elimino archivo de configuración de VisorRV1960 v." & Application.Version
Print Settings.Path
Else
Print "Archivo de configuración '" & File.Name(Settings.Path) & "' no existe en:"
Print File.Dir(Settings.Path)
Endif
Quit
Else
Print "Comando desconocido: " & Argumento
Print "Prueba--> VisorRV1960 --help"
Quit
Endif
Next
If VisorYaEstaAbierto() Then Quit ''11 abr 2018
CargarVariables()
FMain.Show()
If Settings["Opciones/Azar", False] = True Then
If FMain.ModoBandejaAuto = False Then azar.ShowModal 'mod '05 abr 2018
Endif
End
Private Sub CargarVariables()
vp.Moneda = Settings["Moneda/NombreMondeda", "Pesos Uruguayos"]
vp.MonedaSigno = Settings["Moneda/SignoMondeda", "$U"]
vp.MonedaPorGrPlata = Settings["Moneda/ValorGrPlata", 0]
FMain.ModoBandejaAuto = Settings["ModoBandeja/ModoBandejaAuto", False] 'new 5 abr 2018 22:06
End
Private Sub VisorYaEstaAbierto() As Boolean '11 abr 2018
Try hLock = Lock vp.DirConfig &/ ".lock"
If Error Then
Message.Warning("VisorRV1960 ya se encuentra abierto!!")
Return True
Endif
Return False
End
Objetivo: Re: ¿Como Impedir Que Un Programa Gambas Se Ejecute Mas De Una Vez?
pues así es y algunas aplicaciones esta bien que se habrán muchos como el caso de firefox o el mismo gambas y otros pero con visor no le veo el sentido
Shell escribió: [Ver mensaje]
pues así es y algunas aplicaciones esta bien que se habrán muchos como el caso de firefox o el mismo gambas y otros pero con visor no le veo el sentido
Objetivo: Re: ¿Como Impedir Que Un Programa Gambas Se Ejecute Mas De Una Vez?
Hola
¿Quizás esta solución le sea útil?
Uso esta rutina en el procedimiento "Public sub_new()" de img2key...
Por supuesto que será necesario adaptarlo según sus necesidades....
Que tengas un buen día.
¿Quizás esta solución le sea útil?
Uso esta rutina en el procedimiento "Public sub_new()" de img2key...
Dim sretourinfo as string
Dim tinstance As String[]
'--------------------------------------------------------------------------------------
'evite une nouvelle instance si déjà en cours d'utilisation
'--------------------------------------------------------------------------------------
Shell "ps ax | grep gbr3 | grep img2key | awk '{print $1}'" To sretourinfo
tinstance = Split(sretourinfo, gb.NewLine)
If tinstance.Count - 1 > 2 Then 'si la valeur est supérieur à 2 c'est une ouverture supplémentaire
smsg = ("Img2key est déjà en cours d'utilisation.") & "\n"
smsg &= ("Il ne peut y avoir qu'une seule instance") & "\n"
smsg &= ("en cours d'exécution.") & "\n"
Message.Title = ("Double ouverture")
Message.Info(smsg, ("OK"))
Shell "Kill -9 " & tinstance[1] 'dès que l'utilisateur a cliqué sur OK tue le process de la nouvelle instance
Me.Close 'puis ferme
Endif
Dim tinstance As String[]
'--------------------------------------------------------------------------------------
'evite une nouvelle instance si déjà en cours d'utilisation
'--------------------------------------------------------------------------------------
Shell "ps ax | grep gbr3 | grep img2key | awk '{print $1}'" To sretourinfo
tinstance = Split(sretourinfo, gb.NewLine)
If tinstance.Count - 1 > 2 Then 'si la valeur est supérieur à 2 c'est une ouverture supplémentaire
smsg = ("Img2key est déjà en cours d'utilisation.") & "\n"
smsg &= ("Il ne peut y avoir qu'une seule instance") & "\n"
smsg &= ("en cours d'exécution.") & "\n"
Message.Title = ("Double ouverture")
Message.Info(smsg, ("OK"))
Shell "Kill -9 " & tinstance[1] 'dès que l'utilisateur a cliqué sur OK tue le process de la nouvelle instance
Me.Close 'puis ferme
Endif
Por supuesto que será necesario adaptarlo según sus necesidades....
Que tengas un buen día.
Objetivo: Re: ¿Como Impedir Que Un Programa Gambas Se Ejecute Mas De Una Vez?
Excelente hay para elegir y muestra que hay muchas formas de hacerlo gracias
vuott escribió: [Ver mensaje]
Excelente hay para elegir y muestra que hay muchas formas de hacerlo gracias
Objetivo: Re: ¿Como Impedir Que Un Programa Gambas Se Ejecute Mas De Una Vez?
gracias, si al parecer a muchas soluciones, el tema sera elegir o saber cual usar, saludos.
didier18 escribió: [Ver mensaje]
gracias, si al parecer a muchas soluciones, el tema sera elegir o saber cual usar, saludos.
Página 1 de 1
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.4564s (PHP: -68% SQL: 168%)
Consultas SQL: 46 - Debug off - GZIP Activado