社区
进程/线程/DLL
帖子详情
如何判断一个进程是不是系统进程?(不通过文件名)
yangsiwei
2004-07-27 10:13:02
进程ID都知道的.
...全文
288
7
打赏
收藏
如何判断一个进程是不是系统进程?(不通过文件名)
进程ID都知道的.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DentistryDoctor
2004-07-31
打赏
举报
回复
...
if(OpenProcessToken(hProcess,TOKEN_ALL_ACCESS,&hToken))
...
系统进程使用OpenProcessToken一般会失败。
也可以判断进程的父(祖先)进程的进程ID,系统进程一般是由(或者间接的)System Idle Process创建的,此进程的ID为0
NowCan
2004-07-31
打赏
举报
回复
这个说法不完全,System Idle Process的直接子进程是System进程,其ID为4(XP)或8(2000)。System的直接子进程才是他说的那些系统进程。更重要的是,系统进程如何定义?
tabris17
2004-07-31
打赏
举报
回复
引用:
======================================================================
系统进程一般是由(或者间接的)System Idle Process创建的,此进程的ID为0
======================================================================
那来的这种说法?
kvw3000
2004-07-30
打赏
举报
回复
今天有点累了,你看看先,不清楚明天继续
BOOL GetImageName(char* szImageName)
{
BOOL bResult;
DWORD dwTotal;
HANDLE hProcessSnap;
PROCESSENTRY32 ProcessEntry32;
dwTotal = 0;
bResult = TRUE;
hProcessSnap = NULL;
DebugPrivilege(TRUE);
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot for Process Error: %d\n",GetLastError());
bResult = FALSE;
}
ProcessEntry32.dwSize = sizeof(PROCESSENTRY32);
if(Process32First(hProcessSnap,&ProcessEntry32))
{
do
{
if(ProcessEntry32.th32ProcessID == 0)
{
continue;
}
else
{
strcpy(szImageName, ProcessEntry32.szExeFile); /***get the image name of process*/
}
}
while(Process32Next(hProcessSnap,&ProcessEntry32));
}
else
{
sprintf(szTempBuf, "ProcessEntry32First Error: %d",GetLastError());
AfxMessageBox(szTempBuf);
bResult = FALSE;
}
CloseHandle(hProcessSnap);
DebugPrivilege(FALSE);
return bResult;
}
BOOL DebugPrivilege(BOOL bEnable)
{
BOOL bResult = TRUE;
HANDLE hToken;
TOKEN_PRIVILEGES TokenPrivileges;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES,&hToken) == 0)
{
printf("OpenProcessToken Error: %d\n",GetLastError());
bResult = FALSE;
}
TokenPrivileges.PrivilegeCount = 1;
TokenPrivileges.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;
LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&TokenPrivileges.Privileges[0].Luid);
AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES),NULL,NULL);
if(GetLastError() != ERROR_SUCCESS)
{
bResult = FALSE;
}
CloseHandle(hToken);
return bResult;
}
yelling
2004-07-27
打赏
举报
回复
也不一定,你可以查一下你用的操作系统的进程说明,网上很多的,还有专门的书
yhqs540
2004-07-27
打赏
举报
回复
得到安全结构,SYSTEM创建的就是
syy64
2004-07-27
打赏
举报
回复
关注;
呀 信 誉 值比较低呀。
易语言模块取非
系统
进程
全路径
文件名
.rar
易语言模块取非
系统
进程
全路径
文件名
.rar 易语言模块取非
系统
进程
全路径
文件名
.rar 易语言模块取非
系统
进程
全路径
文件名
.rar 易语言模块取非
系统
进程
全路径
文件名
.rar 易语言模块取非
系统
进程
全路径
文件名
.rar 易语言模块取非
系统
进程
全路径
文件名
.rar
C++:如何获得当前
进程
对应的
文件名
?
在C++中,直接获取当前
进程
对应的
文件名
(即可执行文件的名称)并不是C++标准库直接提供的功能,因为C++标准主要关注于语言和编程的抽象层面,而不是操作
系统
层面的细节。不过,你可以使用特定于操作
系统
的API或方法来获取这一信息。
PsGetProcessImageFileName获取
进程
图像
文件名
结果不完整的问题
然而,有时候我们可能会遇到PsGetProcessImageFileName获取结果不完整的问题,即返回的
文件名
不完整或不正确。希望这篇文章对你有帮助!然而,根据微软官方文档的说明,PsGetProcessImageFileName函数仅返回
文件名
的一部分,而不是完整的路径。为了解决PsGetProcessImageFileName获取结果不完整的问题,我们可以使用其他的方法来获取完整的图像文件路径和
文件名
。这样,我们就可以使用上述示例代码来获取
进程
的完整图像文件路径和
文件名
,而不仅仅是
文件名
的一部分。
经典C程序例程:通过
进程
ID得到
文件名
【代码】经典C程序例程:通过
进程
ID得到
文件名
。
Qt Linux(Windows)获取
进程
是否已存在,
进程
检测;根据
进程
名以及
进程
路径检查,不会和其他普通的检查一样,只检测同名文件,造成检查结果与预期不符合
在 Qt 中进行
进程
检测时,使用
进程
名和
进程
路径进行检查是为了确保能够准确
判断
一个
特定
进程
是否已经存在。与普通的
进程
检查方法不同,普通的检查方法可能仅通过
进程
名来进行匹配,这可能导致检查结果不符合预期,因为多个不同的
进程
可能拥有相同的名称或相同的
文件名
。的检查方式,我们可以更精确地确认
一个
进程
是否正在运行,避免因为
文件名
相同而导致误判的问题。这种方法可以有效地排除由于路径或
文件名
冲突而造成的错误检测结果,从而提升
进程
检测的准确性和可靠性。
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章