借鉴于网上。
#include <psapi.h >
#pragma comment(lib,"psapi.lib")
DWORD ProcessToPID(const char *InputProcessName);
int AddPrivilege(const char *Name);
const char DESTPROC[19] = "client.exe";
const char DESTPROCDebug[19] = "clientd.exe";
部分函数:
void CWatingDlg::OnTimer(UINT nIDEvent)
{
static int Value = 1;
m_Wait+= Value ;
if (m_Wait > 3100)
{
//KillTimer(nIDEvent);
Value = 0;
}
else
{
if (m_Wait%50 == 0 )
{
m_Pro_Waiting.GetRange(m_low,m_up);
m_Pro_Waiting.SetRange(0, m_up*2.0);
m_Wait *=2.0;
}
}
m_Pro_Waiting.SetPos(m_Wait);
static int nTime = 0;
DWORD pid = ProcessToPID(DESTPROC);
DWORD pidDebug = ProcessToPID(DESTPROCDebug);
nTime++;
if (nTime % 10 == 0)
{
if (pid != 0 || pidDebug != 0)
{
return;
}
else
{
exit(1);
}
}
if (nTime > 1200)
{
exit(1);
}
}
DWORD ProcessToPID(const char *InputProcessName)
{
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
HANDLE hProcess = NULL;
HMODULE hMod = NULL;
char szProcessName[MAX_PATH] = "UnknownProcess ";
AddPrivilege(SE_DEBUG_NAME);
// 计算目前有多少进程, aProcesses[]用来存放有效的进程PIDs
if (!EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
{
return 0;
}
cProcesses = cbNeeded / sizeof(DWORD);
// 按有效的PID遍历所有的进程
for ( i = 0; i < cProcesses; i++ )
{
// 打开特定PID的进程
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, aProcesses[i]);
// 取得特定PID的进程名
if ( hProcess )
{
if(EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) )
{
GetModuleBaseName( hProcess, hMod,
szProcessName, sizeof(szProcessName) );
//将取得的进程名与输入的进程名比较,如相同则返回进程PID
if(!stricmp(szProcessName, InputProcessName))
{
CloseHandle( hProcess );
return aProcesses[i];
}
}
}//end of if ( hProcess )
}//end of for
//没有找到相应的进程名,返回0
CloseHandle( hProcess );
return 0;
}
int AddPrivilege(const char *Name)
{
HANDLE hToken;
TOKEN_PRIVILEGES tp;
LUID Luid;
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,
&hToken))
{
return 1;
}
if (!LookupPrivilegeValue(NULL,Name,&Luid))
{
return 1;
}
tp.PrivilegeCount = 1;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
tp.Privileges[0].Luid = Luid;
if (!AdjustTokenPrivileges(hToken,
0,
&tp,
sizeof(TOKEN_PRIVILEGES),
NULL,
NULL))
{
return 1;
}
return 0;
}
分享到:
相关推荐
每执行一次,更新所有进程的等待时间和响应比,并检查是否完成。完成后,输出当前进程状态,并询问用户是否继续执行下一个响应比最高的进程。 5. **输出与管理**:`OutPut`函数用于输出当前所有进程的状态,包括...
任务管理器是Windows操作系统中一个用于显示系统中...在任务管理器中,进程名称和它们的功能对用户来说是判断进程是否应该运行在系统中的一个基本依据。识别出正常和异常的进程对于日常维护和故障排除是非常重要的。
2. **详细信息视图**:新增了更多进程属性,如是否为64位、是否为系统进程等,为用户提供了更全面的分析依据。 3. **改进的性能监控**:更新的性能监测模块提供了更准确的实时数据,且增加了对多核CPU的支持,可以...
例如,我们可能需要关闭特定进程的所有窗口,或者检测某个窗口是否属于特定进程。这就需要用到窗口句柄和进程名的互取技术。 在易语言中,实现窗口句柄与进程名互取通常需要以下步骤: 1. 获取窗口句柄:可以使用`...
这种情况下,可以通过检查进程的启动时间来初步判断。 - **检查启动时间**:使用DoIt自带的进程管理器可以查看进程的启动顺序,通常较晚启动的那个进程更可能是恶意程序。 #### 2. 熟悉常见进程 - **了解常用进程*...
因此,了解如何查看进程路径可以帮助用户判断这些程序是否对系统造成了负面影响。 #### 二、如何调出进程查看器 Windows 7中的“任务管理器”提供了强大的进程管理功能,用户可以通过以下两种方式访问: 1. **...
它们不仅显示进程的名称、ID、状态,还提供CPU、内存、硬盘I/O和网络使用情况等多维度的数据。此外,还可以查看进程的依赖关系、启动的线程、拥有的模块,以及与之关联的用户账户和权限。 使用进程查看器,我们可以...
- **进程名**:用于标识进程的名称。 - **优先级**:决定了进程被调度执行的优先顺序。 - **到达时间**:进程首次进入就绪队列的时间。 - **需要运行时间**:进程预计需要执行的时间。 - **已用CPU时间**:进程已经...
在启动的时候,Svchost.exe检查注册表中的位置来构建需要加载的服务列表。这就会使 多个Svchost.exe在同一时间运行。每个Svchost.exe的回话期间都包含一组服务, 以至于单独的服务必须依靠Svchost.exe怎样和在那里...
一份详尽的消防检测原始记录通常包括工程名称、委托单位、单位地址、检测日期、记录编号等基本信息,这些信息为日后可能出现的问题提供了追溯的依据。同时,建筑的基本信息,如建筑名称、高度、地址、层数、建筑面积...
* 约束:在网络配置下发之前会首先检查设备端口是否还存在,如果有某设备的端口不存在的情况,会提示网络下发失败。 ### 4. 采集进程配置 采集进程配置模块主要包括查询、增加、修改、删除及启动五个功能。 * ...
4. **生产状况**:检查当前生产任务的进度,判断是否按照计划进行,是否存在延迟或提前的情况。 5. **已可运用完成日期**:这是对前一生产阶段完成时间的确认,确保上一道工序已经按时完成,为后续生产提供依据。 ...
根据提供的文件信息,我们可以推断出此文档主要涉及设备保管检查的相关内容,即对存放在特定库房中的设备进行定期或不定期的检查,并记录下这些检查的结果与发现的问题。下面将围绕“设备保管检查记录表”这一核心...
报告接下来转入对工程基本情况的描述,包括了工程名称、检测地点、建筑高度、委托单位和维保单位等重要信息,这些都是评估消防设施运行环境和使用条件的重要参考。同时,报告还将检测时的天气情况、建筑的使用性质等...
报告中会明确指出被检测设施是否达到合格标准,若检测结果存在不合格项,会详细列出具体的问题点,如系统功能缺失、部件损坏或技术参数不符合标准等。这为委托单位提供了明确的改进方向,并促使有关单位及时对存在的...
1. **实时进程监控**:它能够实时显示系统中所有运行的进程,包括进程名称、PID、CPU占用率、内存使用情况等关键信息,让用户一目了然。 2. **详细信息查看**:对于每个进程,用户可以查看更详细的信息,如进程路径...
而建筑消防设施检测报告,是评估这些消防设施是否符合消防安全标准的重要依据。 一份完整的建筑消防设施检测报告,通常会详细记录检测的整个过程和结果。报告首先会对检测项目进行等级分类,这有助于区分消防设施的...
大学生创新创业训练计划项目中期检查表是对大学生创新创业训练计划项目的中期检查和评估,旨在了解项目的进展情况、成果和问题,并为项目的下一阶段的实施提供依据。该表格分为八个部分,涵盖项目的基本信息、研究...
这些信息可能包括端口号、对应的进程ID、进程名称、协议类型(TCP或UDP)、连接状态(监听或连接)等。用户可以依据这些信息来判断哪些程序正在通过哪些端口与外界进行通信,甚至可以定位到具体的进程路径,以便...
它能够提供实时的进程信息,帮助用户了解系统资源的使用情况,找出占用资源过高的进程,或者检查特定进程的状态。`ps`命令的灵活性在于它允许通过不同的参数组合来定制输出信息,从而满足各种需求。 1. `ps`命令...