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
