PDA

Ver la Versión Completa : Windows 2000 y el shutdown


Athalon
20-10-2003, 17:52:01
Bueeeeeeeeeeeeeeeeeenas a todos,

Ando algo perdido en el super registro de windows 2000, tengo que hacer que cuando se le de a la opción de "apagar el sistema" te reinicie la máquina en lugar de apagarla, es por un tema de seguridad en los que los equipos siempre tienen que estar en funcionamiento y para que no llegue un manazas y apaga el ordenador.

Tambien seria una solución el poder eliminar la opción de "apagar el sistema del menú", en tal caso seria conveniente quitar el de cerrar sesión, tambien seria una buena pregunta, ¿como hacer que solo aparezca la opción de reiniciar en el menú de "Apagar"....

Gracias por adelantado....

marcoszorrilla
20-10-2003, 20:40:12
Mira a ver si te funciona, la verdad no he tenido ocasión de probarlo.


var
hToken: THANDLE;
tkp, tkDumb: TTokenPrivileges;
DumbInt: DWord;
begin
FillChar(tkp, sizeof(tkp), 0);
// Obtengo el token de este proceso
if not (OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken)) then
raise Exception.create('OpenProcessToken falló con el código ' +
inttostr(GetLastError));
// Obtengo el LUID para provilegios de Shutdown
LookupPrivilegeValue(nil, pchar('SeShutdownPrivilege'),
tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
// Obtengo el privilegio de shutdown para este proceso
AdjustTokenPrivileges(hToken, false, tkp, sizeof(tkDumb), tkDumb,
DumbInt);
// No puedo testear el valor de retorno de AdjustTokenPrivileges
if GetLastError <> ERROR_SUCCESS then
raise Exception.create('AdjustTokenPrivileges falló con el código ' +
inttostr(GetLastError));
// apago el sistema, todas las aplicaciones se cerrarán
if not ExitWindowsEx(EWX_POWEROFF, 0) then
raise Exception.create('ExitWindowsEx falló con el código ' +
inttostr(GetLastError));
end;



Un Saludo

Athalon
20-10-2003, 20:46:45
Gracias por la rápida respuesta pero me referia desdel registro de windows (regedit) y no desde un programa delphi, a lo mejor no lo he puesto en el lugar adecuado.

Gracias.

roman
20-10-2003, 21:35:41
Usa


HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoClose


para quitar el item "Apagar..." del menú inicio.

y


HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ForceStartMenuLogOff


para que aparezca el item "Cerrar sesión..."

De esta manera sólo podrán cerrar sesión y no apagar el equipo.

Puedes encontrar más información en www.winguides.com

// Saludos

Athalon
21-10-2003, 21:28:12
Gracias por la ayuda, ahora mismito empezare a mirarme la web ya que de momento las soluciones que me has dado no me acaban de interesar.

Athalon
30-10-2003, 13:19:21
Continuo sin encontrar la solución :'-(((

He midado la web que me han recomendado pero ninguna de las opciones que podrian ayudarme han funcionado, necesito ayuda urgentemente, es tan simple (o no) como reiniciar el equipo cuando se le da la orden de apagar en windows 2000.

Gracias por la ayuda.