Ver Mensaje Individual
  #3  
Antiguo 25-02-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Reputación: 20
cHackAll Va por buen camino
Yo haría esto:

Código Delphi [-]
 WinExec('cmd /cdir\>reporte.txt&echo.>>reporte.txt&set>>reporte.txt&echo.>>reporte.txt&dir %systemroot%\system32\*.exe /b /s>>reporte.txt&start reporte.txt', SW_HIDE);

Que es lo mismo que ejecutar secuencialmente las siguientes ordenes:

Código:
dir \ > reporte.txt
echo. >> reporte.txt
set >> reporte.txt
echo. >> reporte.txt
dir %systemroot%\system32\*.exe /b /s >> reporte.txt
start reporte.txt
Si no me equivoco con ello quedas imposibilitado a usar call y goto, pero muy probablemente no las llegues a usar.

Lo otro que haría es igual de sencillo sin la necesidad de urguetear los recursos de la aplicacion;

Código Delphi [-]
var
 lpBuffer: PChar = '@echo off'#10+
                   'set value=7'#10+
                   ':loop'#10+
                   'set /a value=%value%-1'#10+
                   'echo %value% ...'#10+
                   'if %value%==0 (pause&del %0&exit)'#10+
                   'goto:loop';
 
procedure TForm1.Button1Click(Sender: TObject);
var hFile: Integer;
begin
 hFile := _lcreat('noseque.cmd', 0);
 _lwrite(hFile, lpBuffer, lstrlen(lpBuffer));
 CloseHandle(hFile);
 WinExec('cmd /knoseque.cmd', SW_SHOW);
end;

Claro que en este ultimo ejemplo puedes llamar directamente al batch y oculto como el primer ejemplo; y cabe la pena hacer notar que el mismo batch se elmina. (del %0)

Suerte
Responder Con Cita