我是Windows编程的新手,主要完成Java(JavaSE、JavaME、Android、JavaEE),所以要详细而温和。我想捕获“在窗口中单击的文件/路径的名称,就像单击桌面上的文件一样”?进一步研究http://www.codeproject.com/Articles/6362/Global-System-Hooks-in-NET,这是一个使用全局系统Hook的小型c#/c++不错的应用程序,用于捕获坐标、点击等鼠标事件。那么捕获文件图标事件的正确API或全局系统Hook是什么? 最佳答案 没有单一的API可以提供该级别的详
我正在学习为WindowsAPI编写Hook,为了练习,我正在为pDeleteFileA函数编写Hook。当调用该函数时,在删除文件之前我想检查文件名是否为“testfile.txt”,如果是,则不会删除它,而是会弹出一条消息,如果它调用了其他内容,则继续删除文件。我已经编写了一些代码并且代码编译没有任何错误,但是当我尝试删除“testfile.txt”时,它只是被删除了。也许有人可以给我提示我做错了什么或没有做什么?到目前为止,这是我的代码:#includestructhook_t{//adatatypetostoreinformationaboutourhookboolisHook
有没有简单的方法来解决这个问题?我想我可以使用WM_MOVE通过保持计时器来告诉我它何时开始。如果窗口在最后2秒内没有收到WM_MOVE消息,那么我就知道它刚刚开始移动。然后我又设置了一个定时器,等待他们在一段时间内(2秒)没有消息。如果什么都没有收到,那么我可以确信窗口移动已经完成。这是解决这个问题的正确方法吗? 最佳答案 如果您可以看到WM_MOVE消息,那么您也可以看到WM_ENTERSIZEMOVE和WM_EXITSIZEMOVE消息。 关于c++-安装了全局Hook后,我如何知
publicenumeVisualType{None=0,Torch=1,Rune01,Rune02,Rune03,FireRed01,LaserBlackWhiteLeft,LaserBlackWhiteRight,LaserBlueRedLeft,LaserBlueRedRight,Wheel01,Wheel01a,Wheel02,BlinkingStar,MovingPillar}publicclassEnumTypeConverter:TypeConverter{publicoverrideboolGetStandardValuesSupported(ITypeDescript
我正在尝试在Windows操作系统上挂接CBTHook。我目前使用的是Windows7x64。我看过很多帖子讨论这个问题,但没有一个能解决我的问题。应用程序运行良好;Hook已安装,我可以看到一些通知。实际上出现的问题是应用程序没有收到关于同一台机器上运行的其他进程的CBT钩子(Hook)的通知。该应用程序是用C#编写的(使用Microsoft.NET)。这是一个正在运行的示例:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Diagnostics;usingSyste
我想自己绘制和移动我的窗口(使用chromium嵌入式框架)。为此,我需要在鼠标移出窗口时进行全局回调-所以我安装了一个低级鼠标钩子(Hook):hMouseLLHook=SetWindowsHookEx(WH_MOUSE_LL,(HOOKPROC)mouseHookProc,hInstance,NULL);钩子(Hook)简单地抓取鼠标事件并调用“CallNextHookEx”。这里没有问题,一切都按预期进行。我现在的问题是:如果调试器中断或抛出异常,我就不能再移动鼠标了。我尝试在另一个线程中处理钩子(Hook),如下所示:HANDLEmouseProcHandle=CreateTh
我想写一个全局键盘钩子(Hook)来禁止任务切换。当我用谷歌搜索时,我在c#、cpp(和delphi)中找到了很多代码,但我需要一些关于钩子(Hook)的基本概念(最好是例子在C中)。因此,请建议可以帮助我从C的角度理解事物的资源和链接。PS:我找到了一个不错的workingexample(适用于winXP和旧版本),但是当我尝试编译代码时,它给了我:我尝试在所有header中搜索“IDC_”常量(MinGWgcc安装附带的默认header和开发人员提供的header),但没有运气......如果有人可以编译代码并使其运行请帮助我。我没有在这里上传源代码本身,因为有一些头文件依赖项,在
如果我使用WinForm模板创建C#(.NET3.5)应用程序并将Form.TransparencyKey属性设置为白色,则标题栏和关闭、最小化、最大化按钮在运行该应用程序时不起作用,单击它们会导致窗口失去焦点,就像在窗口外单击一样。当鼠标悬停在关闭等上时没有动画。这一直持续到窗口被最小化(窗口上的按钮不起作用所以必须使用winkey+m或通过任务栏完成)然后恢复。在此之后,窗口似乎表现正常。这种行为背后的机制是什么?环境:WindowsVista(Aero)和VS2008。 最佳答案 与TransparencyKey颜色匹配的窗口
我在Windows窗体申请表的关闭事件中使用以下代码:privatevoidMain_FormClosing(objectsender,FormClosingEventArgse){DialogResultdr=MessageBox.Show("Areyousureyouwanttoquit?","LeavingApp",MessageBoxButtons.YesNo,MessageBoxIcon.Question);if(dr==DialogResult.No){return;}elseApplication.Exit();}但问题是,只要用户单击"is",应用程序就会结束,但当用户
我想创建一个键盘和鼠标Hook,它将作为Windows服务启动。我想监控全天使用该系统的各种用户的事件。即哪些用户在什么时间活跃。是否可以确定哪个用户将接收事件?(该服务将作为单独的用户运行,因此getCurrentUser不合适) 最佳答案 不,Environment.UserName不起作用-Hook过程不会在输入接收器的上下文中调用。事实上,我认为这是不可能的-如果使用.NET,您无疑会使用_LLHook,它是低级Hook。在我看来,它们在Windows甚至确定哪个桌面/应用程序将接收事件之前就已执行。不过,我可能错了——我自