Заранее извиняюсь, если вопрос был. Честно просмотрел десяток последних страниц - не увидел
Как определить разрядность Windows: 32 или 64
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Как определить разрядность Windows: 32 или 64
При инсталляции программы часто необходимо установить еще и драйвер. А драйвера как правило бывают 32-битные и 64-битные. Отсюда и вопрос. Просмотрел несколько инсталляторов, нет у них такого функционала, что если Виндовс-32, то инсталлируем это, если 64 - устанавливаем то-то. Может кто-то задавался этим вопросом? Пока проблема переложена на пользователя. Если драйвер говорит, что не подходит к этой Windows, то пользователь сам запускает другую сборку драйвера. Это не есть хорошо
Заранее извиняюсь, если вопрос был. Честно просмотрел десяток последних страниц - не увидел
Заранее извиняюсь, если вопрос был. Честно просмотрел десяток последних страниц - не увидел
С уважением, Soft42
Re: Как определить разрядность Windows: 32 или 64
Порылся в Инете. Есть несколько способов... Склоняюсь к использованию SHGetSpecialFolderPath. Вроде как самый надежный метод 
С уважением, Soft42
- Дед Пахом
- Старичок
- Сообщения: 3346
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 20 раз
- Поблагодарили: 56 раз
- Контактная информация:
Re: Как определить разрядность Windows: 32 или 64
Тоже стало любопытно. Склоняюсь к способу с функцией IsWow64Process.
С уважением, ДП
- Губин Игорь
- Шубуршун
- Сообщения: 2680
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 5 раз
- Поблагодарили: 29 раз
Re: Как определить разрядность Windows: 32 или 64
InnoSetup http://www.jrsoftware.org тебе в помощь.soft42 писал(а): Просмотрел несколько инсталляторов, нет у них такого функционала, что если Виндовс-32, то инсталлируем это, если 64 - устанавливаем то-то. Может кто-то задавался этим вопросом?
Это я только кажусь дураком! На самом деле я полный идиот!
Re: Как определить разрядность Windows: 32 или 64
Чесно говоря, не совсем понял. Слаб я в англицком. Да и менять инсталлятор не хочется. Написал программку из 3 строк (1 МбInnoSetup http://www.jrsoftware.org тебе в помощь.
Проверил на 3 компах, вроде корректно работает.
С уважением, Soft42
- Губин Игорь
- Шубуршун
- Сообщения: 2680
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 5 раз
- Поблагодарили: 29 раз
Re: Как определить разрядность Windows: 32 или 64
Ну, ежели не хочешь, не меняй.
Это я только кажусь дураком! На самом деле я полный идиот!
Как определить разрядность Windows: 32 или 64
Привет всем!
Обращаюсь к знатокам с просьбой портировать рабочий проект с C++ в рабочий проект с получением exe на Clarion с целью определения запущено ли 32-х битное приложение в Windows x64 с помощью WoW64 через функцию Windows API IsWow64Process.
Заранее благодарю!
Обращаюсь к знатокам с просьбой портировать рабочий проект с C++ в рабочий проект с получением exe на Clarion с целью определения запущено ли 32-х битное приложение в Windows x64 с помощью WoW64 через функцию Windows API IsWow64Process.
Заранее благодарю!
- Вложения
-
- IsWow64Process_example.rar
- (44.97 КБ) 273 скачивания
С Уважением, Developer
-
kreator
- ✯ Ветеран ✯
- Сообщения: 5235
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как определить разрядность Windows: 32 или 64
Вот так попробуйте (сам не пробовал, без надобности пока):
Код: Выделить всё
SYSTEM{PROP:WindowsVersion,7} !- Returns '1' if program is running on 64 bit Windows, otherwise an empty string
We are hard at work… for you. 
- Дед Пахом
- Старичок
- Сообщения: 3346
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 20 раз
- Поблагодарили: 56 раз
- Контактная информация:
Как определить разрядность Windows: 32 или 64
Вроде работает, на Win10 64 возвращает 1.kreator писал(а): Вот так попробуйте (сам не пробовал, без надобности пока):Код: Выделить всё
SYSTEM{PROP:WindowsVersion,7} !- Returns '1' if program is running on 64 bit Windows, otherwise an empty string
С уважением, ДП
-
kreator
- ✯ Ветеран ✯
- Сообщения: 5235
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как определить разрядность Windows: 32 или 64
Я же говорю - "Clean & Elegant Language (©)"
.
We are hard at work… for you. 
Как определить разрядность Windows: 32 или 64
Kreator и Дед Пахом спасибо за отклик и помощь
Вот по Вашей наводке обнаружил:
https://clarionhub.com/t/did-you-know-a ... h-poll/473
Проверю на разных версиях Windows и сообщу о результатах!
А просьбу портировать Windows API IsWow64Process оставляю: есть много вопросов связанных с Windows API уже решенных на C++, С# и Delphi, которые просто необходимо портировать в Clarion для решения специфических задач
Необходимы хорошие образцы примеров портирования из C++, С# и Delphi в Clarion
Да и знания в C++, C# и Delphi всегда в помощь и для Clarion
Да и ещё по этой теме, решение данного вопроса есть в новой версии IceTips ITUtilities - вот только, к сожалению, для нас в свободном доступе их нет - а жаль, как видно из описаний в них есть решения на часто возникающие вопросы связанные решение которых связано Windows API.
Вот по Вашей наводке обнаружил:
https://clarionhub.com/t/did-you-know-a ... h-poll/473
Проверю на разных версиях Windows и сообщу о результатах!
А просьбу портировать Windows API IsWow64Process оставляю: есть много вопросов связанных с Windows API уже решенных на C++, С# и Delphi, которые просто необходимо портировать в Clarion для решения специфических задач
Необходимы хорошие образцы примеров портирования из C++, С# и Delphi в Clarion
Да и знания в C++, C# и Delphi всегда в помощь и для Clarion
Да и ещё по этой теме, решение данного вопроса есть в новой версии IceTips ITUtilities - вот только, к сожалению, для нас в свободном доступе их нет - а жаль, как видно из описаний в них есть решения на часто возникающие вопросы связанные решение которых связано Windows API.
С Уважением, Developer
Как определить разрядность Windows: 32 или 64
Проверил - на Clarion 10.0.0.11975 - функция
SYSTEM{PROP:WindowsVersion,1} - SYSTEM{PROP:WindowsVersion,10}
отлично работает только с версии Clarion 10.0.0.11897
При компиляции в Clarion 7 - Clarion 10 включая версию Clarion 10.0.0.11822 функция одинаково работает на Windows 7 x64 но возвращаемые значения некорректны
На этих же версиях Clarion некорректно работает на Windows 8-10
Отличный аналог и возможная альтернатива IsWow64Process

SYSTEM{PROP:WindowsVersion,1} - SYSTEM{PROP:WindowsVersion,10}
отлично работает только с версии Clarion 10.0.0.11897
При компиляции в Clarion 7 - Clarion 10 включая версию Clarion 10.0.0.11822 функция одинаково работает на Windows 7 x64 но возвращаемые значения некорректны
На этих же версиях Clarion некорректно работает на Windows 8-10
Отличный аналог и возможная альтернатива IsWow64Process
Kreator и Дед Пахом спасибо Вам за помощь!
С Уважением, Developer
Как определить разрядность Windows: 32 или 64
Developer, я дико извиняюсь, понял только что на Clarion 10.0.0.11975 всё нормально. Остальное как-то не просёк.
Можете ли составить табличку по результатам, где по одной оси версии Клариона, а по другой оси версии Windows?
Хотя, может это лишнее, если у всех базовая версия 10.0.0.11975?
Можете ли составить табличку по результатам, где по одной оси версии Клариона, а по другой оси версии Windows?
Хотя, может это лишнее, если у всех базовая версия 10.0.0.11975?
-
kreator
- ✯ Ветеран ✯
- Сообщения: 5235
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как определить разрядность Windows: 32 или 64
Мне кажется, здесь какое-то недопонимание. Этот prop не новый, как-то всегда работал. Не может быть уж таких глобальных проблем. Я использую system{prop:WindowsVersion,8} и system{prop:WindowsVersion,9} и достаточно давно, проблем вроде никогда не было.Shur писал(а):Developer, я дико извиняюсь, понял только что на Clarion 10.0.0.11975 всё нормально. Остальное как-то не просёк.
Можете ли составить табличку по результатам, где по одной оси версии Клариона, а по другой оси версии Windows?
Хотя, может это лишнее, если у всех базовая версия 10.0.0.11975?
We are hard at work… for you. 
Как определить разрядность Windows: 32 или 64
Ситуация такая, ранее до версии Clarion 10.0.0.11897 функция существовала ещё с Clarion 6 в виде SYSTEM{PROP:WindowsVersion}
Функция работала, но только на последних версиях Windows результат был некорректен
Начиная с версии Clarion 10.0.0.11897 функция возвращает корректный результат на всех существующих версиях Windows
Функция работала, но только на последних версиях Windows результат был некорректен
Начиная с версии Clarion 10.0.0.11897 функция возвращает корректный результат на всех существующих версиях Windows
Код: Выделить всё
The SYSTEM{PROP:WindowsVersion} supports passing an optional index parameter from 1 to 10:
SYSTEM{PROP:WindowsVersion,1} ! - The Clarion description of the Windows version (same value as without an index parameter)
SYSTEM{PROP:WindowsVersion,2} ! - Description of Windows version from Windows itself
SYSTEM{PROP:WindowsVersion,3} ! - Major version number
SYSTEM{PROP:WindowsVersion,4} ! - Minor version number
SYSTEM{PROP:WindowsVersion,5} ! - Build number
SYSTEM{PROP:WindowsVersion,6} ! - Service pack number
SYSTEM{PROP:WindowsVersion,7} ! - Returns '1' if program is running on 64 bit Windows, otherwise an empty string
SYSTEM{PROP:WindowsVersion,8} ! - Returns '1' if program is running on a server version of Windows, otherwise an empty string
SYSTEM{PROP:WindowsVersion,9} ! - Equate value representing the Windows version (separate for client and server versions)
SYSTEM{PROP:WindowsVersion,10} ! - Equate value representing the Windows edition
С Уважением, Developer
