草庐IT

光流检测OpticalFlow

全部标签

c++ - 检测 DLL 的卸载

我有一个特殊的要求,我相信没有别的办法,即:检测DLL的卸载。我用谷歌搜索并发现afour-yearsoldSO对这个。我选择了相同的解决方案:HookFreeLibrary。当代码进入MyFreeLibrary时,我将钩住入口点指定的模块以相同的方式(内联钩子(Hook))。而在MyEntryPoint,我会先调用原来的入口点,然后检查reason参数-如果值等于DLL_PROCESS_DETACH,表示这个DLL的清理工作是刚刚完成,它将从地址空间中卸载。在这一点上,我有机会做我的工作。它有效。就这样?不幸的是,它还没有完成。一个非常重要的事情被忽略了:依赖。例如,a.dll链接到

c++ - 在 C/C++ 中如何以编程方式检测 SATA SSD 在 Windows 中的插入和拔出?

我正在尝试编写一个C/C++程序来检测Windows7中的新SATASSD(固态驱动器)连接。这款SATASSD还附带一条SATA-USB数据线。我已经将SATA端连接到SATASDD,将USB端连接到我的电脑。通过使用Windows消息系统检测WM_DEVICECHANGE消息和关联的DBT_DEVICEARRIVAL事件,我已经能够检测到SATASDD连接和移除。为此,我还使用RegisterDeviceNotification注册设备(即SATASSD),以便顶层窗口接收设备类型DBT_DEVTYP_DEVICEINTERFACE的通知以及SATASSD的classguid.但是

.net - 在 C# .Net 中,如何检测对话框是否出现?

我正在开发一个使用MicrosoftXPSDocumentWriter驱动程序打印报告的应用程序。如果用户试图覆盖打开的文件,驱动程序会弹出用户无权保存的错误对话框。然而,在一台QA的机器上,弹出对话框永远不会出现。我希望应用程序弹出自己的错误对话框,但前提是驱动程序的错误对话框不弹出。如何检测驱动程序的错误对话框是否弹出?? 最佳答案 不要让错误传播那么远?询问文件名,检测其(不)存在,显示您自己的错误,将文档传递给打印机。 关于.net-在C#.Net中,如何检测对话框是否出现?,我

windows - 用于检测不死进程的 NtQueryInformationProcess 替代方案?

我想检测何时有人在不通知调试器的情况下终止暂停的调试进程。(例如,到达控制台应用程序中的断点,并关闭应用程序的控制台窗口。)进程进入类似僵尸的状态,并且在调试器释放它之前无法进一步交互。当通过NtQueryInformationProcess收集有关进程的信息时,此状态似乎设置了PROCESS_EXTENDED_BASIC_INFORMATION::IsProcessDeleting标志,但标志、结构和函数在MSDN上实际上未记录并标记为“请勿使用”。测试这个标志可靠吗?我可以使用更好的“官方”API吗?(是的,我知道IsProcessDeleting也会在进程正常关闭(惊讶,惊喜)时

c++ - 检测正在插入的 USB 驱动器 - Windows 服务

我正在尝试检测插入到Windows服务中的USB磁盘驱动器,我已将其作为普通Windows应用程序完成。问题是以下代码不适用于卷。注册设备通知:DEV_BROADCAST_DEVICEINTERFACEnotificationFilter;HDEVNOTIFYhDeviceNotify=NULL;::ZeroMemory(¬ificationFilter,sizeof(notificationFilter));notificationFilter.dbcc_size=sizeof(DEV_BROADCAST_DEVICEINTERFACE);notificationFilter.

windows - Window 2003 server SP2检测

是否可以自动检测WindowServer2003是否安装了SP2?我正在使用InstallShield9安装脚本,所以我想我需要检查一些注册表项? 最佳答案 我从2003年左右就没有使用过InstallShield,所以我不确定有什么可用,但请查看:http://kb.flexerasoftware.com/doc/Helpnet/installshield14langref/LangrefSYSINFO.htm查看SYSINFO.nISOSL==ISOSL_WINSERVER2003SYSINFO.WINNT.bWinServer

c - 以编程方式检测 UPX

我正在尝试弄清楚如何检测二进制文件是否已使用UPX压缩。我正在使用一个简单的CRC来检测我的应用程序是否以任何方式更改,如果CRC由于打包程序而在大小上失败,我想将其检测为正常。现在我开始使用UPX。那么,二进制文件上有标记吗?是否有任何我应该搜索的特定JMP或其他说明?这将主要在Windows中进行测试,但将来我可能会将其添加到Linux中。感谢任何帮助(和代码)。添加:我发现在我检查的10个二进制文件中AddressOfEntryPointImportDirectoryRVAResouceDirectoryRVA指向UPX或具有由UPX设置的偏移量。有这方面的信息吗?谢谢

windows - 检测安静模式

我需要能够在我的设置项目的类库中检测安静模式。一些库的方法显示对话框形式,如果安装程序在安静模式下运行,它们将不可见。所以我需要检测安静模式,或者至少检查窗口窗体是否可以显示。我该怎么做? 最佳答案 参见UILevelWindows安装程序的属性。 关于windows-检测安静模式,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4943297/

windows - 如何检测 Windows 终端服务器是否处于安装模式

我可以使用以下命令来查明Windows终端服务器是否处于安装模式。changeuser/query如何通过WindowsAPI以编程方式检测此问题? 最佳答案 我猜你想要Win32_TerminalServiceSetting中的TerminalServerMode属性WMI类ThisTechnetarticle有一个脚本示例,您可能可以对其进行调整以测试该属性。要在nativewinapi中执行此操作(不使用WMI),您可以查看winsta.dll中未记录的函数或检查registry.

java - 使用 JNA native 等待调用检测线程中断 (Windows)

我正在尝试编写一些通过JNA执行等待的代码(例如,通过调用Kernel32函数WaitForSingleObject),但我也希望在调用Thread.interrupt()时等待完成;我假设Java使用类似Event对象的东西来实现中断;有什么方法可以从Java获取事件以便在调用WaitForMultipleObjects时使用它?或者,如果线程中断,我是否可以通过其他方式安排等待完成? 最佳答案 Java通过NIO支持它,很少有人知道,有问题的类是抽象的,但这不是问题:java.nio.channels.spi.AbstractI