是可以看到句柄的 Process里就可以 给你段实例 假设找的是QQ 好吧? 先找到QQ的进程 Process[] proes = ProcessGetProcesses();遍历它 foreach(Process pro in proes) { //这句就是关联进程句柄 proHandle(); //这句是获得关联进程的主窗口句柄 proMainWindowHandle //你要的就是这句 神通说的是非托管的 }命名空间是using SystemDiagnostics;
用C++很繁琐。其实直接用DOS命令wmic process ,自己再稍做点工作就可以了,清楚,易懂。
char str[]="wmic process where name=\"notepadexe\" get handle,processid,name";
system(str);
上面命令,列出名字叫 notepadexe 的 所有的 进程 的 handle, processid, name
若用:
wmic process where name=\"notepadexe\" get handle,processid,name > atxt
就能把屏幕输出存入 atxt, 写程序打开,读入,很简单。handle 数值 就是句柄。
windows下获取当前进程的话可以用dos命令tasklist
Runtime r=RuntimegetRuntime();
Process p=rexec("cmd /C tasklist");
BufferedReader reader=new BufferedReader(new InputStreamReader(pgetInputStream(),"gbk"));//windows的默认系统中文编码是gbk所以从cmd控制台的信息已gbk来解码
String line=null;
while((line=readerreadLine())!=null)
Systemoutprintln(line);
#include <windowsh>
#include <stdioh>
#include <tlhelp32h>
void main()
{
PROCESSENTRY32 ProcessEntry = { 0 };
MODULEENTRY32 ModuleEntry = { 0 };
HANDLE hProcessSnap;
HANDLE hModuleSnap;
ProcessEntrydwSize = sizeof(PROCESSENTRY32);
ModuleEntrydwSize = sizeof(MODULEENTRY32);
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//给系统内的所有进程拍一个快照
BOOL bRet = Process32First(hProcessSnap,&ProcessEntry);// 遍历进程快照,轮流显示每个进程的信息,先获得第一个
while(bRet)
{
printf("\n%s\n",ProcessEntryszExeFile);//输出该进程可执行文件名(包括路径)
Sleep(200);
hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,ProcessEntryth32ProcessID);//循环给每个进程的所有模块拍一个快照
bRet = Module32First(hModuleSnap,&ModuleEntry);// 遍历模块快照,轮流显示每个模块的信息,先获得第一个
while(bRet)
{
printf("\t%s\n",ModuleEntryszExePath);
Sleep(200);
bRet = Module32Next(hModuleSnap,&ModuleEntry);//下一个模块
}
bRet = Process32Next(hProcessSnap,&ProcessEntry);//下一个进程
}
}
以上就是关于C#获取某应用程序窗体中控件的句柄全部的内容,包括:C#获取某应用程序窗体中控件的句柄、C++ 获取进程句柄问题、java如何获得其它程序句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)