如何在程序中使用C++来监听/识别程序?

如何在程序中使用C++来监听/识别程序?,c++,windows,events,listen,C++,Windows,Events,Listen,具体来说,我希望在程序运行时收听并记录信息,例如:时间戳、可执行文件、windows名称和用户。查看使用Perfmon API的check MSDN作为参考。查看使用Perfmon API的check MSDN作为参考。或者,使用WMI接口找出正在运行的内容并采取适当的操作。在下面的VBScript代码中,正在使用Select*from Win32_进程查询WMI子系统,以更改进程优先级。找出Win32_进程还有哪些其他属性可用,你应该找到朝着你想要的方向前进的东西 Const NORMAL_P

具体来说,我希望在程序运行时收听并记录信息,例如:时间戳、可执行文件、windows名称和用户。

查看使用Perfmon API的check MSDN作为参考。

查看使用Perfmon API的check MSDN作为参考。

或者,使用WMI接口找出正在运行的内容并采取适当的操作。在下面的VBScript代码中,正在使用Select*from Win32_进程查询WMI子系统,以更改进程优先级。找出Win32_进程还有哪些其他属性可用,你应该找到朝着你想要的方向前进的东西

Const NORMAL_PRIORITY = 32
Const LOW_PRIORITY = 64
Const REALTIME_PRIORITY = 128
Const HIGH_PRIORITY = 256
Const BELOWNORMAL_PRIORITY = 16384
Const ABOVENORMAL_PRIORITY = 32768

Function SetPriority( sProcess, nPriority )
    Dim sComputer
    Dim oWMIService
    Dim cProcesses
    Dim oProcess
    Dim bDone

    bDone = False
    sComputer = "."
    Set oWMIService = GetObject("winmgmts:\\" & sComputer & "\root\cimv2")

    Set cProcesses = oWMIService.ExecQuery ("Select * from Win32_Process Where Name = '" & sProcess & "'")
    For Each oProcess in cProcesses
        oProcess.SetPriority( nPriority )
        bDone = True        
    Next
    SetPriority = bDone
End Function

或者,使用WMI接口找出正在运行的内容并采取适当的操作。在下面的VBScript代码中,正在使用Select*from Win32_进程查询WMI子系统,以更改进程优先级。找出Win32_进程还有哪些其他属性可用,你应该找到朝着你想要的方向前进的东西

Const NORMAL_PRIORITY = 32
Const LOW_PRIORITY = 64
Const REALTIME_PRIORITY = 128
Const HIGH_PRIORITY = 256
Const BELOWNORMAL_PRIORITY = 16384
Const ABOVENORMAL_PRIORITY = 32768

Function SetPriority( sProcess, nPriority )
    Dim sComputer
    Dim oWMIService
    Dim cProcesses
    Dim oProcess
    Dim bDone

    bDone = False
    sComputer = "."
    Set oWMIService = GetObject("winmgmts:\\" & sComputer & "\root\cimv2")

    Set cProcesses = oWMIService.ExecQuery ("Select * from Win32_Process Where Name = '" & sProcess & "'")
    For Each oProcess in cProcesses
        oProcess.SetPriority( nPriority )
        bDone = True        
    Next
    SetPriority = bDone
End Function

最淫秽的方式是谷歌桌面方式 也就是说,将DLL加载到曾经启动过的每个进程中,并记录信息。 如果您对此感兴趣,请安装GoogleDesktop并观察其dll加载到您的进程中。然后查看注册表,看看它是否做到了。
请注意,这正在进入类似病毒的行为领域。

最淫秽的方式是谷歌桌面方式 也就是说,将DLL加载到曾经启动过的每个进程中,并记录信息。 如果您对此感兴趣,请安装GoogleDesktop并观察其dll加载到您的进程中。然后查看注册表,看看它是否做到了。
请注意,这正进入类似病毒的行为领域。

我将使用PSAPI函数定期获取运行进程的列表。

我将使用PSAPI函数定期获取运行进程的列表。

您可以设置WMI永久事件订阅以监视进程创建并记录进程细节。我有一些示例-其中一个示例监视notepad.exe的创建并将事件记录在txt文件中。永久事件订阅始终监视事件,但是如果您想在应用程序的持续时间内监视事件,则可以使用带有C++的WMI COM API -在两种情况下WQL事件查询都是相同的。文档是。

您可以设置WMI永久事件订阅以监视进程创建并记录详细信息。我有一些示例-其中一个示例监视notepad.exe的创建并将事件记录在txt文件中。永久事件订阅始终监视事件,但是如果您想在应用程序的持续时间内监视事件,则可以使用带有C++的WMI COM API -在两种情况下WQL事件查询都是相同的。文件是