Вопрос Как проверить кол-во ядер процессора?

crusader

Мимокрокодил
Какое условие необходимо прописать в секции [Files], чтобы в случае его выполнения (2 ядра) копировались необходимые файлы?
 

Kotyarko_O

Новичок

Хамик

Старожил
Kotyarkо_O, а какой параметр отвечает именно за ядро в том примере?
 

YURSHAT

Тех. админ
Администратор
а какой параметр отвечает именно за ядро в том примере?
Ну наверное NUMBER_OF_PROCESSORS. А использовать примерно так
Код:
[Setup]
AppName=Моя программа
AppVersion=1.5
DefaultDirName={pf}\Моя программа
OutputDir=.

[Languages]
Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"

[Files]
Source: "compiler:Examples\MyProg.exe"; DestDir: "{app}"; Check: CheckCore

[Code]
#define AW = (Defined UNICODE) ? "W" : "A"

function GetEnvironmentVariable(lpName, lpBuffer: String; nSize: DWORD): DWORD;
  external 'GetEnvironmentVariable{#AW}@kernel32.dll stdcall';

function GetEnvVar(const VariableName: String): String;
var
  Len: DWORD;
begin
  Len := GetEnvironmentVariable(VariableName, '', 0);
  if Len > 0 then
  begin
    SetLength(Result, Len);
    GetEnvironmentVariable(VariableName, Result, Len);
  end;
end;

function CheckCore: Boolean;
begin
  Result := StrToInt(GetEnvVar('NUMBER_OF_PROCESSORS')) >= 2;
end;

Ой, Kotyarkо_O уже ответил :$
 

Хамик

Старожил
Ну наверное NUMBER_OF_PROCESSORS.
Код:
function CheckCore: Boolean;
begin
  Result := StrToInt(GetEnvVar('NUMBER_OF_PROCESSORS')) >= 2;
end;
правильно понимаю эту функцию?: Если процессор равен или более 2 ядер то пройдет установка файла? А если нужно только с одним ядром то вот так надо?:
Код:
function CheckCore: Boolean;
begin
  Result := StrToInt(GetEnvVar('NUMBER_OF_PROCESSORS')) < 2;
end;
 
Сверху