Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для ErikPshat

Пользователь


Сообщения: 54
Благодарности: 11

Профиль | Отправить PM | Цитировать


El Sanchez, ещё раз благодарю за помощь и разъяснения! Потихоньку кое-что проясняется.

Есть ещё один один момент, который я оказывается упустил. Дело в том, что на Windows Vista идёт версия PS 1.0, на Windows 7 идёт из коробки версия PS 2.0 и что самое важное, они прописываются по другому пути в реестре, там разница в цифре 1 в пути:
Код: Выделить весь код
SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine
А, начиная с Windows 8.0 PS 3.0 в пути вместо 1 идёт 3. Получается, что на 7-ке будет возвращаться пустая строка, как и в Vista (но ей пристального внимания уже не уделяем).
Тогда получается, нужно добавить условие проверки ключа реестра под 7-ку. Правильно ли будет, если я сделаю так:
Код: Выделить весь код
if not RegQueryStringValue(HKLM,'SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine','PowerShellVersion',PSVersion) or
   not RegQueryStringValue(HKLM,'SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine','PowerShellVersion',PSVersion) or
   (StrCmpLogicalW(PSVersion, '5.1') < 0) then
Либо можно соорудить другую конструкцию через if и else, т.е. провести по отдельности верификацию через первый ключ, в противном случае через второй.

Цитата Iska:
ErikPshat, мы уже поимели версию ОС Windows за номером 10.0 сразу после версии 6.3. »
Цитата El Sanchez:
ErikPshat, отлично, выходит 10.0.0.1, вы с Copy режете до 3 символов, теперь сравните строки '10.' < '5.1'. Ой. »
Предположим, выйдет версия 10.0123.456, через Copy мы отсекаем первые 3 символа, получится 10. (десять с точкой).
Тогда при сравнении 10. < 5.1 разве система не поймёт, что нужно сравнивать цифры до точки, а потом после точки. Если стоит точка, тогда думаю система должна определять, что это дробная запятая и, если после точки ничего не стоит, то это означает 0, т.е. 10.0 < 5.1. Это конечно можно проверить на практике, но пока это так, размышления и аналитическая деятельность.

Отправлено: 19:39, 23-01-2019 | #225