求EasyHook鉤子WM_COPYDATA的例子
一下是我用SetWindowsHookEx安裝鉤子的程序,查了很多資料,說不能安裝全域鉤子,所有安裝鉤子的時候不成功(回傳0)。在我的帖子【https://bbs.csdn.net/topics/396175597】有人建議用easyhook。所有在這立貼,求win copydate的例子。
public class CopyDataHook {
private const int WM_COPYDATA = 0x004A;
private IntPtr nextHookPtr;
private HookProc hookProc;
private const int HookType.CallWndProc = 4;
[DllImport("User32.dll")]
public static extern void UnhookWindowsHookEx(IntPtr handle);
[DllImport("User32.dll")]
public static extern IntPtr SetWindowsHookEx(int idHook, [MarshalAs(UnmanagedType.FunctionPtr)] HookProc lpfn, IntPtr hinstance, int threadID);.
[DllImport("User32.dll")]
public static extern IntPtr CallNextHookEx(IntPtr handle, int code, IntPtr wparam, IntPtr lparam);
public CopyDataHook()
{
nextHookPtr = IntPtr.Zero;
}
public void SetCopyDataHook()
{
if (nextHookPtr != IntPtr.Zero)
return;
hookProc = new HookProc(CopyDatahookProc);
nextHookPtr = SetWindowsHookEx((int)HookType.CallWndProc,
hookProc,
Marshal.GetHINSTANCE(
Assembly.GetExecutingAssembly().GetModules()[0]),
0);
Console.Write(string.Format("HookPtr:{0}", nextHookPtr.ToString()));
}
}
uj5u.com熱心網友回復:
可以安裝全域鉤子(鉤子函式在dll(c/c++的動態連接庫中)),c#的動態庫和c/c++的不一樣,所以只能用區域鉤子
msdn吧,很全面的,或者你找個會寫的朋友幫你寫好,你直接呼叫,不是一樣的
uj5u.com熱心網友回復:
我就是想找個人寫一下。能找到會寫的朋友我就不在這浪費時間啦。。。
或者有會寫的幫忙留個聯系方式,必重謝
uj5u.com熱心網友回復:
沒看明白,你是想hook C#代碼里面的WM_COPYDATA,還是原生代碼里面的?托管和非托管的hook不一樣
uj5u.com熱心網友回復:
狗子需要在非托管程式集
即使你有非托管DLL,那么托管呼叫非托管能不能呼叫這還是個問題
記得是不能呼叫的
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/53920.html
標籤:C#
上一篇:C# 如何獲取webbrower 里webscoket的通信內容呢?
下一篇:求決議一段字串的方法
