Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正确使用NativeWindow实现windows钩子 我没有很多C++背景,但是已经成功地钩住了窗口,并将它的MSG转换成我的应用程序可以消费的事件,IVE是从NealWindows和WndProc继承而来的,并且确定了我感兴趣的MSG,例如WMYVROLL和WMYHRONG。_C#_C++_Winapi_Nativewindow - Fatal编程技术网

C# 正确使用NativeWindow实现windows钩子 我没有很多C++背景,但是已经成功地钩住了窗口,并将它的MSG转换成我的应用程序可以消费的事件,IVE是从NealWindows和WndProc继承而来的,并且确定了我感兴趣的MSG,例如WMYVROLL和WMYHRONG。

C# 正确使用NativeWindow实现windows钩子 我没有很多C++背景,但是已经成功地钩住了窗口,并将它的MSG转换成我的应用程序可以消费的事件,IVE是从NealWindows和WndProc继承而来的,并且确定了我感兴趣的MSG,例如WMYVROLL和WMYHRONG。,c#,c++,winapi,nativewindow,C#,C++,Winapi,Nativewindow,首先,是否存在引发所有常见事件的完整实现,如按键按下、按键向下、按键向上、鼠标移动、鼠标向下、vscroll、hscroll、vresize、hresize窗口大小。我有兴趣确保我正确地实现了这个类 其次,我如何正确地限制NativeWindow生成的事件,以限制实现的聊天量。我假设您正在谈论将窗口挂接到另一个应用程序中。这是一个非常重要的问题,wparam和lparam参数可能包含指针,而不是简单的值。然而,这些指针仅在您所挂接的进程窗口的虚拟内存空间中有效。忽略此项将为您购买AccessVi

首先,是否存在引发所有常见事件的完整实现,如按键按下、按键向下、按键向上、鼠标移动、鼠标向下、vscroll、hscroll、vresize、hresize窗口大小。我有兴趣确保我正确地实现了这个类


其次,我如何正确地限制NativeWindow生成的事件,以限制实现的聊天量。

我假设您正在谈论将窗口挂接到另一个应用程序中。这是一个非常重要的问题,wparam和lparam参数可能包含指针,而不是简单的值。然而,这些指针仅在您所挂接的进程窗口的虚拟内存空间中有效。忽略此项将为您购买AccessViolation异常


您必须p/调用ReadProcessMemory()来读取指向的结构。这需要为每个单独的消息完成,您不能指望通用实现。当你钩住一个像ListView或TreeView这样的非平凡窗口时,这可能会变得非常棘手。

我想你说的是在另一个应用程序中钩住一个窗口。这是一个非常重要的问题,wparam和lparam参数可能包含指针,而不是简单的值。然而,这些指针仅在您所挂接的进程窗口的虚拟内存空间中有效。忽略此项将为您购买AccessViolation异常


您必须p/调用ReadProcessMemory()来读取指向的结构。这需要为每个单独的消息完成,您不能指望通用实现。当你钩住一个像ListView或TreeView这样的非平凡窗口时,这会变得非常棘手。

大多数这样做的程序都使用DLL注入来处理来自拥有该窗口的进程内部的事件。当然,您不能将托管代码注入到另一个进程中,而只能将本机代码注入到另一个进程中,因为本机代码非常小心,不会弄乱应用程序的状态


你想完成什么?挂接其他应用程序的“窗口”应该是最后的手段。

大多数这样做的程序使用DLL注入来处理来自拥有窗口的进程内部的事件。当然,您不能将托管代码注入到另一个进程中,而只能将本机代码注入到另一个进程中,因为本机代码非常小心,不会弄乱应用程序的状态


你想完成什么?挂接其他应用程序的“窗口”应该是最后的选择。

是的,我确实想挂接另一个窗口,为每个消息调用readProcessMemory会导致瓶颈吗?我是这方面的新手,你能提供的任何帮助都会被感激的。RPM很快,一微秒。与现在的线程切换成本相比,这是微不足道的。只有通过向进程中注入DLL,才能以相当快的速度完成此操作。你不能用C代码做这件事。Google SetWindowsHookEx()。顺便说一句,这不是noob材质。是的,我确实想挂接另一个窗口,为每个消息调用readProcessMemory会导致瓶颈吗?我是这方面的新手,你能提供的任何帮助都会被感激的。RPM很快,一微秒。与现在的线程切换成本相比,这是微不足道的。只有通过向进程中注入DLL,才能以相当快的速度完成此操作。你不能用C代码做这件事。Google SetWindowsHookEx()。顺便说一句,这不是noob材料。我想挂接一个类似记事本的应用程序,并根据键盘和鼠标输入添加其他功能。所以我需要得到键盘输入,鼠标输入,滚动输入,选定的文本等。我不认为有任何注入例外捕获这一点,并提出要在我的应用程序中处理的事件。我想钩一个记事本一样的应用程序,并添加基于键盘和鼠标输入的附加功能。所以我需要得到键盘输入,鼠标输入,滚动输入,选定的文本等。我不认为有任何注射例外捕获这一点,并提出要在我的应用程序中处理的事件。