監聽指定程序并擷取其使用者名
今天的這個内容,主要是為了補上次的坑,坑在這裡通過判定目前登入系統使用者,啟動不同的應用程式,簡單描述一下就是我會啟動兩個賬戶,啟動兩個程式,監聽程式沒有判斷啟動的程式屬于那個使用者,是以隻有有一個啟動,監聽程式就會運作指定功能,這就導緻我在第二個使用者中,關閉了程式,監聽程式還是會運作,這坑差點害死我,讓測試小姐姐錘了一頓,不過今天沒有夢到張扁扁。
這個小程式就是從哪個監聽程式的代碼中摘一部分,做功能驗證,就是擷取指定程序的使用者名,不過還是不理想,隻能擷取到部分程序的使用者名,像系統級别的程序還是擷取不到,即使我以管理者權限運作了,也是不可以。但是我抄人家代碼,看人家示範程式是沒有問題的,也不知道問題出在哪裡了,不過好在可以解決當下文檔,先用此坑填前坑,完了再想辦法填此坑。
監聽指定程序并擷取其使用者名 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倉庫自取 使用方法:☟☟☟