社区
C++ Builder
帖子详情
请问如何得知Thread或Process的详细信息?
FoolBoy
2000-03-20 05:06:00
请问如何得知Thread或Process的详细信息,如Process的标题或执行文件名,进程地址范围等;Thread或Process的ID已知。
...全文
231
5
打赏
收藏
请问如何得知Thread或Process的详细信息?
请问如何得知Thread或Process的详细信息,如Process的标题或执行文件名,进程地址范围等;Thread或Process的ID已知。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wxz
2000-03-29
打赏
举报
回复
// 以下是我用的函数, 参考参考吧
void __fastcall TTaskTree::ShowThreadMsg(DWORD dwId)
{
char Hex[14];
AnsiString Tmp;
// 进程ID
intToHex((int)dwId,Hex);
_ProcessID->Caption=Hex;
// 线程
HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hSnapshot==(HANDLE)-1)return;
PROCESSENTRY32 pe;
THREADENTRY32 te;
pe.dwSize=sizeof(pe);
TListItem *ListItem;
lvThread->Items->Clear();
cboThread->Items->Clear();
for(int i=Process32First(hSnapshot,&pe);i;i=Process32Next(hSnapshot,&pe))
{
if(dwId==pe.th32ProcessID)
{
// 基本优先权
_BasePri->Caption=IntToStr((int)pe.pcPriClassBase);
// 创建线程数
_Threads->Caption=IntToStr(pe.cntThreads);
HANDLE hSnapThread=CreateToolhelp32Snapshot
(TH32CS_SNAPTHREAD,pe.th32ProcessID);
if(hSnapThread!=(HANDLE)-1)
{
te.dwSize=sizeof(THREADENTRY32);
if(Thread32First(hSnapThread,&te))
{
do{
if(te.th32OwnerProcessID==pe.th32ProcessID)
{
ListItem=lvThread->Items->Add();
// 线程ID
intToHex((int)te.th32ThreadID,Hex);
ListItem->Caption = Hex;
cboThread->Items->Add(Hex);
// 线程优先权
Tmp=IntToStr((int)te.tpBasePri);
ListItem->SubItems->Add(Tmp);
// Tmp=GetPriText((int)te.tpBasePri);
// ListItem->SubItems->Add(Tmp);
}
}while(Thread32Next(hSnapThread,&te));
}
}
CloseHandle(hSnapThread);
break;
}
}
CloseHandle(hSnapshot);
}
//---------------------------------------------------------------------------
FoolBoy
2000-03-23
打赏
举报
回复
我去看了,但auto.zip下载后不可用。
sirius
2000-03-22
打赏
举报
回复
参考Tool Help Functions
先要创建snapshot....
到我的网站上找吧,http://cppsource.yeah.net
源代码auto.zip里面的core.h里面有
把系统所以prosess,thread,window全部信息找到的函数
FoolBoy
2000-03-22
打赏
举报
回复
谢谢NoBug。但不知有没有能不能Process32First等枚举的方法,比如向该Proccess发送消息,但我不知应发送什么消息?
NoBug
2000-03-20
打赏
举报
回复
首先,使用OpenProcess获得进程句柄,如果是NT,可使用PSAPI的GetModuleFilenameEx函数来获得进程的执行名,对于Win9x则可使用Toolhelp32中的Process32First,Process32Next对进程进行枚举,对进程ID进行比较,则可获得对应进程的相应信息。对于进程的地址范围,可使用GetSystemInfo来获得,如果你指的进程地址范围是说在进程地址空间中虚拟页状态,则可使用VirtualQueryEx来获得。
.NET Task
Thread
进程
Process
线程池pool、Invoke、begininvoke、异步回调、APM、EAP、TPL、aysnc、await、SynchronizationCo
(completionPort
Thread
s) 两种,工作者线程是主要用作管理CLR内部对 象的运作,I/O(Input/Output) 线程顾名思义是用于与外部系统交换信息,IO线程的细节将在下一节详细说明。 通过
Thread
Pool.GetMax(out int ...
使用
Process
Explorer查看线程的函数调用堆栈去排查程序高CPU占用问题
详细讲述如何使用
Process
Explorer查看线程的函数调用堆栈去排查程序高CPU占用问题。
java处理
Process
输入流阻塞问题
这时候我们必须要使用
Process
类来完成这些功能。 一般情况下,我们都会将命令执行过程中的信息输出,以便检查问题。但有时候我们还需知道这个执行的进程在什么时候结束,因为不仅要知道结束了,还要知道该进程...
西电李航 操作系统课程笔记 day0
process
,
thread
@[toc] 进程(
process
) 定义: 进程:正在运行的程序 内核:操作系统本身 内部结构(internal structure): 代码段(segment) ...PCB(
process
control block) ...保存进程被中断时的信息(上下文context概念?) 状态(St.
使用
Process
Explorer和Windbg分析程序中的句柄泄漏问题
使用
Process
Explorer和Windbg分析程序句柄泄露。
C++ Builder
13,826
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章