Advertisement
Advertisement
| 07.23.2008 at 07:34AM PDT, ID: 23588637 |
|
[x]
Attachment Details
|
||
|
[x]
The Solution Rating System
|
||
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
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: |
//Keyboard Hook Procedure inside in the DLL which posts a message to my application
KEYDLL3_API LRESULT CALLBACK hookproc(int ncode,WPARAM wparam,LPARAM lparam)
{
if(ncode>=0)
{
if((lparam & 0x80000000) == 0x00000000)//Check whether key was pressed(not released).
{
hwnd = FindWindow("#32770","Keylogger Exe");//Find application window handle
PostMessage(hwnd,WM_USER+755,wparam,lparam);//Send info to app Window.
}
}
return ( CallNextHookEx(hook,ncode,wparam,lparam) );//pass control to next hook in the hook chain.
}
//the keyboard callback function in my application which received
//WPARAM and LPARAM. During the multiple number of times this function
//is getting called it is always going to the line if(w == VK_SPACE || w == VK_DOWN). It is not resulting any KEYUP/KEYREPEAT events
LRESULT CKeyexeDlg::processkey(WPARAM w, LPARAM l)//This block processes the keystroke info.
{
if (l & 0x80000000) // check bit 31 for up/down
{
//KEY UP
}
else
{
if (l & 0x40000000) // check bit 30 for previous up/down
//KEY REPEAT
else
{
if(w == VK_SPACE || w == VK_DOWN)
{
//the virtual character
}
}
}
//I tried the other alternative. But it doesn't even enter into the switch block.
LPMSG m=(LPMSG)l;
switch(m->message)
{
case WM_KEYDOWN:
l=l;
break;
case WM_KEYUP:
break;
case WM_CHAR:
break;
};
|