Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
robert0801
5 / 5 / 0
Регистрация: 15.04.2013
Сообщений: 118
1

Используя функцию GetSystemInfo определить количество процессоров

13.10.2015, 21:10. Просмотров 1198. Ответов 5
Метки нет (Все метки)

Используя функцию GetSystemInfo определить количество процессоров

Вот что имею. выдает 0
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Declare Sub GetSystemInfo Lib "kernel32" (ByRef lpSystemInfo As SYSTEM_INFO)
Public Structure SYSTEM_INFO
        Public dwOemID As Long
        Public dwPageSize As Long
        Public lpMinimumApplicationAddress As Long
        Public lpMaximumApplicationAddress As Long
        Public dwActiveProcessorMask As Long
        Public dwNumberOfProcessors As Long
        Public dwProcessorType As Long
        Public dwAllocationGranularity As Long
        Public wProcessorLevel As Short
        Public wProcessorRevision As Short
    End Structure
 
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim infos As SYSTEM_INFO
        GetSystemInfo(infos)
        TextBox2.Text = (infos.dwNumberOfProcessors)
 
    End Sub
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2015, 21:10
Ответы с готовыми решениями:

GetComputerName и GetSystemInfo: программа не показывает количество процессоров
Почему не показывает количество процессоров. Всегда 0. Помогите найти ошибку. Public Class Form1 ...

Используя команду cpuid, определить количество логических процессоров
Помогите пожалуйста с это задачей, особенно с пунктом про логический процессор: Используя...

Определить количество процессоров
помогите пожалуйста ((( Используя RegOpenKey, RegQueryValueEx, RegCloseKey, определить количество...

Используя собственную функцию, определить количество элементов
Есть задача Определить два одномерных массива А(19) и В(26); первый ввести с клавиатуры, а второй...

Используя функцию, определить количество трехзначных чисел в строке
Используя функцию, определить количество трехзначных чисел в строке, содержащей группы цифр,...

5
Убежденный
Ушел с форума
Эксперт С++
16271 / 7337 / 1183
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
13.10.2015, 21:35 2
GetSystemInfo возвращает к-во так называемых логических процессоров -
величину, которая равняется произведению к-ва процессоров на к-во
ядер на к-во нитей (при наличии Hyper-Threading). Так, для заметки.
А узнать, где проц, где ядро и т.п., можно узнать с помощью инструкции cpuid.
1
robert0801
5 / 5 / 0
Регистрация: 15.04.2013
Сообщений: 118
13.10.2015, 21:44  [ТС] 3
Цитата Сообщение от Убежденный Посмотреть сообщение
GetSystemInfo возвращает к-во так называемых логических процессоров -
величину, которая равняется произведению к-ва процессоров на к-во
ядер на к-во нитей (при наличии Hyper-Threading). Так, для заметки.
А узнать, где проц, где ядро и т.п., можно узнать с помощью инструкции cpuid.
Т.е. при помощи данной функции я не смогу найти количество процессоров?
0
Orlangur1991
2226 / 1720 / 463
Регистрация: 28.11.2014
Сообщений: 2,646
13.10.2015, 21:56 4
так вроде проще, или принципиально GetSystemInfo?
vb.net
1
2
3
 Dim str As String = "HARDWARE\DESCRIPTION\System\CentralProcessor"
 Dim cpuCount As Integer = My.Computer.Registry.LocalMachine.OpenSubKey(str, False).SubKeyCount
 MsgBox(cpuCount.ToString)
0
robert0801
5 / 5 / 0
Регистрация: 15.04.2013
Сообщений: 118
13.10.2015, 22:21  [ТС] 5
Принципиально GetSystemInfo, таково условие задачи

Добавлено через 21 минуту
Вот нашел на форуме, вроде работает.
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Imports System.Runtime.InteropServices
 
Public Class Form1
    Private Declare Sub GetSystemInfo Lib "kernel32" (ByRef lpSystemInfo As SYSTEM_INFO)
    <StructLayout(LayoutKind.Sequential)> _
    Public Structure SYSTEM_INFO
        Friend uProcessorInfo As _PROCESSOR_INFO_UNION
        Public dwPageSize As UInteger
        Public lpMinimumApplicationAddress As IntPtr
        Public lpMaximumApplicationAddress As IntPtr
        Public dwActiveProcessorMask As IntPtr
        Public dwNumberOfProcessors As UInteger
        Public dwProcessorType As UInteger
        Public dwAllocationGranularity As UInteger
        Public dwProcessorLevel As UShort
        Public dwProcessorRevision As UShort
    End Structure
 
    <StructLayout(LayoutKind.Explicit)> _
    Public Structure _PROCESSOR_INFO_UNION
        <FieldOffset(0)> _
        Friend dwOemId As UInteger
        <FieldOffset(0)> _
        Friend wProcessorArchitecture As UShort
        <FieldOffset(2)> _
        Friend wReserved As UShort
    End Structure
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim infos As New SYSTEM_INFO
 
        GetSystemInfo(infos)
        TextBox1.Text = ("Количество процессоров: " & infos.dwNumberOfProcessors)
    End Sub
End Class
0
Убежденный
Ушел с форума
Эксперт С++
16271 / 7337 / 1183
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
13.10.2015, 22:28 6
Цитата Сообщение от robert0801 Посмотреть сообщение
Т.е. при помощи данной функции я не смогу найти количество процессоров?
К-во физически установленных на компьютере процессоров - нет, не сможете.
Если, к примеру, у вас будет двухпроцессорная материнка, и в каждом сокете
будет стоять четырехъядерный проц с поддержкой HT, то эта функция
покажет, что процессоров 2*4*2 = 16. Хотя на самом деле их только два.
2
13.10.2015, 22:28
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2015, 22:28

Используя подпрограмму-функцию определить в тексте количество строк заданной длины
Используя подпрограмму-функцию определить в тексте количество строк заданной длины.

Есть ли в винде ограничения на количество процессоров или ядер процессоров?
Есть ли в винде ограничения на количество процессоров или ядер процессоров? Добавлено через 12...

Как используя функцию категории «Работа с базой данных» БСЧЕТ определить количество товаров, которые попадают в среднюю ценовую категорию.
помогите пожалуйста на втором листе сделать вот это задание: 3. Используя функцию категории...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.