Fórum Detectar que o usuário bloqueou o PC #424915
28/09/2012
0
Estou desenvolvendo uma aplicação pra empresa e precisamos saber o horário que o usuário bloqueia o computador. No logon e logoff foi simples, mas se a pessoa bloquear eu não consegui "capturar" isso.
obrigado!
Etomazett
Curtir tópico
+ 0Posts
28/09/2012
Leonardo Xavier
Gostei + 0
28/09/2012
Etomazett
Na verdade eu não sabia da existência dela :)
Gostei + 0
28/09/2012
Leonardo Xavier
Gostei + 0
28/09/2012
Etomazett
beleza, vou estudar ela e ver oq consigo extrair
Gostei + 0
01/10/2012
Etomazett
Leonardo, eu passei o dia aqui me debulhando nas funções dessa DLL e achei a SwitchDesktop, e então achei esse código aqui:
function IsWorkstationLocked: Boolean;
var
hDesktop: HDESK;
begin
Result := False;
hDesktop := OpenDesktop('default',
0, False,
DESKTOP_SWITCHDESKTOP);
if hDesktop <> 0 then
begin
Result := not SwitchDesktop(hDesktop);
CloseDesktop(hDesktop);
end;
end;
Coloquei em um Timer assim:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if IsWorkstationLocked = true then
memo1.Lines.Add('bloqueado'+TimeToStr(now))
else
memo1.Lines.Add('liberado'+TimeToStr(now))
Eu bloqueio o computador e qdo volto ele continua inserindo o "liberado".
tem idéia do q pode ser?
Obrigado!
Gostei + 0
01/10/2012
Etomazett
Dos 3 sites de onde achei essa função, eles tinham um erro no código. A linha
if hDesktop <> 0 then
agora tá rodando q é uma maravilha ;)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)