c#갈고리 학습 노트
지금부터 코드를 붙여보도록 하겠습니다. 코드는 레드 블랙 리그의 한 문장을 참조했습니다.
public class SetHook
{
public class HookTypes
{
///
///
///
public enum HookType
{
WH_JOURNALRECORD = 0,//
WH_GETMESSAGE = 3,//
WH_JOURNALPLAYBACK = 1,// WH_JOURNALRECORD
WH_CALLWNDPROC = 4,// ,
WH_CBT = 5,// CBT
WH_MSGFILTER = -1,// 、 、 、
WH_SYSMSGFILTER = 6,// , , ,
//8
WH_DEBUG = 9,//
WH_SHELL = 10,//
WH_FOREGROUNDIDLE = 11,// ,
#region
///
///
///
WH_KEYBOARD = 2,
///
/// windows NT ,
///
WH_KEYBOARD_LL = 13,
///
///
///
WH_MOUSE = 7,
///
/// windows NT ,
///
WH_MOUSE_LL = 14,
#endregion
}
}
public abstract class Hooks : HookTypes
{
public delegate int HookProc(int nCode, int wParam, IntPtr IParam);
///
///
///
/// ,
///
/// 。 lpfn DLL
/// ID , 0, ,
/// , NULL
[DllImport("user32.dll", CallingConvention = CallingConvention.StdCall)]
public static extern int SetWindowsHookEx(HookType hooktype, HookProc lpfn, IntPtr hInstance, int threadId);
///
///
///
///
///
[DllImport("user32.dll", CallingConvention = CallingConvention.StdCall)]
public static extern bool UnhookWindowsHookEx(int idHook);
///
///
///
///
///
///
///
///
[DllImport("user32.dll", CallingConvention = CallingConvention.StdCall)]
public static extern int CallNextHookEx(int idHook, int nCode, int wParam, IntPtr IParam);
///
///
///
///
[DllImport("kernel32")]
public static extern int GetCurrentThreadId();
#region
///
///
///
public HookProc proc;
public abstract int SetWindowsHookEx();
#endregion
}
public class AddHook : Hooks
{
HookType hooktyp;
HookProc hookproc;
public AddHook(HookType _hooktype, HookProc _hookproc)
{
this.hooktyp = _hooktype;
this.hookproc = _hookproc;
}
public int AddPrivateHook()
{
return SetWindowsHookEx();
}
///
///
///
///
public override int SetWindowsHookEx()
{
//int theadId = System.Threading.Thread.CurrentThread.ManagedThreadId(); GetCurrentThreadId()
int hookId = 0;
object hookId_ = SetWindowsHookEx(this.hooktyp, this.hookproc, IntPtr.Zero, GetCurrentThreadId());
if (hookId_ != null)
{
hookId = (int)hookId_;
}
return hookId;
}
// ,
}
}
내가 새로 만든 클래스를 호출하면 라인이나 시스템 갈고리를 호출하기 쉬우니 여기에는 붙이지 않겠다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.