最近在做乙個跨平台專案,要取關於當前使用者資訊所有的程序資訊。由於不太熟悉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...