---
title: "När windows är inaktivt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/27937-när-windows-är-inaktivt"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "FreeZer"
published: "2001-11-16T21:33:00.000Z"
updated: "2001-12-05T12:10:00.000Z"
replies: 8
views: 493
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/27937-när-windows-är-inaktivt"
---

# När windows är inaktivt

## #1 — FreeZer, 2001-11-16T21:33Z

Kan man med en kod kolla hur länge datorn har varit inaktiv?

Permalänk: https://www.webforum.nu/p/27937

## #2 — Alpha II, 2001-11-17T00:52Z

Varför inte låta programmet ta tiden?

Permalänk: https://www.webforum.nu/p/400724

## #3 — FreeZer, 2001-11-17T09:30Z

Ok, hur ska jag skriva då om jag vill känna av när senste knapptryckningen var, eller när musen rörde på sig senast?

\------------------
^FreeZer^

Permalänk: https://www.webforum.nu/p/400725

## #4 — Alpha II, 2001-11-17T14:26Z

Jag vet inte hur men du kan ju kolla på lite delphi sidor...

Permalänk: https://www.webforum.nu/p/400726

## #5 — WiNNe, 2001-11-25T13:13Z

Mouse och keyboard hooks borde göra susen...

// Global variables

var
  whKeyboard: HHook = 0;
  whMouse: HHook = 0;

// \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
// Mouse and Keyboard hooks resets the timer counting user inactivity
// \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

function MouseHookCallBack(Code: Integer; Msg: WPARAM; MouseHook: LPARAM): LRESULT; stdcall;
begin
  if (Code \>= 0) then
    Timer.Reset;
  Result := CallNextHookEx(whMouse, Code, Msg, MouseHook);
end;

function KeyboardHookCallBack(Code: integer; Msg: WPARAM; KeyboardHook: LPARAM): LRESULT; stdcall;
begin
  if (Code \>= 0) then
    Timer.Reset;
  Result := CallNextHookEx(whKeyboard, Code, Msg, KeyboardHook);
end;

// \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
// Set up hooks. Called from GlobalInit.
// \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

procedure SetUpHooks;

  function GetModuleHandleFromInstance: THandle;
  var
    s: array\[0..512\] of Char;
  begin
    GetModuleFileName(hInstance, s, sizeof(s) - 1);
    Result := GetModuleHandle(s);
  end;

begin
  whMouse := SetWindowsHookEx(
    WH_MOUSE,
    MouseHookCallBack,
    GetModuleHandleFromInstance,
    GetCurrentThreadID);
  whKeyboard := SetWindowsHookEx(
    WH_KEYBOARD,
    KeyboardHookCallBack,
    GetModuleHandleFromInstance,
    GetCurrentThreadID);
end;

Glöm inte att släppa hookarna vid program avslut...

// Release hooks
  UnhookWindowsHookEx(whKeyboard);
  UnhookWindowsHookEx(whMouse);

Permalänk: https://www.webforum.nu/p/400727

## #6 — Lasp, 2001-11-26T19:11Z

Kan du förklara dig lite närmare?
Menar du just ditt program eller operativet som sådant?
Som vanligt fler frågor än svar!!!

Permalänk: https://www.webforum.nu/p/400728

## #7 — FreeZer, 2001-11-26T19:45Z

**WiNNe:** Jag får inte koden att fungera alls, har du nån sida där du hittat den som jag kan få kolla på?

**Lasp:** Jag skrev i första inlägget att **"kolla hur länge datorn har varit inaktiv"**, då tänkte jag på operativsystemet om det inte fram kom.
Alltså på samma sätt som skärmsläckaren går igång, att man inte rört någonting.

\------------------
^FreeZer^

Permalänk: https://www.webforum.nu/p/400729

## #8 — jt, 2001-11-27T18:15Z

FreeZer prova att söka efter en sida själv tex <http://www.codehound.com/> 

keyboard Hook: <http://www.codehound.com/delphi/results/results.asp?S=1&Q=Keyboard+Hook> 

mouse hook: <http://www.codehound.com/delphi/results/results.asp?S=1&Q=mouse+hook+>

Permalänk: https://www.webforum.nu/p/400730

## #9 — WiNNe, 2001-12-05T12:10Z

Kanske borde skrivit att jag inte testat ovanstående fristående, jag klippte det från ett av mina gammla program. Möjligt att där är nåt anrop som saknar referens eller liknande. Men det borde ge räcka för att hjälpa till att hitta en bra lösning. Om man får allt gjort av andra lär man ju sig inget... :)

Permalänk: https://www.webforum.nu/p/400731

---

Tråden på webben: https://www.webforum.nu/amne/programmering/27937-när-windows-är-inaktivt
