`
netcome
  • 浏览: 482216 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AutoIT获取进程信息

 
阅读更多

;=============================================================================== ; Function Name:    _ProcessListProperties() ; Description:   Get various properties of a process, or all processes ; Call With:       _ProcessListProperties( [$Process [, $sComputer]] ) ; Parameter(s):  (optional) $Process - PID or name of a process, default is "" (all) ;          (optional) $sComputer - remote computer to get list from, default is local ; Requirement(s):   AutoIt v3.2.4.9+ ; Return Value(s):  On Success - Returns a 2D array of processes, as in ProcessList() ;            with additional columns added: ;            [0][0] - Number of processes listed (can be 0 if no matches found) ;            [1][0] - 1st process name ;            [1][1] - 1st process PID ;            [1][2] - 1st process Parent PID ;            [1][3] - 1st process owner ;            [1][4] - 1st process priority (0 = low, 31 = high) ;            [1][5] - 1st process executable path ;            [1][6] - 1st process CPU usage ;            [1][7] - 1st process memory usage ;            [1][8] - 1st process creation date/time = "MM/DD/YYY hh:mm:ss" (hh = 00 to 23) ;            [1][9] - 1st process command line string ;            ... ;            [n][0] thru [n][9] - last process properties ; On Failure:      Returns array with [0][0] = 0 and sets @Error to non-zero (see code below) ; Author(s):        PsaltyDS at http://www.autoitscript.com/forum ; Date/Version:   07/02/2008  --  v2.0.2 ; Notes:            If an integer PID or string process name is provided and no match is found, ;            then [0][0] = 0 and @error = 0 (not treated as an error, same as ProcessList) ;          This function requires admin permissions to the target computer. ;          All properties come from the Win32_Process class in WMI. ;            To get time-base properties (CPU and Memory usage), a 100ms SWbemRefresher is used. ;=============================================================================== Func _ProcessListProperties($Process = "", $sComputer = ".")     Local $sUserName, $sMsg, $sUserDomain, $avProcs, $dtmDate     Local $avProcs[1][2] = [[0, ""]], $n = 1     ; Convert PID if passed as string     If StringIsInt($Process) Then $Process = Int($Process)     ; Connect to WMI and get process objects     $oWMI = ObjGet("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" & $sComputer & "\root\cimv2")     If IsObj($oWMI) Then ; Get collection processes from Win32_Process         If $Process = "" Then ; Get all             $colProcs = $oWMI.ExecQuery("select * from win32_process")         ElseIf IsInt($Process) Then ; Get by PID             $colProcs = $oWMI.ExecQuery("select * from win32_process where ProcessId = " & $Process)         Else ; Get by Name             $colProcs = $oWMI.ExecQuery("select * from win32_process where Name = '" & $Process & "'")         EndIf                 If IsObj($colProcs) Then ; Return for no matches             If $colProcs.count = 0 Then Return $avProcs ; Size the array             ReDim $avProcs[$colProcs.count + 1][10]             $avProcs[0][0] = UBound($avProcs) - 1 ; For each process...             For $oProc In $colProcs   ; [n][0] = Process name                 $avProcs[$n][0] = $oProc.name   ; [n][1] = Process PID                 $avProcs[$n][1] = $oProc.ProcessId   ; [n][2] = Parent PID                 $avProcs[$n][2] = $oProc.ParentProcessId   ; [n][3] = Owner                 If $oProc.GetOwner($sUserName, $sUserDomain) = 0 Then $avProcs[$n][3] = $sUserDomain & "\" & $sUserName   ; [n][4] = Priority                 $avProcs[$n][4] = $oProc.Priority   ; [n][5] = Executable path                 $avProcs[$n][5] = $oProc.ExecutablePath   ; [n][8] = Creation date/time                 $dtmDate = $oProc.CreationDate                 If $dtmDate <> "" Then       ; Back referencing RegExp pattern from weaponx                     Local $sRegExpPatt = "\A(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(?:.*)"                     $dtmDate = StringRegExpReplace($dtmDate, $sRegExpPatt, "$2/$3/$1 $4:$5:$6")                 EndIf                 $avProcs[$n][8] = $dtmDate   ; [n][9] = Command line string                 $avProcs[$n][9] = $oProc.CommandLine   ; increment index                 $n += 1             Next         Else             SetError(2); Error getting process collection from WMI         EndIf ; release the collection object         $colProcs = 0 ; Get collection of all processes from Win32_PerfFormattedData_PerfProc_Process ; Have to use an SWbemRefresher to pull the collection, or all Perf data will be zeros         Local $oRefresher = ObjCreate("WbemScripting.SWbemRefresher")         $colProcs = $oRefresher.AddEnum($oWMI, "Win32_PerfFormattedData_PerfProc_Process" ).objectSet         $oRefresher.Refresh ; Time delay before calling refresher         Local $iTime = TimerInit()         Do             Sleep(20)         Until TimerDiff($iTime) >= 100         $oRefresher.Refresh ; Get PerfProc data         For $oProc In $colProcs ; Find it in the array             For $n = 1 To $avProcs[0][0]                 If $avProcs[$n][1] = $oProc.IDProcess Then       ; [n][6] = CPU usage                     $avProcs[$n][6] = $oProc.PercentProcessorTime       ; [n][7] = memory usage                     $avProcs[$n][7] = $oProc.WorkingSet                     ExitLoop                 EndIf             Next         Next     Else         SetError(1); Error connecting to WMI     EndIf     ; Return array     Return $avProcs EndFunc;==>_ProcessListProperties $avRET = _ProcessListProperties("notepad.exe") MsgBox(0,"Memory Usage",$avRET[1][7])

分享到:
评论

相关推荐

    AutoIt3 多线程支持库

    2. 导入函数:通过`DllCall`函数,脚本可以获取DLL中的函数,如`ThreadCreate`和`ThreadJoin`。 3. 创建线程:调用`ThreadCreate`函数,传入需要异步执行的AutoIt3代码,创建新的线程。 4. 线程管理:脚本可以使用...

    autoit3 信息管理例子

    首先,AutoIt3的核心功能包括模拟键盘和鼠标操作、窗口控制、进程管理等。在信息管理方面,这些功能可以用于读取、写入和修改文件,如CSV或Excel表格,这些通常用于存储数据。文件名称“busynessdata”可能指的是...

    autoIt3 中文手册 (2015.09)

    2. **内置函数**:AutoIt3包含大量的内置函数,用于处理系统操作(如文件和目录操作、进程控制)、窗口交互(如窗口查找、控制、模拟鼠标和键盘事件)、字符串处理、数学运算等。例如,`FileOpen`、`FileRead`、`...

    autoit学习

    进程管理涉及到对Windows系统的进程列表获取、进程等待及结束等操作。此外,学习如何运行文件,对于执行自动化任务特别重要。 #### 定时器的应用 定时器的使用可以让脚本在特定时间或事件触发时执行某些操作。...

    autoit-v3-setup

    4. **进程和系统管理**:可以监控和控制其他应用程序的进程,获取系统信息,甚至可以进行注册表操作。 5. **脚本编译**:编写好的AutoIt脚本可以被编译成独立的可执行文件,这样无需AutoIt环境也能运行,提高了脚本...

    Autoit 3 C++开发API

    3. 交互与系统:AutoItX提供了许多与系统交互的功能,如读写注册表、获取系统信息、进程管理等。 4. 文件操作:包括创建、删除、重命名文件和目录,以及读写文件内容。 5. GUI创建:虽然C++本身就有丰富的GUI库,...

    autoit3开发环境

    而"AutoIt_PChome下载介绍.txt"则可能是一份简短的说明文档,详细解释了如何在PCHome网站上获取和安装AutoIt3。这些资源对于初学者来说非常有价值,可以帮助他们快速上手。 **标签相关知识点** - **AutoIt3**:...

    autoit3.zip

    直接与窗口的"标准控件"交互(设置/获取 文字,移动,关闭,等等) 脚本可以编译为标准可执行文件 创建用户图形界面接口(GUI) COM支持 正则表达式 直接调用外部DLL 和 Windows API 函数 程序运行为功能(让程序运行于其它...

    AutoIt所有引用包文件

    4. 系统控制库:用于系统级别的操作,如进程控制、注册表操作、系统信息获取等。 5. 数学与逻辑运算库:提供数学计算和逻辑判断相关的函数。 6. 数据处理库:例如CSV读写、XML解析等。 7. 日期和时间库:用于处理...

    AUTOIT_3.3.6.1-2

    它支持编写简单的脚本,用于实现诸如文件操作、窗口控制、系统信息获取、进程管理等一系列功能。 1. **基础语法与编程元素**:AutoIt拥有简单直观的语法,类似于Basic,使得初学者能够快速上手。它提供了变量、常量...

    AutoIt入门与提高

    - 获取当前系统中正在运行的所有进程的信息。 2. **进程等待及结束**: - 等待指定进程结束或强制结束进程。 3. **运行文件**: - 在AutoIt脚本中启动外部程序。 #### 九、窗口管理 1. **窗口列表**: - ...

    autoit3.2.13.7.1.zip 工具

    5. **系统信息获取**:能获取系统信息,如硬件配置、操作系统版本等,为自动化流程提供决策依据。 6. **进程和窗口管理**:可以管理和控制运行中的进程及窗口,实现对程序的自动化控制。 7. **网络通信**:支持TCP...

    AutoIt入门与提高.pdf

    根据提供的文件信息,我们可以深入探讨AutoIt的基础知识及其高级应用,包括但不限于AutoIt的基本概念、语法结构、常用功能以及实际应用场景等内容。 ### 第一章 AutoIt基础 #### 1. 关于AutoIt AutoIt是一种专门...

    autoit v3.1.0

    压缩包内的“js获取表格内容.txt”可能是关于如何使用AutoIt与JavaScript交互,从网页表格中提取数据的教程或示例代码。这表明AutoIt不仅可以控制桌面应用,还可以与Web应用进行交互,例如自动化网页数据的抓取。 ...

    AUTOIT中文教程

    - 与窗口的标准控件进行交互,如获取或设置文本、移动、关闭窗口等。 - 编译脚本为可独立运行的可执行文件。 - 创建GUI。 - 支持COM对象。 - 使用正则表达式进行模式匹配。 - 调用外部的DLL和Windows API函数。 - ...

    autoit

    3. **函数库**:AutoIt拥有丰富的内置函数库,涵盖各种任务,例如系统信息获取、文件和目录操作、网络通信、注册表操作等。这些函数大大增强了脚本的功能。 4. **GUI创建**:AutoIt提供了强大的GUI创建工具,允许...

    AUTOIT_3.3.6.1-2ico图标截取器

    这款图标截取器利用了AUTOIT的强大功能,允许用户轻松地获取任何.exe或.dll文件中的图标,甚至可以从运行中的进程获取图标。这对于开发者、设计师以及对系统美化有需求的用户来说非常实用。 该工具的操作流程通常...

    MsgTest.rar_autoit3

    再者,通过进程查找来定位窗口,可能涉及到`Process`函数,该函数可以用来查找并获取有关运行中的进程的信息。 标签"autoit3"进一步确认了这个程序的开发工具和主要技术栈是AutoIt3。AutoIt3提供了一系列强大的命令...

    autoit源码电子书教程

    4. **内置函数**:AutoIt内含大量内置函数,如File操作函数(读写文件、目录管理)、进程控制函数、网络通信函数等,为实现各种功能提供了便利。 5. **脚本编译**:AutoIt脚本可以通过Scite编辑器或官方编译器转换...

Global site tag (gtag.js) - Google Analytics