1

Тема: AHK: Версия Windows

Нашёл такой код https://www.autohotkey.com/boards/viewtopic.php?t=9628.
IsWindows10OrGreater у меня возвращает false. Нужен некий манифест https://docs.microsoft.com/ru-ru/window … elper-apis.
Казалось бы простой вопрос - как однозначно определить "название" ОС?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

2

Re: AHK: Версия Windows

Судя по всем данным и A_OSVersion, у меня показывает Windows 7, но режим совместимости AutoHotkey.exe отключен.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Версия Windows

Что значит "название"?

Msgbox, %A_OSVersion%`n%A_OSType%

4

Re: AHK: Версия Windows

"название"

Windows10

Msgbox


WIN_7 WIN32_NT

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: AHK: Версия Windows

serzh82saratov пишет:

Нужен некий манифест

https://docs.microsoft.com/ru-ru/window … indows-8-1

<!-- Windows 10 -->
            <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>

Тут ещё почитал, у AutoHotkey есть поддержка Windows 10 в манифесте.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:v3="urn:schemas-microsoft-com:asm.v3"><assemblyIdentity version="1.1.00.00" name="AutoHotkey" type="win32" /><dependency><dependentAssembly><assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /></dependentAssembly></dependency><compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"><application><supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/><supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/><supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/><supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/><supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/></application></compatibility><v3:application><v3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings" xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings"><dpiAware>true</dpiAware><ws2:longPathAware>true</ws2:longPathAware></v3:windowsSettings></v3:application><v3:trustInfo><v3:security><v3:requestedPrivileges><v3:requestedExecutionLevel level="asInvoker" uiAccess="false" /></v3:requestedPrivileges></v3:security></v3:trustInfo></assembly>

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6 (изменено: ypppu, 2020-02-17 23:10:43)

Re: AHK: Версия Windows

Хм, значит этим встроенным переменным нельзя верить. А если запустить cmd.exe и считать? У меня

Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

Ещё советуют посмотреть HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion.

7

Re: AHK: Версия Windows

ypppu пишет:

Ещё советуют посмотреть HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion.

Тут совсем чудеса ключ - ProductName, в редакторе вижу "Windows 10 Pro", а

RegRead, Name, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows NT\CurrentVersion, ProductName

выдаёт "Windows 7 Ultimate".

Кроме того выяснил что если AutoHotkey.exe перенести из C:\Program Files в другое место, или компилировать скрипт, то IsWindows10OrGreater и A_OSVersion таки работают как надо.
RegRead возвращает "Windows 10 Enterprise", но это тоже не то что видно в редакторе реестра.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8

Re: AHK: Версия Windows

ypppu пишет:

А если запустить cmd.exe и считать?

cmd показывает правильно

Microsoft Windows [Version 10.0.17763.1039]
(c) Корпорация Майкрософт (Microsoft Corporation), 2018. Все права защищены.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: AHK: Версия Windows

Такое ощущение что из папки Program Files AutoHotkey.exe запускается в режиме совместимости Win7, но в свойствах файла это отключено.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

10

Re: AHK: Версия Windows

Пардон, если запускать код по первой ссылке ручками из проводника то всё ок, не правильно работает если запускать скрипт с этим кодом другим скриптом командой Run.
Почему так?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: Версия Windows

Не знаю, что у тебя с виндой, но информацию о системе можно получать через wmi:
https://docs.microsoft.com/en-us/window … tingsystem

12

Re: AHK: Версия Windows

serzh82saratov пишет:

Тут совсем чудеса ключ - ProductName, в редакторе вижу "Windows 10 Pro", а

В десятке две версии реестра — от пользователя и от админа.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: Версия Windows

Malcev пишет:

Не знаю, что у тебя с виндой

Да уж, после перезагрузки начало показывать в зависимости от совместимости.
wmi всегда правильно показывает, но за 100мс.


ComObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery("Select * from Win32_OperatingSystem")._NewEnum.next(X)
MsgBox % X.Version
teadrinker пишет:

В десятке две версии реестра — от пользователя и от админа.

А как понять откуда

RegRead, Name, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows NT\CurrentVersion, ProductName

читает.
Например если я запускаю скрипт от админа, он в каком читает.
И почему режим совместимости AutoHotkey меняет это значение.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

14

Re: AHK: Версия Windows

serzh82saratov пишет:

И почему режим совместимости AutoHotkey меняет это значение.

Никогда этим не пользовался, не в курсе.
По идее, если запускаешь от админа, будет работать с реестром от админа. Можно проверить, если запускать Regedit от пользователя и от админа.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

15 (изменено: serzh82saratov, 2020-02-18 16:48:57)

Re: AHK: Версия Windows

В том и магия что Regedit и скрипт запущены от админа, а данные разные.
И откуда RegRead читает не ясно, а просто всегда выдаёт то что в режиме совместимости указано.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

16

Re: AHK: Версия Windows

Ещё про битности не забывай, для них разные ветки регистра. Вижу у тебя AHK 32, а система 64.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17 (изменено: serzh82saratov, 2020-02-18 18:38:17)

Re: AHK: Версия Windows

На обеих битностях AHK одинаково.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui