有没有获得Win98中运行了的所有应用程序的进程ID的源程序?

rober 2000-05-08 06:57:00
加精
我在做一个程序,要求实时知道操作系统win98中启了什么应用程序,并取得它的进程ID号。
请问怎么实现该功能?
...全文
241 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyzegg 2000-12-02
  • 打赏
  • 举报
回复
msdn中的spy微软经典程序之一
Lin 2000-05-08
  • 打赏
  • 举报
回复
我有这样的Source Code,不过是Delphi的,要不?
其实实现起来不是很难,看看有关ToolHelp32的资料就行。如果你有MSDN光盘,搜索Tool Help Reference关键字...
Shania 2000-05-08
  • 打赏
  • 举报
回复
void ListWindows95Process(CListBox *proclist)
{
CREATESNAPSHOT pCreateToolhelp32Snapshot = 0;
MODULEHEAP pModule32First = 0,pModule32Next = 0;
PROCESSHEAP pProcess32First = 0,pProcess32Next = 0;

HINSTANCE hKernel = GetModuleHandle("Kernel32.dll");
if (hKernel)
{
pCreateToolhelp32Snapshot= (CREATESNAPSHOT)GetProcAddress(hKernel,"CreateToolhelp32Snapshot");
pModule32First = (MODULEHEAP)GetProcAddress(hKernel,"Module32First");
pModule32Next = (MODULEHEAP)GetProcAddress(hKernel,"Module32Next");
pProcess32First = (PROCESSHEAP)GetProcAddress(hKernel,"Process32First");
pProcess32Next = (PROCESSHEAP)GetProcAddress(hKernel,"Process32Next");
}
HANDLE hSnapShot = (HANDLE)pCreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pentry;
pentry.dwSize = sizeof(PROCESSENTRY32);
for (int a = pProcess32First(hSnapShot,&pentry);0!=a;a = pProcess32Next(hSnapShot,&pentry))
{
HANDLE hModuleSnap = 0;
MODULEENTRY32 mentry;
hModuleSnap = (HANDLE)pCreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pentry.th32ProcessID);
if (hModuleSnap == (HANDLE)-1)
return;
mentry.dwSize = sizeof(MODULEENTRY32);
if (pModule32First(hModuleSnap,&mentry))
{
do{
if (mentry.th32ModuleID == pentry.th32ModuleID)
{
proclist->AddString(mentry.szModule);
break;
}
}while(pModule32Next(hModuleSnap,&mentry));
}
CloseHandle(hModuleSnap);
}
CloseHandle(hSnapShot);
FreeLibrary(hKernel);

}

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧