易语言取进程pid

易语言取进程pid,第1张

版本 2

子程序 GetProcessPid, 整数型, 公开, 失败返回-1 进程名称取PID

参数 进程名, 文本型

局部变量 hSnapShot, 整数型

局部变量 End, 整数型

局部变量 buffer, PROCESSENTRY32

局部变量 pid, 整数型

pid = -1

hSnapShot = CreateToolhelp32Snapshot (2, 0)

bufferdwSize = 296

End = Process32First2 (hSnapShot, buffer)

判断循环首 (End ≠ 0)

    如果真 (到小写 (到文本 (bufferszExeFile)) = 到小写 (进程名))

        pid = bufferth32ProcessID

        跳出循环 ()

    如果真结束

    End = Process32Next2 (hSnapShot, buffer)

判断循环尾 ()

CloseHandle (hSnapShot)

返回 (pid)

DLL命令 CreateToolhelp32Snapshot, 整数型, "KERNEL32dll", "CreateToolhelp32Snapshot"

    参数 dwFlags, 整数型

    参数 th32ProcessID, 整数型

DLL命令 Process32First2, 整数型, "KERNEL32dll", "Process32First"

    参数 hSnapshot, 整数型

    参数 lppe, PROCESSENTRY32

DLL命令 Process32Next2, 整数型, "KERNEL32dll", "Process32Next"

    参数 hSnapshot, 整数型

    参数 lppe, PROCESSENTRY32

DLL命令 CloseHandle, 整数型, "KERNEL32dll", "CloseHandle"

    参数 hObject, 整数型

数据类型 PROCESSENTRY32

    成员 dwSize, 整数型

    成员 cntUsage, 整数型

    成员 th32ProcessID, 整数型

    成员 th32DefaultHeapID, 整数型

    成员 th32ModuleID, 整数型

    成员 cntThreads, 整数型

    成员 th32ParentProcessID, 整数型

    成员 pcPriClassBase, 整数型

    成员 dwFlags, 整数型

    成员 szExeFile, 字节型, , "256", 如果写成文本型,此处将会被放置一个指针,很显然会出错

要用到2个API函数

1Declare

Function

GetWindowThreadProcessId

Lib

"user32"

(ByVal

hwnd

As

Long,

lpdwProcessId

As

Long)

As

Long

从窗口句并获取进程PID

2Declare

Function

FindWindow

Lib

"user32"

Alias

"FindWindowA"

(ByVal

lpClassName

As

String,

ByVal

lpWindowName

As

String)

As

Long

查找窗口句柄

pw

=

FindWindow(vbNullString,

"连连看

v41")‘'查找连连看把找到的结果存在PW是保存窗口句柄GetWindowThreadProcessId

pw,

pid

'从窗口句柄获取进程ID,PID是保存进程ID

我的电脑 - 管理 - 设备管理器 - 找到摄像头的Device信息,一般是Image device还是什么的。 - 双击 - 详细信息 - 选择 - 硬件设别码。

就看见下面的信息了:USB\VID_&PID_就找你要的PID码了,是后面那四个。

如果我给NeMaC的参数不同,用上述指令会列出所有NeMaC命令执行的信息但是我只想获取其中ture command为还是得到了两个PID值,因为我同时使用了两个NeMaC命令(在不同命令窗口输入)一条是NeMaC -c 30 -m 25000 -r rulessample 20210101 private rule1一条是NeMaC -c 120 -m 25000 -r cs2rules 20210101 private rule2谢谢,另外,NeMaC是NeTraMet这个分析流的工具的一个组件。学习中分成两个脚本执行请教中,如何用两脚本,要是对应NeMaC有N个进程呢?那又该如何是好换一个思路吧,我如何能得到一个进程的唯一子进程的pid?:用ps -C NeMaC -f | grep rule1 | awk '{print $2}'我已经能拿到想要kill的进程的pid了,其值例如为:12815但是当我执行如下shell文件时确出错了#!/bin/bash#PATH="$PATH":/home/gwei/myCode#myNeMaC=`ps -C NeMaC -f | grep myNeMaC1 | awk '{print $2}'`kill -9 $myNeMaC它显示出来的错误信息是: arguments must be process or job IDskill: 12815kill -9 $myNeMaC也可以杀掉进程,但是把上面这些写入一个sh文件再执行就出错了怎麼办呢?移植到RH9後提示的错误信息是:[root@gxnunc0504 myCode]# /bin/bash /killNeMaC1sh: no such pidsh: line 6: kill: 21820kill -9 $myNeMaC上面就是我杀掉进程的教本killNeMaC1,其中echo $myNeMaC确认只剩下一个PID了,可是为什麼到了kill -9 $myNeMaC就运行不下去了呢。相关 *** 作和结果如下:

下面的命令就是显示进程名称为cmdexe的pid,不过这里有一个问题就是获得的pid是包括双引号的,这个你要自己再处理一下。

for

/f

"delims=,

tokens=1,2

skip=3"

%%a

in

('tasklist

/fo

csv

/fi

^"imagename

eq

cmdexe^"')

do

echo

%%b

@echo off

for /f "tokens=2 delims=," %%a in ('tasklist /fo csv^|findstr /i /c:"baiduexe"') do set PID=%%a

echo PID为:%PID:~1,-1%

pause

以上就是关于易语言取进程pid全部的内容,包括:易语言取进程pid、vb 如何获取进程PID、怎么获取摄像头的pid与vid等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9458985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存