关于C++ hook函数的问题

想实现在鼠标放在一个文件上时能够获得其存储路径和文件名,用HOOK可以实现吗?怎样实现?
请各位高人讲解一下
能给出完整的代码吗?
如果有的话奖100分!

这个可以有

不就是得到储存路径和文件名嘛

首先 你能看见的 都是一个叫explorer进程显示出来的
首先hook explorer textout之类的东西 然后通过一系列的计算获得文件的名字, 这个比较复杂, 获取鼠标位置, 然后比较每个drawtext或者textout的绘图矩形 然后确定是哪个textout 得到文件名

存储路径也好说啊, 你获取鼠标所在的窗口, 这个可以通过截获每个窗口矩形通过层次叠放判断

然后枚举窗口中那个textbox 然后拼接上路径就行了啊

不过我想破头皮想不出来这个有啥用 用拖放的话 直接用ole拖放多好........., 祝您好运

==============================================================
温馨提示:内容为网友见解,仅供参考
无其他回答

c++hook方法
C++中的hook方法通常指的是一种技术,用于在运行时改变或扩展程序的行为。在C++中,没有像某些高级语言那样内建的“hook”机制,但可以通过一些技术手段实现类似的功能。在C++中,一个常见的hook实现方式是通过函数指针或虚函数进行动态绑定。这种方法允许开发者在运行时替换函数实现,从而改变程...

C++ hook 问题
\/\/ function declaration.LRESULT CALLBACK LowLevelKeyboardProc( int nCode, WPARAM wParam, LPARAM lParam );int main(){ \/\/ Retrieve the applications instance HINSTANCE appInstance = GetModuleHandle(NULL);\/\/ Set a global Windows Hook to capture keystrokes.SetWindowsHookEx( WH_KEYBOARD_LL, L...

关于C++ hook函数的问题
首先 你能看见的 都是一个叫explorer进程显示出来的 首先hook explorer textout之类的东西 然后通过一系列的计算获得文件的名字, 这个比较复杂, 获取鼠标位置, 然后比较每个drawtext或者textout的绘图矩形 然后确定是哪个textout 得到文件名 存储路径也好说啊, 你获取鼠标所在的窗口, 这个可以通过截获每个...

请详细介绍VC++的HOOK使用方法
很多杀毒软件当病毒,学学可以,用的话问题多多。hook分两种,一个是单进程hook,一个是全局hook(只能写在dll中),hook可以在windows消息发给程序之前截取消息,属于很流氓的一种技术。全局hook更是危险性大大。比如原来你按tab键切换大小写,现在你写一个全局hook,捕获所有tab键消息,把它该成关机程序,...

钩子函数的原理c\/c++
我的个人理解:钩子函数其实就是函数指针,系统或软件定义好一些钩子,而你来把这些钩子挂接起来!说白了就是有些动作系统需要针对不同的情况做不同的处理,此时就需要定义一个钩子。具体的操作由用户挂上的钩子函数实现.比如:include "stdio.h"void (*g_say_func)(void);void regist_say( void (*p...

c++全局鼠标hook无法成功
我看了你的代码,写的没有问题。但问题是你写的是控制台程序,它没有窗口消息处理过程,也就是不是窗口程序(GUI程序),hook的本意是拦截窗口处理过程,它不能拦截没有窗口的程序(这里说的不严密,有的程序有窗口,但是没有显示出来)。你可以在程序中建立一个wndclass的实体,添加上消息处理过程,在...

什么时候用到钩子(HOOK) C++,钩子可以达到什么目地?
你既然知道钩子,我觉得这个问题你应该知道.钩子是微软windows操作系统独有的,用以钩取其他程序(或窗口)的消息的,(windows的消息机制就不说了 ),消息进入消息队列时,先是被钩子钩走,如果没有钩子钩取该消息,消息才能到达本应到达的应用程序,也就是说钩子比应用程序拥有更高的消息获取优先权,当然钩子勾...

C++如何禁用全局键盘钩子或者禁止某个程序挂钩(hook)?
对于普通程序,一个双缓冲钩子足够了(相当于一个假置顶钩子),代码如下:HHOOK m_hHOOK1 = NULL, m_hHOOK2 = NULL; m_hHOOK1 = (HHOOK)SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyboardProc, GetModuleHandle(L"HOOK"), 0);HOOK 变为 your module name m_hHOOK2 = (HHOOK)...

C++ hook如何只屏蔽某个程序的键盘输入,而不是所有程序.
\/\/ 第一个尝试是处理的消息类型 \/\/第二个是回调函数 \/\/第三个为NULL就行 \/\/第四个参数是处理那个线程的消息 (这里是本线程)HHOOK g_keyhook=NULL;g_keyhook=SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, NULL,GetCurrentThreadId());\/\/\/ \/\/键盘钩子(回调函数)LRESULT CALLBACK KeyboardProc(int...

C++ DLL注入微信hook实现自动接收消息
找到合适的钩子函数后,通过调整代码实现消息拦截与处理。利用jmp指令的特性,确定跳转代码的计算公式,进而实现与目标函数的连接。编写hook函数和执行代码,确保安全且高效地处理消息。最后,实现消息处理逻辑,包括备份寄存器、执行自定义代码、恢复寄存器以及调用原函数以避免程序崩溃。确保消息接收流程连续无阻...

相似回答