由程序进程id或窗口句柄如何获得程序名

由程序进程id或窗口句柄如何获得程序名,第1张

有id的话,

1、用OpenProcess通过ID打开进程,获得进程句柄(windowsh,kernel32lib)

2、用GetProcessImageFileName获得程序名(psapih,kernel32lib或psapilib)

package test;

import javaioBufferedReader;

import javaioFile;

import javaioFileWriter;

import javaioIOException;

import javaioInputStream;

import javaioInputStreamReader;

import javaioPrintWriter;

public class GetPid {

private static final String PNAME = "QQ";

public static void main(String[] args)

throws IOException {

Systemoutprintln("包含关键字 "+PNAME+" 的进程有:");

Systemoutprintln();

String path = SystemgetProperty("userdir");

final File createFileName = new File(path + "\\mytempscriptvbe");

if(createFileNameexists()createFileNamedelete():createFileNamecreateNewFile()){}

final PrintWriter pw = new PrintWriter(new FileWriter(createFileName,

true), true);

pwprintln("for each ps in getobject(\"winmgmts:\\\\\\root\\cimv2:win32_process\")instances_");

pwprintln("wscriptecho pshandle&vbtab&psname");

pwprintln("next");

pwclose();

final InputStream ii = RuntimegetRuntime()exec(

"cscript " + path + "\\mytempscriptvbe")getInputStream();

final InputStreamReader ir = new InputStreamReader(ii);

final BufferedReader br = new BufferedReader(ir);

String str = null;

String[] ss = null;

while ((str = brreadLine()) != null) {

if (strindexOf(PNAME)>0&&strendsWith("exe")) {

ss = strsplit("\\s");

for(int i=0;i<sslength;i+=2){

Systemoutprintln("");

Systemoutprintln("进程名:"+ss[i+1]+"\n进程ID:"+ss[i]);

}

}

}

Systemoutprintln("");

irclose();

iiclose();

brclose();

}

}

运行结果如下

包含关键字 QQ 的进程有:

进程名:QQexe

进程ID:3956

在“开始”—“运行”栏中输入“wmic”,然后点“确定”,此时XP就会d出一个名为“C:\WINDOWS\System32\Wbem\wmicexe”的命令行黑窗口(如果大家是第一次运行的话,窗口中会先显示“正在安装WMIC,请稍候。”),它的提示符是“wmic:root\cli>”,我们在其后输入“Process”命令(“进程”的意思)并回车,就会看到进程与其所对应的路径了

我现在有一个窗口的句柄(HWND),那如何获取该窗口的进程ID呢

需要什么函数,GetCurrentProcessId()是获取当前的进程ID,但是我想通过那个窗口的句柄获取那个窗口的进程,怎么弄

handle=getwindowthreadprocessid(hwnd)

就用GetWindowThreadProcessId,这个函数是获取指定窗口的线程ID和进程ID

C/C++ code

HWND hWnd; // 窗口的句柄DWORD dwPID;DWORD dwThreadID = ::GetWindowThreadProcessId(hWnd, &dwPID);

执行成功后,dwPID便是获取到的进程ID

以上就是关于由程序进程id或窗口句柄如何获得程序名全部的内容,包括:由程序进程id或窗口句柄如何获得程序名、java 获取指定的进程id、已知进程ID,如何获取进程名称 以及路径。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9712254.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存