Ver Mensaje Individual
  #2  
Antiguo 31-12-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola look.

Tal vez te sirva impedir el bloqueo durante la duración de tu programa 'cliente' y restaurar la condición al finalizar, algo como:
Código Delphi [-]
implementation

uses Registry;

var
  PrevLockState: Boolean;

function LockWorkstationState: Boolean;
var
  r: TRegistry;
begin
  Result := False;
  with TRegistry.Create do
  try
    RootKey := HKEY_CURRENT_USER;
    if OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System', False) then
    begin
      Result := Boolean(ReadInteger('DisableLockWorkstation'));
      CloseKey;
    end;
  finally
    Free;
  end;
end;

procedure DisableLockWorkstation(Lock: Boolean);
begin
  with TRegistry.Create do
  try
    RootKey := HKEY_CURRENT_USER;
    if OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System', True) then
    begin
      WriteInteger('DisableLockWorkstation', Integer(Lock));
      CloseKey;
    end;
  finally
    Free;
  end;
end;

procedure TfrmClienteMain.FormCreate(Sender: TObject);
begin
  PrevLockState := LockWorkstationState;
  DisableLockWorkstation(True);
  ...
end;

...

procedure TfrmClienteMain.FormDestroy(Sender: TObject);
begin
  DisableLockWorkstation(PrevLockState);
  ...
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita