Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-09-2006
johnyague johnyague is offline
Registrado
 
Registrado: jul 2006
Posts: 9
Poder: 0
johnyague Va por buen camino
Angry Permisos de Administrador Para Dehabilitar Control + Alt + Suprimir

Hola a Todos

Antes de hacer esta pregunta me base en lo siguiente para deshabilitar el COntrol + Alt +Suprimir, encontrada en este hilo, como dicen aqui

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
     procedure DisableTaskMgr(bTF: Boolean);
   var       reg: TRegistry;
   begin
     reg := TRegistry.Create;
     reg.RootKey := HKEY_CURRENT_USER;

       reg.OpenKey('Software', True);
     reg.OpenKey('Microsoft', True);
     reg.OpenKey('Windows', True);
     reg.OpenKey('CurrentVersion', True);
     reg.OpenKey('Policies', True);
     reg.OpenKey('System', True);
      if bTF = True then
      begin
       reg.WriteString('DisableTaskMgr', '1');
     end
     else if  bTF = False then     
     begin 
        reg.DeleteValue('DisableTaskMgr');
     end; 
      reg.CloseKey;
   end;
    begin
     //Desabilitamos el Ctrl-Alt-Del (Con False vuelve a estar habilitado)
   DisableTaskMgr (True);
 end;


Esta Funciona de maravilla pero solo cuando tengo permisos de adminsitrador y esta aplicacion esta corriendo bajo un usuario restringido de Dominio.

Revisando la pagina encontre, en este hilo

var StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; begin FillChar (StartupInfo, SizeOf(StartupInfo), #0); StartupInfo.cb := SizeOf(StartupInfo); Win32Check( CreateProcessWithLogonW( StringToOleStr('UsuarioConPermisos'),StringToOleStr ('Dominio'), StringToOleStr('Password'),0, StringToOleStr('Exe'), nil, 0, nil, StringToOleStr('DirectorioTrabajo'), StartupInfo, ProcessInfo ) ); end;
[/delphi]


Pero no he podido, alguien me puede explicar o dar otra solucion...


De Antemano Muchas Gracias...

Última edición por marcoszorrilla fecha: 19-09-2006 a las 23:23:18.
Responder Con Cita
  #2  
Antiguo 20-09-2006
mahlon mahlon is offline
Miembro
 
Registrado: ago 2006
Posts: 62
Poder: 18
mahlon Va por buen camino
Thumbs up COntrol + Alt +Suprimir

Cita:
Empezado por johnyague
Hola a Todos

Antes de hacer esta pregunta me base en lo siguiente para deshabilitar el COntrol + Alt +Suprimir, encontrada en este hilo, como dicen aqui


Código Delphi [-]procedure TForm1.Button1Click(Sender: TObject);
procedure DisableTaskMgr(bTF: Boolean);
var reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;

reg.OpenKey('Software', True);
reg.OpenKey('Microsoft', True);
reg.OpenKey('Windows', True);
reg.OpenKey('CurrentVersion', True);
reg.OpenKey('Policies', True);
reg.OpenKey('System', True);
if bTF = True then
begin
reg.WriteString('DisableTaskMgr', '1');
end
else if bTF = False then
begin
reg.DeleteValue('DisableTaskMgr');
end;
reg.CloseKey;
end;
begin
//Desabilitamos el Ctrl-Alt-Del (Con False vuelve a estar habilitado)
DisableTaskMgr (True);
end;





Esta Funciona de maravilla pero solo cuando tengo permisos de adminsitrador y esta aplicacion esta corriendo bajo un usuario restringido de Dominio.

Revisando la pagina encontre, en este hilo

var StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; begin FillChar (StartupInfo, SizeOf(StartupInfo), #0); StartupInfo.cb := SizeOf(StartupInfo); Win32Check( CreateProcessWithLogonW( StringToOleStr('UsuarioConPermisos'),StringToOleStr ('Dominio'), StringToOleStr('Password'),0, StringToOleStr('Exe'), nil, 0, nil, StringToOleStr('DirectorioTrabajo'), StartupInfo, ProcessInfo ) ); end;
[/delphi]


Pero no he podido, alguien me puede explicar o dar otra solucion...


De Antemano Muchas Gracias...


reviso tu post y el codigo pero no son iguales a los q estan en el hilo anterior o trataste de dar una solucion mejor?......

de cualquier manera .. has intentado deshabilitar los tres botones utilizando el codigo ASCII?
Responder Con Cita
  #3  
Antiguo 20-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Una solución es conectarte a la máquina como administrador y cambiar los permisos del registro para que el susodicho usuario (o todos los no-administradores) puedan cambiar el valor de la llave que te interesa.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 20-09-2006
johnyague johnyague is offline
Registrado
 
Registrado: jul 2006
Posts: 9
Poder: 0
johnyague Va por buen camino
Retomando la idea.

Segui haciendo pruebas con:


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
FillChar (StartupInfo, SizeOf(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
Win32Check( CreateProcessWithLogonW( StringToOleStr('UsuarioConPermisos'),StringToOleStr ('Dominio'),
StringToOleStr('Password'),0, StringToOleStr('Exe'), nil, 0, nil, StringToOleStr('DirectorioTrabajo'),
StartupInfo, ProcessInfo ) );
end;





Pero siendoles sincero no se como usarlo luego de hacer este procedimiento ya todo procedimiento que realice tiene permisos de administrador?

Cuando compilo el codigo me sale:

[Warning] Unit1.pas(33): Symbol 'Win32Check' is specific to a platform
[Error] Unit1.pas(33): Undeclared identifier: 'CreateProcessWithLogonW'
[Fatal Error] Prueb.dpr(5): Could not compile used unit 'Unit1.pas'

Creeria que me hace falta:


Código Delphi [-]
function CreateProcessWithLogon; external 'advapi32.dll' name 'CreateProcessWithLogonW';





Pero donde lo coloco... mejor dicho me queda asi y no funciona


Código Delphi [-]

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function CreateProcessWithLogon; external 'advapi32.dll' name 'CreateProcessWithLogonW';
procedure TForm1.Button1Click(Sender: TObject);
var
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
FillChar (StartupInfo, SizeOf(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
Win32Check( CreateProcessWithLogonW( StringToOleStr('UsuarioConPermisos'),StringToOleStr ('Dominio'),
StringToOleStr('Password'),0, StringToOleStr('Exe'), nil, 0, nil, StringToOleStr('DirectorioTrabajo'),
StartupInfo, ProcessInfo ) );
end;
end.







Que hago...????
Responder Con Cita
  #5  
Antiguo 20-09-2006
johnyague johnyague is offline
Registrado
 
Registrado: jul 2006
Posts: 9
Poder: 0
johnyague Va por buen camino
Cita:
Empezado por jachguate
Una solución es conectarte a la máquina como administrador y cambiar los permisos del registro para que el susodicho usuario (o todos los no-administradores) puedan cambiar el valor de la llave que te interesa.

Hasta luego.

Dispulpa pero me podriad hechar una mano la verdad no soy muy ducho en esto de programar solo me acompaña un libreo de Delhi 4 en 1o minutos y el resto leyendo de ejemplo en Internet.
Responder Con Cita
  #6  
Antiguo 20-09-2006
johnyague johnyague is offline
Registrado
 
Registrado: jul 2006
Posts: 9
Poder: 0
johnyague Va por buen camino
Cita:
Empezado por mahlon
reviso tu post y el codigo pero no son iguales a los q estan en el hilo anterior o trataste de dar una solucion mejor?......

de cualquier manera .. has intentado deshabilitar los tres botones utilizando el codigo ASCII?
La verdad no he podido darle una solucion mejor y lo que mensionas del Codigo ASCII tampoco lo he probado me podrias dar un ejemplo.

De antemano Gracias...
Responder Con Cita
  #7  
Antiguo 20-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por johnyague
Dispulpa pero me podriad hechar una mano la verdad no soy muy ducho en esto de programar solo me acompaña un libreo de Delhi 4 en 1o minutos y el resto leyendo de ejemplo en Internet.
Pues de lo que yo hablo no tiene que ver con programar, sino con cambiar los permisos de acceso al registro, que bien podrías hacerlo programáticamente o bien con el propio editor del registro del sistema (regedit), siempre que estes conectado como administrador, y seleccionando la opción "permisos" en el menú contextual de la llave que te interesa. Una vez hayas cambiado los permisos, el usuario no-administrador podrá cambiar valores en la llave con el algoritmo que ya tenías.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 20-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jachguate
conectado como administrador, y seleccionando la opción "permisos" en el menú contextual de la llave que te interesa.
¡Vaya! Lo que es no ser administrador. No conocía esta opción a pesar de haber abierto treinta y cinco mil quinientas setenta y tres veces el RegEdit.

Gracias Juan Antonio, ahora sé algo más.

// Saludos
Responder Con Cita
  #9  
Antiguo 20-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por roman
a pesar de haber abierto treinta y cinco mil quinientas setenta y tres veces el RegEdit.
¡sopas!

Suponiendo exageradamente que, sin ser administrador, abrís el regedit en promedio 1 vez por día (yo no lo hago mas de un par de veces al mes), podemos deducir que tenes unos 97 años y medio laborando en la plataforma windows..

Si yo decía que vos venías del futuro... como el invento ese del RegEdit tuvo que ser por allá por 1994, mínimo vos venis del 2091!!!!!

No seas egoista... contanos, ¿que tan lejos ha llegado la informática en aquellos tiempos? ¿sigue existiendo delphi? ¿turbo?

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 20-09-2006
johnyague johnyague is offline
Registrado
 
Registrado: jul 2006
Posts: 9
Poder: 0
johnyague Va por buen camino
Super bien

Cita:
Empezado por jachguate
Pues de lo que yo hablo no tiene que ver con programar, sino con cambiar los permisos de acceso al registro, que bien podrías hacerlo programáticamente o bien con el propio editor del registro del sistema (regedit), siempre que estes conectado como administrador, y seleccionando la opción "permisos" en el menú contextual de la llave que te interesa. Una vez hayas cambiado los permisos, el usuario no-administrador podrá cambiar valores en la llave con el algoritmo que ya tenías.

Hasta luego.

Compañero de respeto no tenia ni medio idea que esto se podia hacer, desde luego funciona y bien.

Agradezco mucho tu colaboración.

Aprovecho... los cambios que realizo en el registro solo los toma cuando reinicio la maquina, hay alguna forma que hacer como un " F5 " para recargar la informacion del mismo...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Control de Permisos con ADO Migpal MS SQL Server 4 08-11-2005 08:27:50
Software para SQLBase Administrador BD? bataola Varios 2 05-08-2005 14:31:53
DUDA: Permisos de Administrador Ernesto Carrera Firebird e Interbase 2 10-02-2005 15:49:41
Administrador para MySQL actualizado Gasper MySQL 0 01-04-2004 20:54:40
permisos para ejecutar un procedure Crandel Firebird e Interbase 2 17-07-2003 21:31:47


La franja horaria es GMT +2. Ahora son las 23:48:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi