这几天一直在看计算机方面的书,准备考试软件工程师,但是看了看书,太恐怖了,很多我都不会,但是里面提醒了一个内容就是必须会使用一种语言(c++,java等)来编写程序。刚好今天看了一个杂志,里面有一片文章很好,我就开始学习了,所以就写了仿效写了下面的内容。
该工具是用来判断你是否具有管理员权限的工具,代码我就贴在这里。
#include <stdio.h>
#include <windows.h>
BOOL IsAdmin(void)
{
HANDLE hAccessToken;
BYTE *InfoBuffer;
PTOKEN_GROUPS ptgGroups;
DWORD dwInfoBufferSize;
PSID psidAdministrators;
SID_IDENTIFIER_AUTHORITY sidNtAuthority=SECURITY_NT_AUTHORITY;
UINT i;
BOOL bRet=FALSE;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hAccessToken))
InfoBuffer=new BYTE[1024];
if(!InfoBuffer)
goto cleanup;
bRet=GetTokenInformation(hAccessToken,TokenGroups,InfoBuffer,1024,&dwInfoBufferSize);
CloseHandle(hAccessToken);
if(!bRet)
goto cleanup;
if(!AllocateAndInitializeSid(&sidNtAuthority,
2,
SECURITY_BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS,
0,0,0,0,0,0,
&psidAdministrators));
goto cleanup;
bRet=FALSE;
ptgGroups=(PTOKEN_GROUPS)InfoBuffer;
for(i=0;i < ptgGroups-> GroupCount;i++)
{
if(EqualSid(psidAdministrators,ptgGroups->Groups[i].Sid))
{
bRet=TRUE;
break;
}
}
FreeSid(psidAdministrators);
cleanup:
if(InfoBuffer)
delete InfoBuffer;
return bRet;
}
main()
{
printf("+------------------------------------+/n");
printf("| ChkAdinistrator v0.1 |/n");
printf("| Write By AloneSword |/n");
printf("| 2005-9-14 |/n");
printf("| thx to sinister |/n");
printf("| http://blog.csdn.net/alonesword/ |/n");
printf("+-----------------------------------+/n");
if(IsAdmin) printf("You have got the Administrators rights./n");
else printf("Sorry,administrator is not you./n");
}
分享到:
相关推荐
在给定的标题"VC++求1——100同构数代码"中,我们讨论的是使用Microsoft的Visual C++编译器编写的一个小程序,这个程序用于寻找1到100之间的所有同构数。 在VC++环境下,我们可以使用C++的基础语法和控制结构来实现...
在"VC++程序设计——基础与实例分析源代码"这个资源中,我们可以找到一系列关于VC++编程的基础知识和实例应用。源代码是学习编程最直接的方式,通过阅读和分析这些代码,你可以更深入地理解C++语言的特性和MFC框架的...
**VC++6.0入门——可视化设计** VC++6.0是Microsoft公司开发的一款集成开发环境,主要用于编写基于C++语言的应用程序。这个版本在20世纪90年代末期非常流行,尤其对于Windows平台的桌面应用开发。在这个入门教程中...
【标题】"VC++拼图游戏——我在VS2008下编译通过"揭示了这是一个使用Microsoft Visual C++(VC++)编程环境在Visual Studio 2008版本下开发的项目。这个项目是一个拼图游戏,意味着它涉及到图像处理、用户交互以及...
通过这个“VC++课件——轻松搞定VC++”的学习,你可以掌握C++的基础语法,深入理解面向对象编程的核心概念,并学会如何在VC++环境中运用这些知识。每个章节的PPT文件将详细讲解每个主题,并提供实例代码和练习,确保...
内容索引:VC/C++源码,控件相关,树控,树形菜单 我的VC++树控——动态树形菜单实例,可以多次分级,运行适时添加数据,学习树控最好的参考资料,树控可为你的程序增光添彩,带来更好的用户体验,大家应该掌握用法和...
8. **面向对象编程**:虽然初学者可能会先从面向过程的编程开始,但理解类、对象、继承、封装和多态等面向对象的概念也是VC++学习的重要部分。 通过这样的简单应用程序,初学者可以逐步建立起对VC++和C++语言的直观...
《VC++程序设计--基础与实例分析》...通过学习这本书,读者可以系统地掌握VC++编程技术,为今后的软件开发工作打下坚实的基础。无论是对C++感兴趣的学生,还是希望转行进入软件开发领域的专业人士,都能从中受益匪浅。
在这一章节中,我们将学习到如何搭建VC++开发环境,了解Visual Studio IDE的基本操作,以及创建和管理项目。VC++是Microsoft为Windows平台开发的应用程序提供的集成开发环境,它基于C++语言并集成了MFC(Microsoft ...
以上是可能在"VC++高级界面特效——3"中涉及的一些技术点,实际内容可能根据提供的资源文件"char24"进一步展开,包括具体的代码示例、教程步骤或其他实用技巧。深入学习和实践这些知识点,能够帮助开发者创建出更为...
《VC++编译器源代码——深入理解C++编译器内部机制》 在软件开发领域,编译器是至关重要的工具,它将人类可读的高级语言转换为机器可以执行的指令。对于C++这样的面向对象编程语言,编译器的理解与分析显得尤为复杂...
《VC++开发经验技巧宝典》是一本专为VC++开发者设计的技术图书,其光盘包含的源代码合集是学习和提升VC++编程技能的重要资源。这本书的作者团队,明日科技,以其丰富的经验和深入的理解,精心挑选并提供了上百个经典...
这本书的描述简洁明了,直接指向主题——深入解析VC++的源代码,这对于想要提升编程技能、优化代码性能或解决复杂问题的开发者来说,无疑是一份宝贵的参考资料。 标签"vc深入详解源"突出了本书的核心内容,即对VC++...
### 四、源代码学习价值 1. **理解编译原理**:通过阅读VC++ 6.0的源代码,开发者可以深入理解编译器的工作流程和设计思想。 2. **扩展和定制**:对于需要针对特定需求定制编译器的开发者,源代码提供了基础框架和...
综上所述,"拼图游戏——VC++源代码"是一个综合性的编程实践项目,涵盖了C++编程、图形界面设计、算法实现、错误处理等多个重要领域,对于学习和提升VC++开发技能大有裨益。通过研究这个源代码,开发者不仅可以学习...
以上只是“VC++高级界面特效(2)”可能涵盖的一部分内容,实际的学习过程中,你可能会遇到更多关于界面设计、图形编程和用户体验的深度话题。通过深入学习和实践,你可以创造出令人眼前一亮的VC++应用程序。
《21天学会VC++ —— PPT教程》是一份专为初学者设计的课程,旨在帮助学习者在三周时间内掌握VC++的基础知识。VC++是Microsoft开发的一款集成开发环境,支持C++语言,广泛应用于Windows平台上的应用程序开发。本教程...
【VC++贪吃蛇源代码】是一个非常适合VC++初学者学习和实践的项目。这个项目的核心是使用Microsoft的Visual C++编程环境来实现经典游戏——贪吃蛇。通过研究和理解这个源代码,初学者可以深入掌握C++编程语言、...
【VC++斗地主源代码实例】是一个编程学习资源,主要使用Microsoft的Visual C++(简称VC++)作为开发工具,实现了一款经典的扑克牌游戏——斗地主。在这个实例中,开发者通过C++语言来设计游戏逻辑,构建服务器端和...
【VC++俄罗斯方块源代码】是一个基于Microsoft Visual C++(VC++)开发的经典游戏——俄罗斯方块的源代码项目。这个项目展示了如何利用C++编程语言和VC++的MFC(Microsoft Foundation Classes)框架来实现一个桌面版...