https://foro.gambas-es.org/viewtopic.php?f=1&t=3777&p=21339#p21339
-----------------------------------
obedlink
Viernes, 11 Abril 2014, 16:49

Re: Ejecutar Comando Con Sudo Dentro De Gambas 3
-----------------------------------
[quote user="jguardon" post="21336"]Supongo que el fallo lo tienes en los espacios inexistentes entre las variables dentro del comando shell:

[code linenumbers=false syntax=gambas]Shell ("echo " & contrasena & " | sudo -S xboxdrv -d --silent --wid 0" & controltype1 & forcefeedbackpad1 & trigger1 & deadzone1)[/code]

Desconozco cuáles son los argumentos que pasas al programa xboxdrv, pero si haces esto verás a lo que me refiero:

[code linenumbers=false syntax=gambas]print ("echo " & contrasena & " | sudo -S xboxdrv -d --silent --wid 0" & controltype1 & forcefeedbackpad1 & trigger1 & deadzone1)[/code]


controltype1 & forcefeedbackpad1 & trigger1 & deadzone1 te saldrán pegados uno al otro y a la cadena anterior que termina en 0.


Saludos[/quote]
No hay problema en eso al asignar el valor a las variables ya llevan el espacio requerido.

aqui esta las asignaciones, como veras ahi van los espacios
[code linenumbers=false syntax=gambas]If ffpad1.Value = True Then
    forcefeedbackpad1 = " --force-feedback --rumble " & Slider_derecho_pad1.Value & "," & Slider_izquierdo_pad1.Value
    Endif
    If checkbox_DeadZone.Value = True Then
    deadzone1 = " --ui-axismap " & "x1^dead:" & Slider_deadzoneLS_pad1.Value & "," & "y1^dead:" & Slider_deadzoneLS_pad1.Value & "," & "x2^dead:" & Slider_deadzoneRS_pad1.Value & "," & "y2^dead:" & Slider_deadzoneRS_pad1.Value
    Endif
    If checkbox_triggers_as_button.Value = True Then
    trigger1 = " --trigger-as-button"
    Endif

    Select Case controltipo1.Index
      Case 0 
      controltype1 = " --mimic-xpad-wireless"
      Case 1 
      controltype1 = " --mimic-xpad"
    End Select[/code]

pero esa linea de codigo funciona, la ultima que es para detener el proceso es la del problema.
*no se porque se duplico el post!! borren los por favor

[code linenumbers=false syntax=gambas]Shell ("echo ", contrasena, " | sudo -S kill ", killpad1.Handle] ' killpad1.handle devuelve el ID de proceso para poder matarlo[/code]
este codigo deveria es como que escribiera en consola "sudo kill 12345" donde 12345 es el PID del proceso, fijate que si quito el espacio despues de "kill" la consola de gambas me devuelve
[code linenumbers=false syntax=gambas]sudo: kill12046: command not found[/code]
es como que hubiera escrito en consola "sudo kill12046" en vez de "sudo kill 12046", pero si le doy ese espacio no hace nada, ni devuelve ningún mensaje la consola.


