Ik zou graag weten hoe ik het aantal seconden dat een persoon idle is moet monitorren.
Ik heb even op het forum reeds gezocht & deze URL is goed, maar niet goed genoeg:
http://www.codeproject.com/dll/trackuseridle.asp . Deze verwees me door naar http://www.codeproject.com/dll/hooks.asp . Daarvan heb ik de code gepakt en een beetje aangepast.
Nu het probleem is, als ik die code run van op de site, werkt alles mooi.
Pak ik mijn code, dan trigger hij enkel maar in mijn lokaal programma (dus als mijn muis over mijn eigen programma gaat), maar niet als ik mijn muis beweeg over mijn scherm.
Ik heb het al 3x nagekeken, maar ik kan niet zien waarom, daar ik toch alles +- hetzelfde doe:
Mijn h:
Mijn cpp:
Zou er mij misschien iemand kunnen wijzen op een fout die ik daar in gemaakt heb? Daar ik dit toch echt niet zie
Ik heb even op het forum reeds gezocht & deze URL is goed, maar niet goed genoeg:
http://www.codeproject.com/dll/trackuseridle.asp . Deze verwees me door naar http://www.codeproject.com/dll/hooks.asp . Daarvan heb ik de code gepakt en een beetje aangepast.
Nu het probleem is, als ik die code run van op de site, werkt alles mooi.
Pak ik mijn code, dan trigger hij enkel maar in mijn lokaal programma (dus als mijn muis over mijn eigen programma gaat), maar niet als ik mijn muis beweeg over mijn scherm.
Ik heb het al 3x nagekeken, maar ik kan niet zien waarom, daar ik toch alles +- hetzelfde doe:
Mijn h:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| #ifndef __MOUSEHOOK_H
#define __MOUSEHOOK_H
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
#ifdef MOUSEHOOK_EXPORTS
#define LIBSPEC__44E531B1_14D3_11d5_A025_006067718D05 __declspec(dllexport)
#else // !MOUSEHOOK_EXPORTS
#define LIBSPEC__44E531B1_14D3_11d5_A025_006067718D05 __declspec(dllimport)
#pragma comment( lib, "MouseHook.lib" )
#endif // MOUSEHOOK_EXPORTS
LIBSPEC__44E531B1_14D3_11d5_A025_006067718D05 BOOL setMyHook ( );
LIBSPEC__44E531B1_14D3_11d5_A025_006067718D05 BOOL clearMyHook ( );
LIBSPEC__44E531B1_14D3_11d5_A025_006067718D05 DWORD getLatestTick( );
#define HOOK_MESSAGE__44E531B1_14D3_11d5_A025_006067718D05 _T("UWM_MOUSEMOVE_MSG-44E531B1_14D3_11d5_A025_006067718D05")
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // __MOUSEHOOK_H |
Mijn cpp:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
| // MouseHook.cpp : Defines the entry point for the DLL application.
//
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Insert your headers here
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
#include <tchar.h>
#include "MouseHook.h"
HINSTANCE hInst;
UINT UWM_MOUSEMOVE;
HHOOK hook;
DWORD m_dLastTickCount;
static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam);
BOOL APIENTRY DllMain( HINSTANCE hInstance, DWORD Reason, LPVOID Reserved )
{
switch(Reason)
{ /* reason */
case DLL_PROCESS_ATTACH:
hInst = hInstance;
UWM_MOUSEMOVE = RegisterWindowMessage(HOOK_MESSAGE__44E531B1_14D3_11d5_A025_006067718D05);
hook = NULL;
m_dLastTickCount = 0;
return TRUE;
case DLL_PROCESS_DETACH:
clearMyHook( );
return TRUE;
} /* reason */
return TRUE;
}
/****************************************************************************
* setMyHook
* Result: BOOL
* TRUE if successful
* FALSE if error
* Effect:
* Sets the hook
****************************************************************************/
LIBSPEC__44E531B1_14D3_11d5_A025_006067718D05 BOOL setMyHook( )
{
if ( hook != NULL )
return FALSE;
hook = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)msghook, hInst, 0);
return hook != NULL;
} // setMyHook
/****************************************************************************
* clearMyHook
* Result: BOOL
* TRUE if successful
* FALSE if error
* Effect:
* Removes the hook that has been set
****************************************************************************/
LIBSPEC__44E531B1_14D3_11d5_A025_006067718D05 BOOL clearMyHook( )
{
if ( hook == NULL )
return FALSE;
BOOL unhooked = UnhookWindowsHookEx(hook);
if ( unhooked )
hook = NULL;
return unhooked;
} // clearMyHook
/****************************************************************************
* getLatestTick
* Result: DWORD
* Latest GetTickCount from where there was an action.
****************************************************************************/
LIBSPEC__44E531B1_14D3_11d5_A025_006067718D05 DWORD getLatestTick( )
{
return m_dLastTickCount;
}
/****************************************************************************
* msghook
* Inputs:
* int nCode: Code value
* WPARAM wParam:
* LPARAM lParam:
* Result: LRESULT
* Either 0 or the result of CallNextHookEx
* Effect:
* Hook processing function.
****************************************************************************/
static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode < 0)
{
CallNextHookEx(hook, nCode, wParam, lParam);
return 0;
}
LPMSG msg = (LPMSG)lParam;
switch( msg->message )
{
case WM_MOUSEMOVE:
case WM_NCMOUSEMOVE:
m_dLastTickCount = ::GetTickCount();
// Do something with it...
break;
}
return CallNextHookEx(hook, nCode, wParam, lParam);
} // msghook |
Zou er mij misschien iemand kunnen wijzen op een fout die ik daar in gemaakt heb? Daar ik dit toch echt niet zie
[ Voor 194% gewijzigd door Creepy op 18-05-2005 17:52 ]