我想跟踪由某些进程创建的ActiveX控件。为了简化问题,我首先只想监视当前进程。我想这样做是为了检查是否有任何ActiveX控件支持IOleWindow如果是,给定的HWND是否属于该ActiveX控件(以便我可以将HWND映射到ActiveX控件)。有人有这方面的经验吗?我的第一个想法是使用APIHook来监控CoCreateInstance调用,但我读到这并非在所有情况下都有效。一些谷歌研究显示http://www.pocketsoap.com/sf/activation.html其中谈到安装自定义类工厂-这将如何工作? 最佳答案
我正在使用C++,我正在尝试从sysinternals创建一个类似于handle.exe的程序。基本上,我从用户那里获取文件名,我需要能够显示哪个进程正在锁定该文件。有谁知道我可以从哪里获得这些信息?我试过在winapi中使用一些过程函数,但我不知道如何获取这些信息,这是我尝试创建的示例:http://www.kartmann.org/freeware/WhoSLocking/ReadMe.htm提前致谢 最佳答案 NtQuerySystemInformation上有一个未记录的选项获取进程的文件句柄。有示例代码here.第二个示例
我有一个用于公开函数的python自定义c++模块,其中一些函数使用TBB(tbb21_015oss)来加速处理。到目前为止,在Win32环境中从Python(2.6.2)调用TBB加速函数时我没有遇到任何问题。但是现在,我在从Python线程(通过使用threading.Thread类创建)调用此类函数时遇到问题-在调用相同函数时,从主Python线程工作正常。调用该函数导致应用程序崩溃,并显示以下消息:First-chanceexceptionat0x03522e96inpython.exe:0xC0000005:Accessviolationreadinglocation0x00
我需要劫持我自己进程的所有操作系统调用。我无法重写代码,因为它部分不是我的代码(插件)。我需要能够在特定系统调用的实现中决定是否要调用原始实现。操作系统首先是windowsxp及更高版本。稍后的osx10.5和更高版本将随之而来。从32位版本的Windows开始,之后所有操作系统也将支持64位版本。我找到了很多关于Hook其他进程的文档和工具,但我希望我的工作简单得多,我希望能得到一些源代码。提前致谢,Bernd。 最佳答案 有许多Hook库可以让您执行此操作,例如Windows上的Detours或madCodeHook。毫无疑问,
我有一个进程在从IIS进程中运行时会溢出堆栈,但在单独运行时工作正常。我怀疑它自己获得默认的1MB堆栈,但在IIS中获得的堆栈少一些。为了避免干扰IIS工作进程,我在IIS进程中使用一个子线程来分配更大的堆栈,但我怀疑根据文档(http://msdn.microsoft.com/en-us/library/ms149581.aspx),线程创建的堆栈大小参数被忽略了当堆栈溢出时,我可以在调试器中查看暂停的进程,但我如何才能知道实际分配了多大的堆栈? 最佳答案 答案如下。在调试器中,在伪寄存器TIB(http://msdn.micro
我有一个DLL,其中包含一个线程函数,其伪代码如下所示:volatileBOOLstopped=FALSE;voidStopEverything(){/*Entercriticalsection*/stopped=TRUE;/*Leavecriticalsection*/}voidworkerThreadFunc(){Initialize();/*Checkpoint1*/if(stopped){/*Docleanup*/return;}doLaboriousTask1();/*Checkpoint2*/if(stopped){/*Docleanup*/return;}doLabori
我试图让explorer.exe保持终止状态,直到发生事件。我的意思是我有一个xml文件,它是从我的Windows服务后台工作程序中读取的。它等待一个值,直到explorer.exe不应该执行,这是出于安全目的。到目前为止我已经尝试过了:While(True)DimdocAsNewXmlDocumentdoc.Load("C:\Users\Alpha-Guy\AppData\Local\Packages\new-design_sa0tb4645bqbp\LocalState\metadata.xml")Dimlist=doc.GetElementsByTagName("authenti
我什么时候需要在Windows应用程序中使用消息循环?例如,对于Windows服务,我是否需要为我创建的每个线程或仅为主服务进程创建一个消息循环?while(true){GetMessage(&messageHandle,0,0,0);DispatchMessage(&messageHandle);} 最佳答案 每个nativeWindows程序都至少包含一个消息循环(通常称为“消息泵”),就像您举的例子一样。这是为了能够处理由程序本身、其他应用程序或操作系统发起的Windows事件。Windows事件的示例可以用于计时器、套接字通
我有一个在Win2003上运行良好的简单代码:proc=subprocess.Popen('',stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE)out=proc.communicate()[0]但是在Windows8上这部分;out=proc.communicate()[0],挂起。有人见过这个问题吗?我检查过进程真的终止了(当子进程启动时PID不存在)生成proc.stdout.readlines()也是一个问题,它也挂起。如何检查标准输出是否有EOF?当我停止子进程时,proc.communic
我尝试在linuxforwindows上使用mingw交叉编译一些c++11源代码。代码使用std::thread。当我编译时,我总是会遇到一些错误:$../mingw/cross/bin/i686-w64-mingw32-g++-std=c++11-Iinclude/test.cpp-lstdthread-otestInfileincludedfromtest.cpp:4:0:...error:'thread'innamespace'std'doesnotnameatype...我可以在mingw中启用c++11线程吗?使用本地g++编译代码没有任何问题。谢谢,问候凯文-编辑-我刚刚