FreeTime - Stefano Passatordi 's Blog


Libera la mente...ecco il Blog di Stefano Passatordi
Statistiche
  • Views Home Page: 161.549
  • Views Posts: 380.777
  • Views Gallerie: 794.632
  • n° Posts: 210
  • n° Commenti: 148
Archivio Posts
Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005
Mappa

Hook con C# e Visual Studio 2005

Oggi, dopo molto tempo, ho ripreso una applicazione che avevo sviluppato tempo fa con VS2003 e C# e che funzionava senza alcun problema. E' un semplicissimo keylogger e quindi si basa sul meccanismo degli hooks di sistema, nello specifico utilizza la funzione SetWindowsHookEx.

Passando a VS2005 e senza modificare nulla....mi è comparso un errore strano nella fase di run-time, quando l'applicazione cerca di installare l'hook nel sistema.

Il codice incriminato è il seguente :

// install Keyboard hook 
    
if(hKeyboardHook == 0)
    {
        KeyboardHookProcedure = 
new HookProc(KeyboardHookProc);
        hKeyboardHook = SetWindowsHookEx( WH_KEYBOARD_LL,
            KeyboardHookProcedure, 
            Marshal.GetHINSTANCE(
            Assembly.GetExecutingAssembly().GetModules()[0]),
            0);


        
//If SetWindowsHookEx fails.
        
if(hKeyboardHook == 0 )    {
            Stop();
            
throw new Exception("SetWindowsHookEx ist failed.");
        }
    }

Su VS2003 questo codice gira senza problemi ma con VS2005 la funzione SetWindowsHookEx restituisce sempre 0, ovvero fallisce.

Come risolvere il problema?..Modifica del codice?..NOOO!!!

Per risolvere basta :

Andare nelle proprietà del progetto, selezionare il tab Debug e levare il segno di spunta su "Enable the Visual Studio hosting process" che è attivo per default.

Ecco tutto!Spero vi possa aiutare...io ci ho perso non poco tempo!

Categoria: Programmazione
venerdì, 23 feb 2007 Ore. 18.09
Ora e Data
Calendario
aprile 2025
lmmgvsd
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
Blogs Amici
    Links
      Copyright © 2002-2007 - Blogs 2.0
      dotNetHell.it | Home Page Blogs
      ASP.NET 2.0 Windows 2003