Ver Mensaje Individual
  #9  
Antiguo 11-05-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por aguml Ver Mensaje
Comento que al final no hubo ningún problema al asignar esos privilegios en windows XP y era otro tema diferente el que me estaba dando problemas, simplemente que mi código estaba mal y sin darme cuenta desacia lo que en un principio hacia.
Lo que si me he dado cuenta que en Windows 10 me da error al intentar asignar ese privilegio a mi aplicación porque dice que no se encuentra el token. ¿Alguien me lo puede explicar?

No se como asignas privilegios pero deberías hacerlo siguiendo este método que funciona en todos los windows:


Para el proceso actual:
Código PHP:
BOOL EnablePrivilege (PCSTR nameBOOL Enable)
{
   
BOOL Result;
   
HANDLE hToken;
   
TOKEN_PRIVILEGES priv = {1, {00SE_PRIVILEGE_ENABLED}};
   if(!
Enablepriv.Privileges[0].Attributes 0;
   
LookupPrivilegeValueA(0name, &priv.Privileges[0].Luid);
   
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken);
   
AdjustTokenPrivileges(hTokenFALSE, &privsizeof priv00);
   
Result = (GetLastError() == ERROR_SUCCESS);
   
CloseHandle (hToken);
   return 
Result;


Por similitud, para cualquier proceso:
Código PHP:
BOOL EnablePrivilege (HANDLE hProcessPCSTR PrivNameBOOL Enable)
{
   
BOOL Result;
   
HANDLE hToken;
   
TOKEN_PRIVILEGES priv = {1, {00SE_PRIVILEGE_ENABLED}};
   if(!
Enablepriv.Privileges[0].Attributes 0;
   
LookupPrivilegeValueA(0PrivName, &priv.Privileges[0].Luid);
   
OpenProcessToken(hProcessTOKEN_ADJUST_PRIVILEGES, &hToken);
   
AdjustTokenPrivileges(hTokenFALSE, &privsizeof priv00);
   
Result = (GetLastError() == ERROR_SUCCESS);
   
CloseHandle (hToken);
   return 
Result;


Nota: No usa Unicode





Saludos.
Responder Con Cita