https://foro.gambas-es.org/viewtopic.php?f=6&t=4342&p=24681#p24681
-----------------------------------
ivanolete
Jueves, 08 Enero 2015, 20:53

Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
-----------------------------------
Hola, ando haciendo un sistema que lee  huellas desde un dispositivo UrU 4500 con una interfaz en GAMBAS. El problema es que tengo un programa escrito en C que hace uso de la libreria "libfprint", y buenoel programa en C funciona bien cuando lo invoco desde la linea de comandos de PIDORA.

El problema surge cuando invoco el mismo programa desde GAMBAS con "EXEC" o "SHELL" ya que si se invoca pero no me toma todos los argumentos como en la linea de comandos.

Ya he intentado varias notaciones,convertir el charset, hacer un shell script... y nada.   :cry: 

¿¿Alguna idea???


A continuación muestro el código:
[code linenumbers=false syntax=gambas]
' Gambas class file 

Library "libfprint:0"

Private Extern fp_init() As Integer
Private Extern fp_exit()


Public Sub _new()

End

 
Public Sub Form_Open()
 Dim fecha As Variant
  Me.Center
 
  fecha = Format(Now, "dd/m/yy")
  lcdfecha.Text = fecha
  
  img_mostrar_scan.Hide
  
  reanudar_button2.Hide
 
End


Public Sub scanear_dedo_button_Click()


  label1.Text = "Coloque su dedo índice derecho en el lector" ' 
  scan_dedo_imagen()
 
 
End

Public hproc As Process
Public Sub scan_dedo_imagen()

Dim devlib As Integer ' resultado de existencia de libreria de escaneo de huella 
   
  
  devlib = fp_init() ' deteccion de si tenemos libfprint instalada, para poder invocar el programa 
    If (devlib < 0) Then
      Message.Error("Libreria de escaneo no instalada/detectada, favor revisar o reportar fallo")
      Return
    Else
      Print "Liberia encontrada, command line utils can be invocado"
     
      fp_exit()
    Endif
 
 
  hproc = Shell "/var/www/html/./pscript" For Input As "lectura"   
  'hproc = Exec ["/var/www/html/escanerdedo", "verify", "rojo.pgm"] For Input As "lectura"  'está es otra forma en que lo invoqué
  'hproc = Shell"/var/www/html/escanerdedo verify rojo.pgm" For Input As "lectura"  'está es otra forma en que lo invoqué
End

Public Sub lectura_Read() ' Rutina que muestra la ultima salido de la consola a partir de la ejecucion lectura en hproc
  
  Dim salida As String
  Line Input #Last, salida
  Print "-->" & salida
  If salida == 1 Then 
    Message.Info("La Huella coincide")
        
    
    label1.Text = "" 
    
  Endif
 
  If salida == 0 Then 'este if mantiene recursiva la ejecucion de el proceso hasta que se valide la huella
   Message.Info("La huella no coincide, vuelva a ponerla por favor")
   hproc = Shell "/var/www/html/./pscript" For Input As "lectura"
   'hproc = Exec ["/var/www/html/escanerdedo", "verify", "rojo.pgm"] For Input As "lectura"  'está es otra forma en que lo invoqué
   'hproc = Shell"/var/www/html/escanerdedo verify rojo.pgm" For Input As "lectura"  'está es otra forma en que lo invoqué
 Endif
End


Public Sub timReloj_Timer()

  lcdhora.Value = Hour(Now)
  lcdminutos.Value = Minute(Now)
  lcdsegundos.Value = Second(Now)

End


Public Sub reanudar_button2_Click()

   scan_dedo_imagen("ivanol")

End

[/code]


