关闭进程时的权限问题,一个例子。
来源:互联网 发布:澳洲阳光海岸大学 知乎 编辑:程序博客网 时间:2024/06/06 21:02
OpenProcessToken()
LookupPrivilegeValue()
AdjustTokenPrivileges()
主要是这三个函数,第一个函数取得要提升权限的进程的令牌标识。 第二个函数找到提升某个权限的LUID
。 此值作为AdjustTokenPrivileges函数第三个参数的一个属性。
TOKEN_PRIVILEGES 该结构体是将你要指定提升的权限数组,结构体两个成员,一个是个数。另外一个是结构体数组LUID_AND_ATTRIBUTES ,这个结构体有两个成员,一个是上面得到的luid,另外一个就是权限值。 例如:
下面的代码就是提升权限,并关闭某个指定名称的进程。
win7下可能不需要提升权限,xp需要。
//////提示进程权限
HANDLE hToken;
if(::OpenProcessToken(::GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken) )
{
TOKEN_PRIVILEGES tp;
LUID luid;
tp.PrivilegeCount = 1;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&luid);
tp.Privileges[0].Luid = luid;
::AdjustTokenPrivileges(hToken,false,&tp,sizeof(tp),(PTOKEN_PRIVILEGES)NULL,(PDWORD)NULL);
}
HANDLE handle = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(handle==(HANDLE)-1) {
AfxMessageBox(L"CreateToolhelp32Snapshot error");
return 0;
}
PROCESSENTRY32 procinfo;
procinfo.dwSize = sizeof(PROCESSENTRY32);
if(::Process32First(handle, &procinfo))
{
do
{
CString str = procinfo.szExeFile;
if(str == strName)
{
break;
}
}
while(::Process32Next(handle, &procinfo));
::CloseHandle(handle);
}
HANDLE hProcess = ::OpenProcess(PROCESS_ALL_ACCESS,false,procinfo.th32ProcessID);
if(hProcess)
{
if(::TerminateProcess(hProcess,0))
{
hProcess = 0;
}
else
{
::CloseHandle(hProcess);
}
}
- 关闭进程时的权限问题,一个例子。
- 以下是一个完整的关闭excel进程的例子
- 关于调用TerminateProcess关闭其他进程的权限问题
- 一个关闭程序的例子
- Windows 关闭进程例子
- 一个守护进程的例子
- 修改一个进程的权限
- 一个AOP权限验证的小例子
- 一个提升代码执行权限的例子
- 低权限IE和高权限进程通过管道通信时的权限问题
- 关闭一个进程
- 进程管理器---一个SDK的例子
- 进程管理器---一个SDK的例子
- windows父子进程交互的一个例子
- linux 一个简单的进程创建例子
- 多进程监控的一个例子
- 进程间通信的一个例子
- window创建进程的一个简单例子
- C语言文件操作 函数大全
- Swift学习笔记之-Implicitly unwrapped optionals
- 【转载】boost中的timer们
- 【转载】Boost.Regex 使用
- 【转载】[转载]GetCurrentProcessID、OpenProcessToken、LookupPrivilegeValue、AdjustTokenPrivileges
- 关闭进程时的权限问题,一个例子。
- ubuntu mount windos share目录,遇到mount error(12): Cannot allocate memory
- 关于qt.
- 关于qt不得不说的事。 编译你自己的程序
- qt移植
- 互联网人工智能时代的到来
- MFC控件之CMonthCalCtrl
- 网络传真的安装及使用方法
- TinyXml之 Parse