![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GetProcessAffinityMask
antonn © (2007-09-29 14:16:00)как узнать маску CPU системы не узнавая ее через GetProcessAffinityMask, а то она просит hProc, а hProc через OpenProcess, а в OpenProcess tagPROCESSENTRY32, которую я вытаскиваю через process32first(), который перебирает процессы по одному :)
а мне нужно просто узнать маску системы :) Она ведь одна и постоянна, не так ли?
antonn (2007-09-29 15:01:00) [1]а еще один вопрос. Системная маска она одна на все процессы и постоянна, или на разные процессы может быть разной?
antonn (2007-09-29 14:38:00) [2]спасибо!
пойду застрелюсь %)
Riply (2007-09-29 14:31:00) [3]Тебе же нужен Handle ?
Так зачем OpenProcess ?
Используй GetCurrentProcess.
P.S.
application.handle - не ID процесса.
antonn (2007-09-29 14:27:00) [4]чувствую себя балбесом, но где его подать? :)
hProc:=OpenProcess(PROCESS_ALL_ACCESS,True,application.handle);
возвращает ерунду
Riply (2007-09-29 14:23:00) [5]А почему нельзя использовать Handle своего процесса ?
antonn (2007-09-29 14:21:00) [6]красота:)
если делаю так (ну типа цикл, но на один проход)
var cpu_t,cpu_sys:dword; hProc:THandle; handler:thandle; data:tagPROCESSENTRY32;
begin
handler:=createtoolhelp32snapshot(TH32CS_SNAPALL,0);
data.dwSize:=sizeOf(data);
if handler>0 then begin
if process32first(handler,data) then begin
hProc:=OpenProcess(PROCESS_ALL_ACCESS,True,data.th32ProcessID);
GetProcessAffinityMask(hProc,cpu_t,cpu_sys);
messagedlg(inttostr(cpu_sys),mterror,[mbOK],0);
end;
CloseHandle(handler);
end;
то первый попавшийся обычно [системный процесс] и возвращает совсем не маску
antonn (2007-09-29 14:17:00) [7]промахнулся мимо начинающих:)