例如要取vsftpd对应的进程号:
ps -ef|grep vsftpd|grep -v grep|awk '{print $2}'需要注意会不会有多个匹配这个名字的进程返回
已知进程名称或PID,是无法准确定位窗体句柄的。
这是因为:一旦程序启动后,系统只分配给它一个PID,而一个程序往往有多个窗口。所以,要想从PID反向查找对应的窗口不具有唯一性,并已经过实践证明,往这方面研究只能走入死胡同。
解决此问题办法是:先枚举所有窗口句柄,然后取得对应的进程名称或PID,如果该进程或PID满足你的条件,则可以进行相应处理。
AppActivate 可以根据窗口的标题来激活 也可以PID 枚举进程PID代码 百度下一堆 就不贴了
Dim MyAppID, ReturnValue
AppActivate "Microsoft Word" ' 激活 Microsoft
' Word。
' AppActivate 也可利用 Shell 函数的返回值。
MyAppID = Shell("C:\WORD\WINWORDEXE", 1) ' 运行 Microsoft Word。
AppActivate MyAppID ' 激活 Microsoft
' Word。
' 您也可使用 Shell 函数的返回值。
ReturnValue = Shell("c:\EXCEL\EXCELEXE",1) ' 运行 Microsoft Excel。
AppActivate ReturnValue ' 激活 Microsoft
' Excel。
这个和C程序没关系。所有WINDOWS程序都可以用命令行启动
比如你从WINDOWS界面选择开始菜单->运行,然后输入一个命令行
notepad
就会启动记事本程序。但是如果输入
notepad c:\logtxt
那么就会在c:盘根目录下建立一个logtxt文件(保存后生成)。后面的这个参数相当于notepad程序的命令行
具体你的程序adv32win在运行时,如果输入开始->运行:
adv32win abcscript c:\ c:\ c:\
就可执行了(当然,看你安装时的位置目录,以及脚本名称到底是什么)
查看方法:
打开设备管理器,右键USB设备--属性--详细信息--设备范例id。
根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备,VID和PID都是两个字节长,其中,供应商ID(VID)由供应商向USB执行论坛申请,每个供应商的VID是唯一的,PID由供应商自行决定,理论上来说,不同的产品、相同产品的不同型号、相同型号的不同设计的产品最好采用不同的PID,以便区别相同厂家的不同设备。
VID和PID通常情况下有两种存储方式,
第一种是主控生产商的VID和PID,存储在主控的bootcode中;
第二种是设备生产商的VID和PID,该VID和PID存储在主控外部的非易失性存储设备中(EEPROM或Flash)的设备固件中,当USB设备连接主机时,如果固件中有设备生产商的VID和PID,会将该VID和PID报告给主机,而忽略主控生产商的VID和PID。
所以理论上一个USB存储设备的VID应该是设备生产商的VID,而不是主控生产商的VID,这两个VID应该是不同的(主控生产商自己生产的设备除外)。
由于VID和PID重复并不会对产品的使用带来严重影响,很多USB设备生产商(山寨厂居多)为了方便,并不会向USB执行论坛申请自己的VID,而是依然沿用主控生产商的VID或随便向产品写入VID和PID;
同时,正规厂家只需要申请VID,PID由厂家自行确定,所以存在相同型号的产品,可能采用了不同的主控(商业需要,很正常),而的PID是一样的,基于上述原因通过VID和PID就不能准确识别USB设备的主控型号,这个问题大家在使用USB设备的过程中需要注意。
#-- encoding:UTF-8 --
import os
import sys
import string
import psutil
import re
def get_pid(name):
process_list = psutilget_process_list()
regex = "pid=(\d+),\sname=\'" + name + "\'"
print regex
pid = 0
for line in process_list:
process_info = str(line)
ini_regex = recompile(regex)
result = ini_regexsearch(process_info)
if result != None:
pid = stringatoi(resultgroup(1))
print resultgroup()
break
def main(argv):<br>name = argv[1]<br>get_pid(name)
if __name__ == "__main__":
main(sysargv)
以上就是关于linux下,有没有方法可以用脚本实现通过进程名获取PID号全部的内容,包括:linux下,有没有方法可以用脚本实现通过进程名获取PID号、vB 通过进程名称获取窗体句柄、VB 根据进程PID 激活窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)