监听指定进程并获取其用户名
今天的这个内容,主要是为了补上次的坑,坑在这里通过判定当前登录系统用户,启动不同的应用程序,简单描述一下就是我会启动两个账户,启动两个程序,监听程序没有判断启动的程序属于那个用户,所以只有有一个启动,监听程序就会运行指定功能,这就导致我在第二个用户中,关闭了程序,监听程序还是会运行,这坑差点害死我,让测试小姐姐锤了一顿,不过今天没有梦到张扁扁。
这个小程序就是从哪个监听程序的代码中摘一部分,做功能验证,就是获取指定进程的用户名,不过还是不理想,只能获取到部分进程的用户名,像系统级别的进程还是获取不到,即使我以管理员权限运行了,也是不可以。但是我抄人家代码,看人家演示程序是没有问题的,也不知道问题出在哪里了,不过好在可以解决当下文档,先用此坑填前坑,完了再想办法填此坑。
监听指定进程并获取其用户名 1获取特定进程 2 通过PID获取进程用户名 3 宽字符转Char* 4 获取管理员权限 5演示下效果 ☞ 源码 关键字: <code>CreateToolhelp32Snapshot</code>、<code>GetTokenInformation</code>、<code>LookupAccountSidW</code>、<code>管理员权限</code>、<code>QMAKE_LFLAGS</code>
这部分代码在前面的<code>通过判定当前登录系统用户,启动不同的应用程序</code>文章中有,在复制一下,保证下文章的完整性质。
这个是新增的,也是抄来的,不过原始网址是一个国外的,今天没有找到,作者看到告诉我一下。
这个就是标准的代码了,直接抄
其实完成上面的代码,是可以获取到部分由用户创建的进程的用户名的,但是像系统创建的是没有,通过使用管理员权限,还是不可以,目前还没有搞到问题点,提升管理权限也没有啥大用途,烦人。提升管理员权限代码如下:
直接放在pro中<code>QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"</code>
成功的

不成功的
源码链接:GitHub仓库自取 使用方法:☟☟☟