Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2010, 22:19   #11
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

угу, спасибо! Я заметил что не хватает CPU_0

А можно пожалуйста пример с SetProcessAffinityMask? Именно этого я так до конца не понимаю..
Человек_Борща вне форума Ответить с цитированием
Старый 22.09.2010, 22:59   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

смысл переменных тот же.
Код:
p:=0;
for i:=0 to 31 do if CL.Checked[i] then p:=p or (1 shl i);//надеюсь не напутал
SetProcessAffinityMask(h,p);
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.09.2010, 09:40   #13
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

var i:integer;
p,s:DWORD;
h:THandle;
begin
h:=OpenProcess(id,false,PROCESS_QUE RY_INFORMATION);//проверку стоит добавить
GetProcessAffinityMask(h,p,s);
CloseHandle(h);
for i:=0 to 31 do CL.ItemEnabled[i]:=longbool((s shr i) and 1);
for i:=0 to 31 do CL.Checked[i]:=longbool((p shr i) and 1);//я так думаю тебе нужно всетаки чекать именно те процессоры что разрешены процессу, а не доступные)

p:=0;
for i:=0 to 31 do if CL.Checked[i] then p:=p or (1 shl i);//надеюсь не напутал
SetProcessAffinityMask(h,p);

Таак соберу ка я все в кучу=)
У меня данным способом надо указывать приоритет программы запускаемой в потоке да ещё и параметры программы передаютсЯ в этот-же поток через структуру, ну с этим я сам как-нибуть=) :
Код:
var
  PI:ProccsInformation;
i:integer;
p,s:dword;
begin
p:=0;
for i:=0 to 31 do
if CL.Checked[i] then p:=p or (1 shl i);
SetProcessAffinityMask(PI.dwProcessId,p);
спасибо всем! Жаль плюсы по стопитцот раз нельзя ставить! =(
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать программу невидимой в диспетчере задач?? Дима я Общие вопросы Delphi 7 04.11.2010 10:12
Не отображаются имена потзователей в диспетчере задач Altera Windows 1 24.10.2009 14:46
В диспетчере задач ставлю средний приоритет, закрываю диспетчер. запускаю там снова низкий, что делать? Tranexxx Свободное общение 9 23.08.2009 11:12
Как сделать, чтобы процес небыло видно в Диспетчере задач? HunterMan Win Api 1 25.06.2008 21:34
Показывать ранг процесса в Диспетчере Задач как системный BanDit Win Api 1 30.07.2007 15:02