Problema winexec y rmdir MASM

Iniciado por .:UND3R:., 26 Mayo 2014, 03:37 AM

0 Miembros y 1 Visitante están viendo este tema.

.:UND3R:.

Tengo el siguiente código:
Código (asm) [Seleccionar]
TITLE  start

.386
option casemap:none
.model flat,stdcall
include c:\masm32\include\windows.inc
include c:\masm32\include\kernel32.inc
includelib c:\masm32\lib\kernel32.lib

.const

.data
comand byte "rmdir /S /Q hola",0
.data?

.code
main PROC
   invoke WinExec,addr comand,SW_SHOW
   invoke ExitProcess,0
main ENDP
END main


Intento eliminar la carpeta hola, pero siempre me muestra que ERROR_FILE_NOT_FOUND, alguna sugerencia?

EDIT ni con:
comand byte "cd C:\RadASM\Masm\Projects\start & rmdir /S /Q hola",0

Saludos :)



He buscado una alternativa para eliminar la carpeta con contenido:
Código (asm) [Seleccionar]
TITLE  start

.386
option casemap:none
.model flat,stdcall
include c:\masm32\include\windows.inc
include c:\masm32\include\kernel32.inc
include c:\masm32\include\shell32.inc
includelib c:\masm32\lib\kernel32.lib
includelib c:\masm32\lib\shell32.lib

.const

.data
pFrom byte "hola",0
lpFileOp SHFILEOPSTRUCT <NULL,FO_DELETE,offset pFrom,NULL,FOF_NOCONFIRMATION,FALSE,NULL,NULL>

.code
main PROC
    invoke SHFileOperation,addr lpFileOp
    invoke ExitProcess,0
main ENDP
END main


Aunque sea una mejor técnica me gustaría saber de todas maneras como solucionar el problema :)

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

cpu2

De la API de Windows no se nada, asi que perdona si lo que digo no tiene mucho sentido.

No sera porque no escribes la ruta completa de rmdir?

Un saludo.

Eternal Idol

Si, ya desde el vamos por el error tiene que ser un problema con el path, con WinExec estas ejecutando otro programa, trata de comparar el CURRENT DIRECTORY de ambos (Process Explorer puede ayudar), en teoria deberian ser distintos si con SHFileOperation te funciona.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón