社区
工具平台和程序库
帖子详情
请教:在windows下如何获得一个进程或服务的状态(如正在运行,没有响应,睡眠等)
abraham6057
2003-12-23 03:45:19
这些在linux下很容易得到的信息为什么在windows下如此难以得到
...全文
88
1
打赏
收藏
请教:在windows下如何获得一个进程或服务的状态(如正在运行,没有响应,睡眠等)
这些在linux下很容易得到的信息为什么在windows下如此难以得到
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nscboy
2003-12-24
打赏
举报
回复
#ifndef APPLICATION_H
#define APPLICATION_H
#define _DEBUG 1
#include <string.h>
#include <Rpc.h>
BOOL __stdcall EnumWindowProc(HWND, LPARAM);
DWORD dwTotal;
BOOL Application()
{
HDESK hDesk;
LPTSTR lpszDesktop="Default";
//////////////////////////////////////////
DWORD dwThreadId;
HWINSTA hwinstaSave;
HDESK hdeskSave;
HWINSTA hwinstaUser;
HDESK hdeskUser;
LPSTR lpszWindowStation = "WinSta0";
DWORD dwGuiThreadId = 0;
dwTotal = 0;
hDesk = NULL;
printf("\t\t=== Application Task ===\n\n");
GetDesktopWindow();
hwinstaSave = GetProcessWindowStation();
dwThreadId = GetCurrentThreadId();
hdeskSave = GetThreadDesktop(dwThreadId);
hwinstaUser = OpenWindowStation(lpszWindowStation, FALSE, MAXIMUM_ALLOWED);
if (hwinstaUser == NULL)
{
RpcRevertToSelf();
printf("hwinstauser = null\n");
return 0;
}
SetProcessWindowStation(hwinstaUser);
hdeskUser = OpenDesktop(lpszDesktop, 0, FALSE, MAXIMUM_ALLOWED);
RpcRevertToSelf();
if (hdeskUser == NULL)
{
SetProcessWindowStation(hwinstaSave);
printf("hdeskUser = null\n");
CloseWindowStation(hwinstaUser);
return 0;
}
SetThreadDesktop(hdeskUser);
EnumDesktopWindows(hdeskUser,(WNDENUMPROC)EnumWindowProc,0);
printf("Total:\t\t%d\n",dwTotal);
printf("Desktop:\t%s\n",lpszDesktop);
SetThreadDesktop(hdeskSave);
SetProcessWindowStation(hwinstaSave);
CloseDesktop(hdeskUser);
CloseWindowStation(hwinstaUser);
/////////////////////////////////////////////
//getchar();
return 1;
return TRUE;
}
BOOL CALLBACK EnumWindowProc(HWND hWnd,
LPARAM lParam)
{
DWORD dwMaxCount = 250;
DWORD dwTID = 0;
DWORD dwPID = 0;
DWORD dwReturnCount;
TCHAR szWindowText[250];
char *match;
GetDesktopWindow();
if(!IsWindowVisible(hWnd))
{
return TRUE;
}
dwReturnCount = GetWindowText(hWnd,szWindowText,dwMaxCount);
if(dwReturnCount == 0)
{
return TRUE;
}
else
{
dwTotal ++;
}
printf("HWND:\t\t%X\n",hWnd);
dwTID = GetWindowThreadProcessId(hWnd,&dwPID);
printf("Process ID:\t%d\n",dwPID);
printf("Thread ID:\t%d\n",dwTID);
printf("Task:\t\t%s\n\n",szWindowText);
match = strstr(szWindowText,"没有响应");
if (!match)
return TRUE;
else
printf("status: \t\t%s\n",match);
return TRUE;
}
#endif
进程
基本概念与常见调度 -
进程
与线程(二)
早期的计算机一次只能执行
一个
任务,采用批处理的方法,由监督系统完成作业的切换,使得作业
一个
接
一个
的被处理,如下图所示 首先,由监督器将磁带上的第
一个
程序装入内存,并把
运行
的控制权交给作业 当该作业...
为什么中断上下文不可以休眠
不了解2.6,但是在2.4中...2.4内核是非抢占式的,除非自己原意,
一个
进程
进入内核态后不会被意外替换为另
一个
进程
。大家都默认这样的规则,很多内核函数就可以简化设计。“在中断中
睡眠
”打破了这一假定,因此可能会引
基于android系统的闹钟,基于Android的闹钟的软件
一、本课题要求:设计
一个
基于Android的闹钟的软件。实现的功能有:能通过...“手机闹钟”可以在后台
运行
,且能和普通闹钟一样设置多个位置闹铃,有良好的人机交互界面,可对其编辑、启用或禁用,关键在于可以自定...
基于Android的闹钟的软件
一、本课题要求:设计
一个
基于Android的闹钟的软件。 实现的功能有:能通过界面设置闹钟的启动...“手机闹钟”可以在后台
运行
,且能和普通闹钟一样设置多个位置闹铃,有良好的人机交互界面,可对其编辑、启用或禁用...
卓胜微嵌入式面试题及参考答案(2万字长文)
例如,假设有任务 A 优先级为 3,任务 B 优先级为 2,当任务 B 正在
运行
,任务 A 进入就绪
状态
时,任务 A 会立即抢占 CPU 开始
运行
。 同时,freeRTOS 也支持时间片轮转调度。对于优先级相同的
工具平台和程序库
24,860
社区成员
27,333
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章