как узнать разрядность программы
Как проверить, является ли установленная программа 64-битной или 32-битной в Windows 10
Есть несколько преимуществ запуска 64-битной версии программы на 64-битной установке Windows 10. 64-разрядная программа может получить доступ к большему объему памяти, чем 32-разрядная версия, поскольку она поддерживает более 4 ГБ памяти. Из-за этого 64-битное приложение в 64-битной Windows может работать немного быстрее.
Как вы, вероятно, уже знаете, установка 64-битной Windows 10 позволяет устанавливать и запускать программы как 32-битной, так и 64-битной архитектуры. Однако вы можете устанавливать и запускать только 32-разрядные программы в 32-разрядной (x86) версии Windows 10.
При оптимизации установки Windows 10 для повышения производительности вы можете узнать, является ли установленная программа 32-разрядной или 64-разрядной. К счастью, выяснить, является ли установленная программа 32-битной или 64-битной, довольно просто.
Могу ли я обновить 32-битные приложения до 64-битных?
Вам придется удалить 32-разрядное приложение, а затем установить 64-разрядное, если оно доступно.
ВАЖНО! Используйте это руководство, только если вы используете 64-разрядную версию Windows 10. Поскольку 32-разрядная установка Windows не поддерживает установку 64-разрядных программ, все программы, установленные в 32-разрядной версии Windows, являются только 32-разрядными.
Проверьте, является ли программа 32-битной 64-битной через диспетчер задач
Если вы используете сборку 19541 или новее Windows 10, проверить архитектуру программы довольно просто. Диспетчер задач в Windows 10 build 19541 или более поздней версии имеет возможность отображать программную архитектуру. Вот как проверить, является ли программа 64-битной или 32-битной в диспетчере задач.
Шаг 1. Откройте диспетчер задач, щелкнув правой кнопкой мыши пустое место на панели задач и выбрав пункт « Диспетчер задач».
Шаг 2. Разверните диспетчер задач, если вы получите меньшую версию, щелкнув опцию «Подробнее».
Шаг 3: Щелкните правой кнопкой мыши заголовок столбца (как показано на рисунке ниже), выберите « Выбрать столбцы» и выберите «Архитектура» из списка.
Вкладка Details диспетчера задач теперь показывает вкладку Architecture, которая отображает архитектуру всех запущенных программ.
Шаг 4: Наконец, запустите программу, архитектуру которой вы хотите проверить. Загляните в столбец Архитектура, чтобы узнать архитектуру программы.
Другой способ проверить, является ли программа 64-разрядной или 32-разрядной в Windows 10
Шаг 1: Откройте проводник и перейдите к этому компьютеру. Дважды щелкните диск, на котором установлена Windows 10, чтобы увидеть, помимо прочего, папки Program Files и Program Files (x86).
Обратите внимание, что Program Files (x86) создается только в 32-разрядной версии Windows 10.
Шаг 2: Теперь проверьте папки Program Files и Program Files (x86) на предмет записи приложения, архитектуру которого вы хотите выяснить. Если приложение или папка приложения присутствует в Program Files, это означает, что установленная программа является 64-разрядной версией.
Аналогично, если приложение находится в папке Program Files (x86), это 32-разрядное приложение, установленное на 64-разрядной установке Windows 10. Вы можете проверить разработчика, доступна ли 64-битная версия приложения. Если доступно, удалите существующий и установите 64-разрядный.
Само собой разумеется, что вы не можете установить 64-битные программы на 32-битной Windows 10. Итак, если вы работаете с 32-битной Windows 10, все программы, установленные на ней, являются только 32-битными.
Как узнать 32 или 64 битная программа?
Иногда необходимо узнать, является ли файл 32 или 64 битной программой прежде, чем его запустить или устанавливать. На веб-сайте источника не указана разрядность программы. Или, может, у вас в дистрибутивах и каталогах с портативными программами находятся приложения, которые никак не помечены, а вам необходимо знать на каких системах их можно запустить. Или же же вам просто хочется убедится, по собственным причинам, в том, что программа имеет ту или иную разрядность. Какие бы причины не были, у вас всегда будет в запасе два способа это проверить.
Примечание: Учтите, что вполне возможна ситуация, когда инсталлятор 32- разрядный, а программа 64 разрядная. Верно и обратное.
Программа EXE 64bit Detector для определения 32 или 64 бита
Существует множество способов узнать, как файл был скомпилирован. Например, технические специалисты могут использовать шестнадцатеричные редакторы для прочтения бинарных кодов. Но, обычным пользователям такой способ покажется чересчур сложным. Поэтому, вы всегда можете воспользоваться программой под названием «EXE 64bit Detector». Этот инструмент предназначен для запуска в командной строке от имени администратора. Даже если вы слабо знакомы с командной строкой, то не волнуйтесь, данный инструмент очень легко использовать. Сайт разработчика и программу вы можете найти по этой ссылке (кнопка для скачивания в конце страницы). Но, предупреждаем, прежде, чем скачать утилиту, сайт несколько раз перенаправит вас. Поэтому будьте аккуратны и внимательны. Обращайте внимание по каким ссылкам вы щелкаете. Сказывается тяга задержать вас подольше у рекламных блоков, но, тем не менее, инструмент бесплатен и его достаточно скачать один раз. Утилита запускается во всех текущих версиях Windows.
Как уже говорилось, использовать утилиту очень просто. Откройте командную строку с правами администратора и введите следующую команду:
Параметр «-f» нужно обязательно указывать. И если Exe64bitDetector и тестируемая программа находятся в разных каталогах, то необходимо так же указывать полный путь до программы. Обратите внимание, что кроме информации о разрядности, программа так же показывает включены ли ASLR (случайное выделение места под модули в оперативной памяти), DEP (дополнительные проверки содержимого памяти для обеспечения безопасности) и SEH (механизм, предоставляющий доступ программе к таким исключениям, как деление на ноль, нарушения доступа к памяти и прочим). На рисунке ниже показан пример выполнения программы:
Пожалуй, единственная проблема данной утилиты заключается в том, что не каждый захочет возиться с командной строкой. Поэтому предлагаем вам более простой и не требующий дополнительного программного обеспечения метод определить разрядность программы.
Как проверить является ли файла 32 или 64 разрядным простым способом
Несмотря на то, что в 64-разрядной Windows существует два каталога для программ «Program files» (для 64-разрядных) и «Program files (x86)» (для 32-разрядных), наличие программы в том или ином каталоге не является достоверным признаком разрядности программы. Так как вы можете установить программу в любой каталог. Поэтому, стоит использовать следующий простой трюк:
Теперь, у вас всегда будут под рукой два способа, как узнать 32 или 64 битная программа.
Как проверить, является ли EXE-файл 32- или 64-битным в Windows 10
Установить десктопное приложение проще простого, главное, чтобы тип исполняемого файла соответствовал архитектуре процессора. На 64-битные системы можно устанавливать и 32— и 64-битные приложения, тогда как на 32-битные Windows возможна установка только 32-битных программ. Обычно в источниках указывается разрядность приложения, но вы легко можете узнать ее и сами, воспользовавшись консольной утилитой от Марка Руссиновича SigCheck.
Также вы можете распаковать утилиту в любое удобное расположение, но тогда при работе в командной строке придется каждый раз прописывать к ней полный путь.
Чтобы определить разрядность любого исполняемого файла, откройте командную строку или PowerShell и выполните команду следующего вида:
Команда вернет набор сведений о файле — описание, имя разработчика, версию и т.д.
Будет среди них и разрядность, указываемая в параметре MachineType.
Если на вашем компьютере установлен архиватор 7-Zip, воспользуйтесь для определения разрядности исполняемого файла им.
Разрядность будет показана в значении параметра CPU.
Как определить разрядность приложения
В настоящее время в связи с распространением 64-разрядных процессоров и операционных систем, перед разработчиками программного обеспечения часто встаёт вопрос о программном определении его разрядности.
Это может быть вызвано как декоративными причинами («автоматически» показывать разрядность пользователю, например, «Моя Программа 1.0 64-разрядная версия») так и необходимостью задействовать в различных архитектурах различные алгоритмы с целью максимально эффективного использования их особенностей и при этом сохранить единую кодовую базу.
Простейшие способы
В Delphi для того чтобы определить разрядность приложения достаточно получить размер не типизированного указателя с помощью стандартного приёма.
В результате будет возвращён размер не типизированного указателя в байтах. Для перевода в биты достаточно умножить полученный результат на 8. В случае 32-разрядного приложения результат будет равен 4 (после умножения 32). В случае же 64-разядного приложения результат будет равен 8 (после умножения 64).
Для C++ существует аналогичный приём.
Похожий способ есть и в языке C#. Для того чтобы определить разрядность необходимо узнать размер типа IntPtr. Однако этот тип не имеет предопределённого размера и поэтому прямое использование функции sizeof вызовет синтаксическую ошибку.
Вследствие этого необходимо использовать метод SizeOf класса Marshal из пространства имён System.Runtime.InteropServices (это пространство имён должно быть предварительно задействовано с помощью директивы using). В результате реализация для C# выглядит следующим образом:
Конечно, это немного более громоздко, чем в случае Delphi или C++.
Всё эти методы предельно просты и доступны даже для начинающих. Однако все они имеют один общий недостаток. При их использовании в программе компилируются одновременно оба варианта кода (и для 32 и для 64-разрядного приложения). В случае небольших проектов или несущественных отличий в алгоритмах между версиями это может оказаться не критично. В противном случае значительный размер программы будет составлять неиспользуемый код. Это приведёт неоправданному увеличению размеров исполняемого файла программы или файла библиотеки в случае DLL. По этой причине все вышеперечисленные методы для реализации специального кода для конкретной архитектуры по большому счёту не пригодны.
Условная компиляция
К счастью, для этого существует альтернатива в виде директив условной компиляции.
Для наглядности приведём простейший пример:
Установить программы в Windows 10 довольно просто. Вам всего лишь убедиться, что вы устанавливаете правильный тип приложения. Если вы используете 32-разрядную версию Windows, приложение тоже должно быть 32-разрядным. Аналогично, если вы используете 64-битную Windows, приложение должно быть 64-битным.
Хорошие разработчики приложений не только предоставляют ссылки на разные версии, они также соответственно разрядности называют EXE-файл, чтобы пользователи по названию смогли определить, 32-битный или 64-битный. Вы удивитесь, но не существует быстрого способа проверить, является ли EXE 32-битным или 64-битным.
Что такое разрядность
Более подробно о разрядности мы рассказывали в статье «Что такое разрядность системы Windows».
Как узнать разрядность программы в Windows
Я покажу 3 простых способа проверить, является ли программа 32 или 64-битной. Первый способ самый простой. Другие методы определения разрядности требуют установки приложений, однако оба приложения бесплатны, и есть вероятность, что одно из них уже установлено в вашей операционной системе.
Это способ узнать разрядность файла программы не требует установки дополнительных утилит.
Не забудьте снять флажок «Запускать эту программу в режиме совместимости для:»
Скачайте бесплатную утилиту командной строки SigCheck и распакуйте ее в папку C:\Windows.
Откройте командную строку с обычными правами пользователя и введите следующую команду: