Ver Mensaje Individual
  #1  
Antiguo 02-03-2020
DenisDiaz DenisDiaz is offline
Miembro
 
Registrado: feb 2007
Posts: 55
Reputación: 18
DenisDiaz Va por buen camino
Problema con ShellExecute

Hola a todos.
Tengo un problema con esa función. Hay un archivo .BAT que si lo ejecuto manualmente funciona bien, pero si lo ejecuto desde la aplicación me da el error "No se encuentra el archivo de comandos ...getadmin.vbs", entonces supongo que sea problema de la forma como lo ejecuto pero no veo qué cambiar, el código para ejecutarlo que uso es este:
Código Delphi [-]
ShellExecute(GetActiveWindow(), 'open', ruta, nil, nil, SW_NORMAL);

y el archivo .bat contiene lo siguiente:

Código:
@echo off
IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)
if '%errorlevel%' NEQ '0' (
echo Solicitando permisos de administrador... Requesting administrative privileges... Anfordern Administratorrechte ...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
REM mas otro codigo especifico
Con ese .BAT lo que intento es ejecutar como administrador unos comandos para eliminar unos archivos que están en C.
Muchas gracias.
Responder Con Cita