Как определить разрядность Windows: 32 или 64

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как определить разрядность Windows: 32 или 64

Сообщение kreator »

Developer писал(а):Функция работала, но только на последних версиях Windows результат был некорректен :(
Чуда не произошло! :mrgreen:
We are hard at work… for you. :)
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Как определить разрядность Windows: 32 или 64

Сообщение Shur »

Из всего вышесказанного можно ли сделать вывод, что при появлении очередной версии ОС это свойство Клариона может "лажать", пока не выйдет очередная версия Клариона, в которой эта новая ОС будет "профиксена"?
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Как определить разрядность Windows: 32 или 64

Сообщение Developer »

Shur писал(а): Из всего вышесказанного можно ли сделать вывод, что при появлении очередной версии ОС это свойство Клариона может "лажать", пока не выйдет очередная версия Клариона, в которой эта новая ОС будет "профиксена"?
Совершенно правильный вывод!
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Как определить разрядность Windows: 32 или 64

Сообщение Developer »

Вот поэтому, вне зависимости от версии Clarion которые "догоняют" Windows для специфических запросов к системе Windows предпочтительнее использовать функции Windows API.

О чём я и писал с просьбой портировать функцию Windows API IsWow64Process с C++ на Clarion IsWow64Process :)

Вне зависимости от версии Clarion использование функций Windows API
гарантирует корректный результат :wink:

Но этот подход сложнее :( Требует знаний С++ по портированию кода из Microsoft MSDN в код Clarion :wink:

Применение SYSTEM{PROP:WindowsVersion,1-10} проще и доступнее, но имеет зависимость от SoftVelocity :mrgreen:
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как определить разрядность Windows: 32 или 64

Сообщение kreator »

Developer писал(а):Применение SYSTEM{PROP:WindowsVersion,1-10} проще и доступнее, но имеет зависимость от SoftVelocity :mrgreen:
Не факт. SV наверняка тоже использует WinApi. Я другого пути не вижу. Для чистоты эксперимента нужно взять Clarion9.1 и Win10, и посмотреть результат SYSTEM{PROP:WindowsVersion,9}. Если будет 14, то используется WinApi. Developer, если всё это под рукой, проверь ради принципа. У меня Win10 есть, а C9.1 давно в архиве.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как определить разрядность Windows: 32 или 64

Сообщение kreator »

Только надо помнить, что в equates.clw константы для данного пропа появились с десятой версии.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Как определить разрядность Windows: 32 или 64

Сообщение Developer »

Вот собранный пример на Clarion 9.1.11396 для получения сведений об Windows собранный с применением equates.clw от Clarion 10.0.0.11975

На Windows 7 x64 SP1 SYSTEM{PROP:WindowsVersion,9} результат = 0

Проверьте у кого есть Windows 10 :wink:
Вложения
Get Windows System Informations.rar
(301.15 КБ) 227 скачиваний
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как определить разрядность Windows: 32 или 64

Сообщение kreator »

На Win10 отработала неправильно. Даже первый индекс показала "Windows 8", даже не 8.1 (изначально стояла 8.1).
Похоже, я не прав. Надежда на то, что в C10 с введением поддержки индексов данного пропа, сделали всё правильно, через WinApi. Проверить можно будет на следующей версии Винды (которой не будет :mrgreen: ).
We are hard at work… for you. :)
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2583
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Как определить разрядность Windows: 32 или 64

Сообщение Губин Игорь »

kreator писал(а): На Win10 отработала неправильно. Даже первый индекс показала "Windows 8", даже не 8.1 (изначально стояла 8.1).
Похоже, я не прав. Надежда на то, что в C10 с введением поддержки индексов данного пропа, сделали всё правильно, через WinApi. Проверить можно будет на следующей версии Винды (которой не будет :mrgreen: ).
А теперь поставим самую свежую версию Clarion (12104 :cat: ), ПЕРЕКОМПИЛИРУЕМ и убедимся, что всё прекрасно работает :idied:
Последний раз редактировалось Губин Игорь 16 Март 2016, 14:47, всего редактировалось 1 раз.
Это я только кажусь дураком! На самом деле я полный идиот!
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как определить разрядность Windows: 32 или 64

Сообщение kreator »

Губин Игорь писал(а):А теперь поставим самую свежую версию Clarion (12104 :cat: ), ПЕРЕКОМПИЛИРУЕМ и убедимся, что всё прекрасно работает :idied:
Не знаю, что имеет ввиду Игорь, но заметил, что программа Developer'а отрабатывает странно. Я её перекомпилил на C10, она всё равно показывает неправильно. И я завис, не пойму в чём дело. У меня в программе, например, system{prop:WindowsVersion,9} показывает 14, а у Developer'а - 12.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как определить разрядность Windows: 32 или 64

Сообщение kreator »

Админы поставили Windows10 Корпоративная. Clarion (билд 12104) определяет её как Windows8.1. Ситуация странная, потому что с другими Win10 всё нормально.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Как определить разрядность Windows: 32 или 64

Сообщение Developer »

Случайно не Windows 10 Enterprise LTSB?

Проверю на своём компьютере с Windows 10 - сообщу о результате :D
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как определить разрядность Windows: 32 или 64

Сообщение kreator »

Developer писал(а):Случайно не Windows 10 Enterprise LTSB?
Windows 10 Enterprise. А что такое LTSB?
We are hard at work… for you. :)
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2583
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Как определить разрядность Windows: 32 или 64

Сообщение Губин Игорь »

kreator писал(а): Не знаю, что имеет ввиду Игорь, но заметил, что программа Developer'а отрабатывает странно. Я её перекомпилил на C10
Я, тупо, не глядя на его программу, воскурил мануал :idied: и проверил работу примера из хелпа. Всё отработало на ура на всех доступных мне версиях Windows. К сожалению, доступа к Enterpraise у меня нет
Это я только кажусь дураком! На самом деле я полный идиот!
Oleg Fomin
Новичок
Сообщения: 21
Зарегистрирован: 12 Апрель 2006, 11:29
Поблагодарили: 1 раз

Как определить разрядность Windows: 32 или 64

Сообщение Oleg Fomin »

Коллеги, простите что не слишком рано встреваю в тему, редко бываю на форуме. Не так давно в буржуйских ньюсах делал маленький анонс. Работает приблуда на любой версии Clarion. Не забывайте добавлять к приложению соответствующий манифест, иначе Windows 10 прикидывается 8-кой и определение версии Windows будет некорректным. Источники информации указаны прямо в коде в комментах.

-------- Forwarded Message --------
Subject: ANN: Fomin Windows Version 1.0 (Freeware)
Date: 10 Jun 2016 16:55:45 -0400

Hi All,

http_://fomintools.com/FominWindowsVersion.zip

Windows version detection in Clarion applications and hand coded projects using MSDN documented Windows API functions.

Windows language agnostic, fast and reliable (I hope).

Freeware. Full source code included.

Ready to run executable also included for your convenience. You are encouraged to test it on various Windows versions.

Bug reports, suggestions, feature requests are welcome.

Enjoy,
Ответить