Cita:
Empezado por ecfisa
Hola nicktdigo.
Lo de CMD fué sólo un ejemplo,si te fijas bién la línea:
Código:
Comando:= 'C:\Windows\System32\cmd.exe' +
' /K CD C:\Documents and Settings';
Es lo igual que :
Código:
Comando:= 'C:\Windows\System32\cmd.exe /K CD C:\Documents and Settings';
Como te dije antes no he usado el comando "sc", desconozco si su
hubicación está declarada, por lo que especifique la ruta completa
al mismo: 'C:\windows\system32\', anteponiendolo al string de tu
ejemplo. Lo demás sigue igual.
Código:
Comando:='C:\Windows\System32\sc create Servicio1 binpath=' +
'C:\Documents and Settings\Intel\Escritorio'+
'\Aplicacion como servicio\Project2.exe start= disabled';
Partí la cadena en tres partes, uniéndolas con "+" para una mayor
legibilidad, pero en realidad es una sóla:
Código:
Comando:='C:\Windows\System32\sc create Servicio1 binpath= 'C:\Documents and Settings\Intel\Escritorio\Aplicacion como servicio\Project2.exe start= disabled';
Es decir que el parámetro que debes enviar a WinExcec está todo en la
variable "Commando", pero su formato depende del manejo que de ella haga el ejecutable
invocado.
Espero haberte aclarado un poco.
Saludos.
|
Un poco no, me sirve de mucho. Muchas gracias.
Te pongo un ejemplo de como he puesto para que se ejecute el comando:
"
COMANDO:= '%SYSTEMROOT%\System32\sc create ' + NOMBRE + ' binpath= "' + (RUTA)+'" start= disabled';
Edit3.text:=COMANDO;
WinExec(PChar(COMANDO), SW_NORMAL);"
El tema es que al intentar ejecutar el programa desde el compilador me sale lo siguiente:
"
[Error] Unit1.pas(61): Invalid typecast."
La linea a la que se refiere es a la del WinExec. ¿Sabes que significa el error?
Al principio del programa tengo declarada las uses:
"
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, ShellAPI;"
Gracias.