Your boss and your girlfriend can able to monitor you, using
the chat client installed in your computer. If you didn’t press any key or move your
mouse for long time then chat client status will automatically goes to “Away”.
Using that, they can find, when you are coming to or leaving the office
and how much time you are spending in cafeteria.
In most of companies, they have chat clients for internal
communication. Mostly they use Microsoft
Lync or some other XMPP Chat
client similar to G-Talk. We can cheat
them, by sending fake mouse movement.
I have created an
application, which sends the fake mouse events. So I always switch off my
monitor alone and go to cafeteria or leave office early. But if anyone can, switch on
the monitor and use my computer. My company policy doesn’t
allow me to leave my desk without locking my computer. So if someone touches (Mouse move or Key
Press) my computer it will automatically get locked. You can also set a secret key to deactivate
this application and not to get locked when you came back.
Source Code in VC++ (MFC):
HHOOK g_hDesktopHook; // Also declared global HHOOK g_hKeyboardHook; // Also declared global BOOL g_bMouseEvent=TRUE; CWinThread *g_MouseThread=NULL; int g_nXPos=0; int g_nYpos=0; void SendMouseMoveMessage() { INPUT ip; ip.type = INPUT_MOUSE; ip.mi.dx = 0; ip.mi.dy = 0; ip.mi.mouseData = 0; ip.mi.dwFlags = (MOUSEEVENTF_MOVE || MOUSEEVENTF_ABSOLUTE); ip.mi.time = 0; ip.mi.dwExtraInfo = GetMessageExtraInfo(); SendInput(1, &ip, sizeof(ip)); } UINT MouseMoveThread(LPVOID lpMsg) { while(g_bMouseEvent) { SendMouseMoveMessage(); Sleep(5000); } return 0; } LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam) { if(nCode < 0) return CallNextHookEx(g_hDesktopHook, nCode, wParam, lParam); KBDLLHOOKSTRUCT *msg = (KBDLLHOOKSTRUCT*)lParam; if(nCode == HC_ACTION) { if(wParam == WM_LBUTTONDOWN ||wParam == WM_RBUTTONDOWN ||wParam ==WM_MOUSEMOVE ) { LPMOUSEHOOKSTRUCT lpMouse=NULL; lpMouse=(LPMOUSEHOOKSTRUCT)lParam; if(lpMouse) { if(g_nXPos==0 && g_nYpos==0) { g_nXPos=lpMouse->pt.x; g_nYpos=lpMouse->pt.y; } if(g_nXPos!=lpMouse->pt.x|| g_nYpos!=lpMouse->pt.y) { g_bMouseEvent=FALSE; //Lock Computer LockWorkStation() ; AfxGetMainWnd()->PostMessage(WM_CLOSE); } } } else if ( wParam == WM_KEYUP || wParam ==WM_KEYDOWN) { if ( msg->vkCode =='U' ) { //If U is pressed Remain Unlocked and Exit //Else lock computer g_bMouseEvent=FALSE; AfxGetMainWnd()->PostMessage(WM_CLOSE); } else { g_bMouseEvent=FALSE; LockWorkStation() ; AfxGetMainWnd()->PostMessage(WM_CLOSE); } } } return CallNextHookEx(g_hDesktopHook, nCode, wParam, lParam); } void CChatClietCheaterDlg::OnBnClickedStart() { Sleep(2000); if((g_hDesktopHook = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, NULL, 0)) == NULL) { // hook failed... } if((g_hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, MouseProc, NULL, 0)) == NULL) { // hook failed.... } g_MouseThread=AfxBeginThread(MouseMoveThread,NULL); } void CChatClietCheaterDlg::OnDestroy() { CDialogEx::OnDestroy(); g_bMouseEvent=FALSE; if(g_hDesktopHook) UnhookWindowsHookEx(g_hDesktopHook); WaitForSingleObject(g_MouseThread->m_hThread,5000); }
Update:
I created it as a software application. for details please visit
http://mykodetips.blogspot.com/2013/02/chat-client-cheater-software.html