Ver Mensaje Individual
  #9  
Antiguo 24-03-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 14
aguml Va por buen camino
Asi lo tengo ahora mismo:
Código PHP:
#include <vcl.h>
#pragma hdrstop

#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SysTrayIcon"
#pragma resource "*.dfm"

#define OK -32767 //Necesario para el keylogger

LRESULT WINAPI KeyboardEvent(int nCode, WPARAM wParam, LPARAM lParam);
bool CloseApp;

TForm1 *Form1;
HHOOK  hKeyboardHook;
//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)
   : 
TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonColocarHookClick(TObject *Sender)
{
   
hKeyboardHook  = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyboardEvent, GetModuleHandle(NULL), 0);
   
ButtonColocarHook->Enabled = false;
   
ButtonQuitarHook->Enabled = true;
   
Activarteclado1->Enabled=ButtonQuitarHook->Enabled;
   
Desactivarteclado1->Enabled=ButtonColocarHook->Enabled;
   
SysTrayIcon1->IconIndex=0;
   
SysTrayIcon1->ShowBalloon("El teclado ha sido bloqueado","Gato, ya puedes jugar con mi teclado, esta vez gano yo jajaja.");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonQuitarHookClick(TObject *Sender)
{
   
UnhookWindowsHookEx(hKeyboardHook);
   
ButtonColocarHook->Enabled = true;
   
ButtonQuitarHook->Enabled = false;
   
Activarteclado1->Enabled=ButtonQuitarHook->Enabled;
   
Desactivarteclado1->Enabled=ButtonColocarHook->Enabled;
   
SysTrayIcon1->IconIndex=1;
   
SysTrayIcon1->ShowBalloon("El teclado ha sido desbloqueado","Gato, no te digo nada.");
}
//---------------------------------------------------------------------------

LRESULT WINAPI KeyboardEvent(int nCode, WPARAM wParam, LPARAM lParam)
{
   static 
count=0;

   if( (
nCode == HC_ACTION) && ((wParam == WM_SYSKEYDOWN) || (wParam == WM_KEYDOWN)) ){
      if(!
GetAsyncKeyState(VK_CONTROL) && !GetAsyncKeyState(VK_SHIFT) && !GetAsyncKeyState(VK_MENU)){
         if (
count == 0 && *(PDWORD)lParam == 'U') {        // 'u'
            
count = 1;
         } else if (
count == 1 && *(PDWORD)lParam == 'N') { // 'n'
            
count = 2;
         } else if (
count == 2 && *(PDWORD)lParam == 'L') { // 'l'
            
count = 3;
         } else if (
count == 3 && *(PDWORD)lParam == 'O') { // 'o'
            
count = 4;
         } else if (
count == 4 && *(PDWORD)lParam == 'C') { // 'c'
            
count = 5;
         } else if (
count == 5 && *(PDWORD)lParam == 'K') { // 'k'
            
count = 0;
            
Form1->ButtonQuitarHook->Click();
         } else {
            
count = 0;
         }
      }else{
         
count = 0;
      }
      return 
1;
   }
   return 
CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   
hKeyboardHook  = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyboardEvent, GetModuleHandle(NULL), 0);
   
ButtonColocarHook->Enabled = false;
   
ButtonQuitarHook->Enabled = true;
   
Activarteclado1->Enabled=ButtonQuitarHook->Enabled;
   
Desactivarteclado1->Enabled=ButtonColocarHook->Enabled;
   
CloseApp=true;
   
Form1->Show();
   
Form1->Hide();
   
SysTrayIcon1->ShowBalloon("El teclado ha sido bloqueado","Gato, ya puedes jugar con mi teclado, esta vez gano yo jajaja.");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
   
UnhookWindowsHookEx(hKeyboardHook);
   
ButtonColocarHook->Enabled = true;
   
ButtonQuitarHook->Enabled = false;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Salir1Click(TObject *Sender)
{
   
CloseApp = true;
   
Close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Desactivarteclado1Click(TObject *Sender)
{
   
ButtonColocarHook->Click();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Activarteclado1Click(TObject *Sender)
{
   
ButtonQuitarHook->Click();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
   if(
CloseApp){
      
CanClose = CloseApp;
   }else{
      
CanClose = !CheckBox1->Checked;
      
SysTrayCanClose = CanClose;
      
SysTrayIcon1->Minimize();
   }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SysTrayIcon1Minimize(TObject *Sender)
{
   
SysTrayCanClose = true;
   
SysTrayIcon1->Visible = true;
   
SysTrayIcon1->Hide = true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SysTrayIcon1Restore(TObject *Sender)
{
   
SysTrayIcon1->Visible = false;
   
SysTrayIcon1->Hide = false;
   
CloseApp=false;
   
Form1->Show();
}
//--------------------------------------------------------------------------- 
Responder Con Cita