兩種方法實現列舉windows下執行程序

2021-06-08 09:15:52 字數 1015 閱讀 8700

最近在做乙個跨平台專案,要取關於當前使用者資訊所有的程序資訊。由於不太熟悉windows下的api 所以也摸索了一下。在這裡就整理下實現方法第一種方法:

typedef pidlist    vector;

bool processinfo::enumcurrentuserprocess(pidlist& pids)

;sid_name_use snu;

tchar buffusername[max_path] = ;

tchar buffdomainname[max_path] = ;

dword unsize;

dword dnsize;

std::string username;

wts_process_info* ppi;

wts_process_info* tp;

dword ppin;

//返回特定服務上的活動程序

if (!getusername(username))

if(::wtsenumerateprocesses(wts_current_server_handle, 0, 1, &ppi, &ppin))   

if (username.compare(ipusername))

tp++;

}::wtsfreememory(ppi);}}

//由於在windows好像貌似沒有uid的概念,所以,我就暫時用使用者名字去比對

bool processinfo::getusername(std::string& strusername)//獲取當前使用者名稱

;dword csize = 80; 

if (getusername(cbuser,&csize))

return false;

}第二種方法列舉所有程序,但是這個方法獲取的結構體裡沒有所屬使用者的屬性,所以不太方便。但是,這個結構體獲取的程序資訊很詳細。windows為什麼就不能像linux一樣呢。什麼都放到乙個檔案裡,這樣都方便許多

以上就是我整理的兩種方法,只是一部分有些地方要修改。

暴力列舉 兩種方法打表

time limit 1 sec memory limit 128 mb submit 35 solved 11 submit status web board 設集合m定義如下 1 1 m 2 x m 2x 1 m,5x 1 m 3 再無其它的數屬於m。試求將集合m的元素從小到大排列所得序列的第n...

邊緣檢測 兩種方法實現

import cv2 import numpy from scipy import ndimage def strokeedges src,dst,blurksize,edgeksize src numpy.array src yuansrc src dst numpy.array dst if b...

LCA兩種方法

lca least common ancestors 即最近公共祖先,是指在有根樹中,找出某兩個結點u和v最近的公共祖先。模板題 anc i j 表示第i個點的2 j的祖先的標號 整個過程就是兩個點往上跳到同一深度,再一起往上跳找到lca include include using namespac...