Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Saber Si Se Esta Ejecutando Desde El IDE [Solucionado]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Saber Si Se Esta Ejecutando Desde El IDE [Solucionado] 
 
Hola desde otro hilo en el que hablabamos sobre el programa vinilo y los paquetes las dependencias y demas, surgio una inquietud de Julio sobre como saber si se estaba ejecutando el programa desde el IDE o no.
Bueno esta función usa el PID del programa y busca el PID del programa padre, si resulta que el programa padre es gambas (gbr3) entonces estamos en entorno IDE si resulta que no estamos ejecutando el programa desde el escritorio.
Dejo un ejemplo para verlo en mas detalle.

Public Function Werun(strProc1 As String) As Integer '' Devuelve si el programa se ejecuta desde el ide o no

  Dim strProcRaw1 As String
  Dim strPProc As String
  Dim strProcRaw2 As String
  Dim intMode As Integer

  ' Averiguar el PPID
  strProcRaw1 = ""
  Shell "ps -ef | grep " & strProc1 & " | grep gbx3" To strProcRaw1
  strProcRaw1 = Replace(strProcRaw1, "\t", "|")
  strProcRaw1 = Replace(strProcRaw1, " ", "|")
  strProcRaw1 = Replace(strProcRaw1, "||", "|")
  strProcRaw1 = Replace(strProcRaw1, "||", "|")
  strProcRaw1 = Replace(strProcRaw1, "||", "|")

  'Shell "ps -ef | grep " & strProc1 & " | grep gbx3 | cut -d ''-f2" To strPProc

  If strProcRaw1 <> "" Then
    strPProc = Split(strProcRaw1, "|")[2]
    'Averiguar el nombre del programa padre
    Shell "ps -ef | grep " & strPProc & " | grep gbr3" To strProcRaw2
    strProcRaw2 = Replace(strProcRaw2, "  ", " ")
    strProcRaw2 = Replace(strProcRaw2, "\t", "|")
    strProcRaw2 = Replace(strProcRaw2, " ", "|")
    strProcRaw2 = Replace(strProcRaw2, "||", "|")
    strProcRaw2 = Replace(strProcRaw2, "||", "|")
    strProcRaw2 = Replace(strProcRaw2, "||", "|")

    If strProcRaw2 <> "" Then
      If Split(strProcRaw2, "|")[1] = strPProc Then
        intMode = 1 ' Se esta ejecutando desde el IDE
      Else
        intMode = 0 ' Se esta ejecutando desde un paquete
      Endif
    Endif

  Endif

  Return intMode

End
 


Saludos.

ejercicio-ejecucion-0.0.2.tar.gz
Descripción:  
Descargar
Nombre del archivo: ejercicio-ejecucion-0.0.2.tar.gz
Tamaño: 12.04 KB
Descargado: 38 veces
ejercicio-ejecucion-0.0.2.tar.gz
Descripción:  
Descargar
Nombre del archivo: ejercicio-ejecucion-0.0.2.tar.gz
Tamaño: 12.04 KB
Descargado: 38 veces
ejercicio-ejecucion-0.0.2.tar.gz
Descripción:  
Descargar
Nombre del archivo: ejercicio-ejecucion-0.0.2.tar.gz
Tamaño: 12.04 KB
Descargado: 38 veces

 



 
última edición por tincho el Martes, 13 Diciembre 2016, 23:30; editado 3 veces 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Se Esta Ejecutando Desde El IDE 
 
Bueno, no logro que funcione este tema.
¿Alguna idea?

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Se Esta Ejecutando Desde El IDE 
 
Prueba ésto:

Public Sub Form_Open()

  Dim s As String
    
  Shell "ps -p " & Application.id To s
  If InStr(s, "gbx3") > 0 Then
     txl1.Text = "Desde el IDE: "
  Else
     txl1.Text = "Desde ejecutable: "
  Endif
 

End


Querida sencillez: ¡qué difícil eres de encontrar! (y que conste que lo digo por mí, que tiendo a enrevesarlo todo).
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Se Esta Ejecutando Desde El IDE 
 
Shordi: Funciono perfectamente. Le cambie alguna coa para que sea una función y luego lo pondré en el Xutilities.
 ide
Gracias y saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Se Esta Ejecutando Desde El IDE [Solucionado] 
 
Hice un nuevo commit a GEC para corregir la función WhereRun() que sirve para saber desde donde se esta ejecutando el programa, si desde el ide o desde el ejecutable.
https://github.com/belmotek/gambas-enhanced-controls
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Se Esta Ejecutando Desde El IDE 
 
shordi escribió: [Ver mensaje]
Prueba ésto:

  Shell "ps -p " & Application.id To s


....y sin usando Shell:   whistle

Public Sub Main()

  Dim s As String

   s = File.Load("/proc" &/ CStr(Application.Id) &/ "comm")
  
   If Left(s, 4) = "gbx3" Then
      Print "Desde el IDE: "
   Else
      Print "Desde ejecutable: "
   Endif
  
End

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Se Esta Ejecutando Desde El IDE 
 
vuott escribió: [Ver mensaje]
shordi escribió: [Ver mensaje]
Prueba ésto:

  Shell "ps -p " & Application.id To s


....y sin usando Shell:   whistle

Public Sub Main()

  Dim s As String

   s = File.Load("/proc" &/ CStr(Application.Id) &/ "comm")
  
   If Left(s, 4) = "gbx3" Then
      Print "Desde el IDE: "
   Else
      Print "Desde ejecutable: "
   Endif
  
End


Vuott: voy a probarlo, sera mas rápido no?

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Se Esta Ejecutando Desde El IDE 
 
vuott escribió: [Ver mensaje]
shordi escribió: [Ver mensaje]
Prueba ésto:

  Shell "ps -p " & Application.id To s


....y sin usando Shell:   whistle

Public Sub Main()

  Dim s As String

   s = File.Load("/proc" &/ CStr(Application.Id) &/ "comm")
  
   If Left(s, 4) = "gbx3" Then
      Print "Desde el IDE: "
   Else
      Print "Desde ejecutable: "
   Endif
  
End


Funciono perfectamente !!! reemplace la funcion anterior por tu version sin shell.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Mensaje Mientras Se Esta Ejecutando Una Su... jsbsan General 9 Lunes, 22 Noviembre 2010, 21:04 Ver último mensaje
Cubel
No hay nuevos mensajes Saber Si Un Archivo Esta Abierto tincho Aplicaciones/Fragmentos de Código 27 Sabado, 13 Agosto 2016, 06:03 Ver último mensaje
shordi
No hay nuevos mensajes Fecha: ¿como Se El Formato Del Pais Donde... jsbsan General 13 Miercoles, 06 Diciembre 2017, 15:49 Ver último mensaje
tincho
No hay nuevos mensajes ¿Es Posible Saber Donde Esta El Foco? gambafeliz General 7 Jueves, 21 Noviembre 2019, 18:18 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No 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



  

 

cron