Harkonnen Modérateur Un modo pour les bannir tous | SenG@ a écrit :
par contre, pour le hook, tu veux dire qu'il n'existe pas en .Net, et que je suis oblige de le faire en c++ par exemple ?
|
oui, comme indiqué ici :
http://support.microsoft.com/defau [...] ;Q318804#3
j'ai trouvé ça sur google, peut être que ça peut t'être utile ?
Code :
- using System;
- using System.Collections;
- using System.ComponentModel;
- using System.Data;
- using System.Diagnostics;
- using System.ServiceProcess;
- using System.IO.IsolatedStorage ;
- using System.Runtime.InteropServices ;
- namespace KeyCapture
- {
- //Hook class using delegates
- public class Win32Hook
- {
- public System.Diagnostics.EventLog eventLog1;
- [DllImport( "user32",
- CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
- public static extern int SetWindowsHookEx(
- HookType idHook, HOOKPROC lpfn,int hmod,int
- dwThreadId);
- public enum HookType
- {
- WH_KEYBOARD = 2
- }
- public delegate int HOOKPROC(int nCode, int wParam, int
- lParam);
- public Win32Hook ()
- {
- this.eventLog1 = new System.Diagnostics.EventLog();
- ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).EndInit();
- if (!System.Diagnostics.EventLog.SourceExists
- ("KeyCaptSource" ))
- {
- System.Diagnostics.EventLog.CreateEventSource
- ("KeyCaptSource","KeyLogging" ) ;
- }
- eventLog1.Source = "KeyCaptSource" ;
- eventLog1.Log = "KeyLogging" ;
- }
- public void SetHook(int ThreadID)
- {
- // set the keyboard hook
- SetWindowsHookEx(HookType.WH_KEYBOARD,
- new HOOKPROC(this.MyKeyboardProc),
- 0,
- ThreadID );
- }
- public int MyKeyboardProc(int nCode, int wParam, int
- lParam)
- {
- if ((nCode > 0) && (nCode == 3))
- {
- switch (wParam)
- {
- case 255 :
- switch (lParam)
- {
- case 22609921 :
- eventLog1.WriteEntry
- ("Volume Up" ) ;
- break ;
- case 21233665 :
- eventLog1.WriteEntry
- ("Volume Down" ) ;
- break ;
- case 22675457 :
- eventLog1.WriteEntry ("Mute
- Button" ) ;
- break ;
- }
- return 0 ;
- break ;
- case 16 :
- if (lParam == 2752513)
- {
- eventLog1.WriteEntry ("Close
- Button" ) ;
- }
- return 0 ;
- break ;
- case 17 :
- if (lParam == 1900545)
- {
- eventLog1.WriteEntry ("Help
- Button" ) ;
- }
- return 0 ;
- break ;
- case 112 :
- if (lParam == 3866625)
- {
- eventLog1.WriteEntry ("Left Mouse
- Button" ) ;
- }
- return 0 ;
- break ;
- }
- }
- return 0 ;
- }
- }
- public class KeyCapture : System.ServiceProcess.ServiceBase
- {
- public System.ComponentModel.Container components = null;
- [DllImport("kernel32" )]
- public static extern int GetCurrentThreadId();
- public KeyCapture()
- {
- this.ServiceName = "KeyCapture";
- InitializeComponent();
- }
- static void Main()
- {
- System.ServiceProcess.ServiceBase[] ServicesToRun;
- ServicesToRun = new
- System.ServiceProcess.ServiceBase[] { new KeyCapture() };
- System.ServiceProcess.ServiceBase.Run(ServicesToRun);
- }
- private void InitializeComponent()
- {
- }
- protected override void Dispose( bool disposing )
- {
- if( disposing )
- {
- if (components != null)
- {
- components.Dispose();
- }
- }
- base.Dispose( disposing );
- }
- protected override void OnStart(string[] args)
- {
- //INITIALISING HOOK CLASS ONSTART OF SERVICE
- Win32Hook hook = new Win32Hook();
- hook.SetHook(GetCurrentThreadId());
- }
- protected override void OnStop()
- {
- }
- protected override void OnContinue()
- {
- }
- }
- }
|
---------------
J'ai un string dans l'array (Paris Hilton)
|