Detectar que o usuário bloqueou o PC
Bom dia a todos!
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!
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
Curtidas 0
Respostas
Leonardo Xavier
28/09/2012
você ta utilizando a "user32.dll" no seu sistema, para controlar login e logof?
GOSTEI 0
Etomazett
28/09/2012
você ta utilizando a "user32.dll" no seu sistema, para controlar login e logof?
Na verdade eu não sabia da existência dela :)
GOSTEI 0
Leonardo Xavier
28/09/2012
Com essa Dll ai você consegue registrar os estados do usuário no windows....se tiver duvidas posta ai.
GOSTEI 0
Etomazett
28/09/2012
Com essa Dll ai você consegue registrar os estados do usuário no windows....se tiver duvidas posta ai.
beleza, vou estudar ela e ver oq consigo extrair
GOSTEI 0
Etomazett
28/09/2012
Com essa Dll ai você consegue registrar os estados do usuário no windows....se tiver duvidas posta ai.
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
Etomazett
28/09/2012
Problema resolvido...
Dos 3 sites de onde achei essa função, eles tinham um erro no código. A linha
estava sem o sinal de <> e eu assumi que o certo deveria ser =
agora tá rodando q é uma maravilha ;)
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