Что нового

Запуск под число ядер

Chang

Новичок
Сообщения
45
Репутация
0
Погулял по форуму и гуглу, получился вот такой код определения кол-ва ядер цпу. На двух машинах показал верно.
Код:
#include <WinAPIEx.au3>
$aInfo = _WinAPI_GetSystemInfo()
MsgBox(64, 'Info', 'Число ядер: ' & $aInfo[5])
Подскажите пожалуйста, как скрипту сказать, что если одно ядро - запустить это, если два - это, если четыре - вот это и т.д. ? Никак не могу разобраться (((
 
A

Alofa

Гость
К примеру так:
Код:
#include <WinAPIEx.au3>
Local $aArray[8] = ['Это 1', 'Это 2', 'Это 3', 'Это 4', 'Это 5', 'Это 6', 'Это 7', 'Это 8']
Local $iProcessors = _WinAPI_GetSystemInfo()[5]
Switch $iProcessors
	Case 1 To 8
		MsgBox(262144, Default, 'Запустить ' & $aArray[$iProcessors - 1])
	Case Else
		MsgBox(262144, Default, 'Ничего не делать')
EndSwitch
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Или так
Код:
#include <WinAPIEx.au3>
$aInfo = _WinAPI_GetSystemInfo()
Switch $aInfo[5]
  Case 1
    MsgBox(64, 'Info', 'Число ядер: 1')
  Case 2
    MsgBox(64, 'Info', 'Число ядер: 2')
  Case 4
    MsgBox(64, 'Info', 'Число ядер: 4')
EndSwitch
 
Автор
C

Chang

Новичок
Сообщения
45
Репутация
0
Друзья, спасибо за помощь, но все равно ничего не понятно :blink: Возможно я не до конца понимаю синтаксис, но в голове рисовалась следующая картина:

если кол-во ядер = 1, то
запустить 1.ехе

если кол-во ядер = 2, то
запустить 2.ехе

...

если кол-во ядер = N, то
запустить N.ехе

иначе запустить 1.ехе
Текстовых сообщений о запуске особе не нужны. С ними конечно тестировать проще, но и без них по имени файла смогу разобраться.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Chang [?]
Возможно я не до конца понимаю синтаксис
Изучение любого языка начинается с синтаксиса. Справка в помощь.

Текстовых сообщений о запуске особе не нужны
Ну так замените функцию вывода сообщения на функцию запуска файла. Справка в помощь ;)
 
Автор
C

Chang

Новичок
Сообщения
45
Репутация
0
InnI, стараюсь, подглядываю, но не догоняю. Подскажите пожалуйста, почему в $aInfo в квадратный скобках цифра 5 ?



Добавлено:
Сообщение автоматически объединено:

Меняю
Код:
MsgBox(64, 'Info', 'Число ядер: 1')
на
Код:
Run("1.exe,'',@SW_HIDE)
Вылазит
 

Prog

Продвинутый
Сообщения
537
Репутация
65
Chang [?]
почему в $aInfo в квадратный скобках цифра 5 ?
InnI [?]
Справка в помощь
https://www.autoitscript.com/autoit3/docs/libfunctions/_WinAPI_GetSystemInfo.htm
[5] - The number of physical processors in the system.


В первом аргументе функции Run отсутствует кавычка.
 
A

Alofa

Гость
OffTopic:
Chang сказал(а):
InnI сказал(а):
... Изучение любого языка начинается с синтаксиса...
Вот ССЫЛКА на справку, правда старой версии, но для понимания сути дела незаменимое инфо на Русском языке.
Прочитайте, постарайтесь понять верхние главы (все до "Функции") и тогда возвращайтесь к нам, если что там непонятно задавайте вопросы. А иначе мы так и будем разговаривать на разных языках, к сожалению.
А вот если вам этого и не нужно, тогда обращайтесь в Стол Заказов (это бесплатно) за готовыми скриптами.
 
Автор
C

Chang

Новичок
Сообщения
45
Репутация
0
Prog, спасибо. Не доглядел.

Alofa, пытаюсь изучить, но видимо я больше гуманитарий ...

Всем спасибо за ответы. Потихоньку осваиваюсь :ok:
 
Верх