Tengo el siguiente código:
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:
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 :)
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.
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.