Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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++ CreateToolhelp32Snapshot和PSCaptureSnashot函数之间的差异_C++_Windows_Winapi_Visual C++_Win32 Process - Fatal编程技术网

C++ CreateToolhelp32Snapshot和PSCaptureSnashot函数之间的差异

C++ CreateToolhelp32Snapshot和PSCaptureSnashot函数之间的差异,c++,windows,winapi,visual-c++,win32-process,C++,Windows,Winapi,Visual C++,Win32 Process,WinAPI中定义了两个函数来捕获目标进程的数据,有人能解释一下这些函数的用例吗 何时使用每个功能? 如果我们必须检查目标进程在windows运行时是否仍处于活动状态,那么哪一个进程可以有效地帮助我们?windows API会随着windows版本的演变而增长 CreateToolhelp32Snapshot可用于Windows XP。PSCaptureSnashot可从Windows 8.1获得 因此,不同之处就在于所记录的内容。PSCaptureSnapshot可能具有更多功能。

WinAPI中定义了两个函数来捕获目标进程的数据,有人能解释一下这些函数的用例吗

何时使用每个功能?
如果我们必须检查目标进程在windows运行时是否仍处于活动状态,那么哪一个进程可以有效地帮助我们?

windows API会随着windows版本的演变而增长

CreateToolhelp32Snapshot可用于Windows XP。PSCaptureSnashot可从Windows 8.1获得

因此,不同之处就在于所记录的内容。PSCaptureSnapshot可能具有更多功能。在大多数情况下,旧的API版本只是调用新的API,并使用新功能转换新版本的标志和结构

我不能在这里详细说明这一点,但我假设如果CreateToolhelp32Snapshot的功能对您来说足够的话,两者之间没有太大的区别

对我来说,主要的决定是:你的目标是什么Windows版本?Windows7?答案很简单,使用什么…;)


根据标志的不同,这两个函数都会为您提供所需的内容…

谢谢您的回答。。我正在使用Win10 SDK。目前我正在使用PSCaptureSnapshot函数,我还没有分析任何内容。我只是想知道它们的有效性,以便检查进程状态,无论它是否仍然处于活动状态not@Buddhika-如果需要检查进程是否仍处于活动状态,则无需使用任何此快照功能。你需要等一下handle@RbMm谢谢你的提示。我会考虑的。正如你的意思是使用快照,它可能会有性能冲击,不是吗?是的。无需使用此功能是不明智和有效的。。。你想知道什么?更改您的问题以给我们更准确的答案。CreateToolhelp32Snapshot来自Win95,只有NT4没有提供它。
如果我们必须检查目标进程是否仍处于活动状态
-您需要打开进程句柄并在调用中使用它
WaitForSingleObject[Ex]
WaitForMultipleObjects[Ex]
MsgWaitForMultipleObjects[Ex]
,etc@RbMm最安全的方式是什么?使用EnumProcess和OpenProcess是否能保证流程的存在?这取决于您希望如何确定流程。简称?在这种情况下,您需要
CreateToolhelp32Snapshot
+
Process32First
+
Process32Next
+
OpenProcess
同步
访问。但按名称搜索过程并不可靠。不清楚您需要什么流程。可能存在另一种方式,用于
pscapturesnashot
您需要已经拥有目标进程的句柄。如果您只想在进程退出时获取—对于您所需要的
pscapturesnapshot
。@RbMm我没有使用短名称、进程ID或进程句柄。。可以有多个实例。在多个实例的情况下可能会有帮助