天天看点

QtApplets-监听指定进程并获得其用户名

监听指定进程并获取其用户名

​ 今天的这个内容,主要是为了补上次的坑,坑在这里通过判定当前登录系统用户,启动不同的应用程序,简单描述一下就是我会启动两个账户,启动两个程序,监听程序没有判断启动的程序属于那个用户,所以只有有一个启动,监听程序就会运行指定功能,这就导致我在第二个用户中,关闭了程序,监听程序还是会运行,这坑差点害死我,让测试小姐姐锤了一顿,不过今天没有梦到张扁扁。

​ 这个小程序就是从哪个监听程序的代码中摘一部分,做功能验证,就是获取指定进程的用户名,不过还是不理想,只能获取到部分进程的用户名,像系统级别的进程还是获取不到,即使我以管理员权限运行了,也是不可以。但是我抄人家代码,看人家演示程序是没有问题的,也不知道问题出在哪里了,不过好在可以解决当下文档,先用此坑填前坑,完了再想办法填此坑。

​​监听指定进程并获取其用户名​​ 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>​

​ 成功的

QtApplets-监听指定进程并获得其用户名

不成功的

QtApplets-监听指定进程并获得其用户名
源码链接:​​GitHub仓库自取​​ 使用方法:☟☟☟
QtApplets-监听指定进程并获得其用户名

继续阅读