Ver Mensaje Individual
  #7  
Antiguo 24-03-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 11
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 nCodeWPARAM wParamLPARAM lParam);
bool CloseApp;

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

__fastcall TForm1::TForm1(TComponentOwner)
   : 
TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonColocarHookClick(TObject *Sender)
{
   
hKeyboardHook  SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyboardEventGetModuleHandle(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 nCodeWPARAM wParamLPARAM 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 == && *(PDWORD)lParam == 'U') {        // 'u'
            
count 1;
         } else if (
count == && *(PDWORD)lParam == 'N') { // 'n'
            
count 2;
         } else if (
count == && *(PDWORD)lParam == 'L') { // 'l'
            
count 3;
         } else if (
count == && *(PDWORD)lParam == 'O') { // 'o'
            
count 4;
         } else if (
count == && *(PDWORD)lParam == 'C') { // 'c'
            
count 5;
         } else if (
count == && *(PDWORD)lParam == 'K') { // 'k'
            
count 0;
            
Form1->ButtonQuitarHook->Click();
         } else {
            
count 0;
         }
      }else{
         
count 0;
      }
      return 
1;
   }
   return 
CallNextHookEx(hKeyboardHooknCodewParamlParam);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   
hKeyboardHook  SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyboardEventGetModuleHandle(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 *SenderTCloseAction &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 *Senderbool &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