Bonjour a tous,
Voila dans mon programme ctrlAltDel j'ai maintenant ajouté les priorité du processus. Mais je veu aller plus loin, je veu que l'on puisse la changer. J'ai donc fait cette fonction :
BOOL ChangePriority(HWND hwProcessList){
int iSel;
LV_ITEM lviItem;
char szName[20+1];
PROCESSENTRY32 stProcess;
HANDLE haSnapShot;
BOOL boContinue;
iSel = ListView_GetNextItem(hwProcessList,-1,LVNI_SELECTED);
lviItem.mask = LVIF_TEXT;
lviItem.iItem = iSel;
lviItem.iSubItem = 0;
lviItem.pszText = szName;
ListView_GetItem(hwProcessList,&lviItem);
haSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
stProcess.dwSize = (DWORD) sizeof(PROCESSENTRY32);
boContinue = Process32First(haSnapShot,&stProcess);
do{
if(strstr(szName,stProcess.szExeFile) == 0){
CloseHandle(haSnapShot);
HANDLE haProcess;
haProcess = OpenProcess(PROCESS_SET_INFORMATION,FALSE,stProcess.th32ProcessID);
if((SetPriorityClass(haProcess,HIGH_PRIORITY_CLASS)) == 0) return FALSE;
CloseHandle(haProcess);
return TRUE;
}
boContinue = Process32Next(haSnapShot,&stProcess);
}while(boContinue);
return FALSE;
}
Elle ne fait que de changer la priorité du processus en high. Mais la fonction SetPriorityClass() me renvoie tjrs 0 (donc ne fonctionne pas). Quelle est ma faute? faut-il des droits spéciaux pour le faire? si oui il ne sont pas mis dans l'explication de SetPriorityClass. Ils disent juste que le handle du processus doit contenir PROCESS_SET_INFORMATION. Ce que je fait.
Merci d'avance.