Giter Site home page Giter Site logo

Comments (19)

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

Expiration

Currently testing
image

Language issue

Release 2.0 now fetches from the registry (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName) instead of WMI. This allows faster launching and proper ARM64 support, however seems that Windows doesn't localize this text, therefore causing it to be in English.

I'm afraid that there might be nothing I could do about this as this is beyond my scope.

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

I'll flag this issue as "won't fix" for now, however I'll try to see if there are anything I could do about the matter.

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

Actually looking further, I could workaround that by checking the edition ID and use resource files, however this approach requires translators for existing languages, which I don't know if I would be able to gather our existing translators.

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

OK turns out that this is much harder than I thought as there are many more edition IDs than I expected.

from winveruwp.

Gaoyifei1011 avatar Gaoyifei1011 commented on May 25, 2024

并且忘了说了,我记得1.X的版本仍然保留了应用执行别名“WinverUWP.EXE”和一些启动的协议,是否在2.0版本将其移除或者是忘记添加了?
And I forgot to mention that the 1.x version still retains the application execution alias "winveruwp.exe" and some startup protocols. Did you remove it in version 2.0 or forget to add it?

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

并且忘了说了,我记得1.X的版本仍然保留了应用执行别名“WinverUWP.EXE”和一些启动的协议,是否在2.0版本将其移除或者是忘记添加了? And I forgot to mention that the 1.x version still retains the application execution alias "winveruwp.exe" and some startup protocols. Did you remove it in version 2.0 or forget to add it?

Yeah didn't add it.

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

Well doesn't take much to like fix or anything, however the certification part is quite frustrating and it just finished today so wanna take a break from uploading anything to the Store today.

from winveruwp.

Gaoyifei1011 avatar Gaoyifei1011 commented on May 25, 2024

‎好吧,事实证明,这比我想象的要难得多,因为版本ID比我预期的要多得多。‎

是的,毕竟除了Windows 包括X86,X64,ARM64这三种系统,这三种系统都有着不同的ID版本,所以能够找到所有版本的ID并做到一一对应也是有些麻烦的。
Yes, after all, there are X86,X64 and ARM64 operating systems besides Windows, all of which have different ID versions, so it is a bit of a hassle to find all versions of ids and make a one to one match.

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

‎好吧,事实证明,这比我想象的要难得多,因为版本ID比我预期的要多得多。‎

是的,毕竟除了Windows 包括X86,X64,ARM64这三种系统,这三种系统都有着不同的ID版本,所以能够找到所有版本的ID并做到一一对应也是有些麻烦的。 Yes, after all, there are X86,X64 and ARM64 operating systems besides Windows, all of which have different ID versions, so it is a bit of a hassle to find all versions of ids and make a one to one match.

I don't think it makes an effect on the edition IDs though since the architectures don't have their separate editions, however there are still a lot of editions.

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

And it's basically impossible to grasp all editions (and filter out the unnecessary ones) as there has been no up to date list about them.

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

Here's the most up to date list of unfiltered EditionIDs:

        Undefined = 0x00000000,
        Ultimate = 0x00000001,
        HomeBasic = 0x00000002,
        HomePremium = 0x00000003,
        Enterprise = 0x00000004,
        HomeBasicN = 0x00000005,
        Business = 0x00000006,
        StandardServer = 0x00000007,
        DatacenterServer = 0x00000008,
        SmallBusinessServer = 0x00000009,
        EnterpriseServer = 0x0000000A,
        Starter = 0x0000000B,
        DatacenterServerCore = 0x0000000C,
        StandardServerCore = 0x0000000D,
        EnterpriseServerCore = 0x0000000E,
        EnterpriseServerIA64 = 0x0000000F,
        BusinessN = 0x00000010,
        WebServer = 0x00000011,
        ClusterServer = 0x00000012,
        HomeServer = 0x00000013,
        StorageExpressServer = 0x00000014,
        StorageStandardServer = 0x00000015,
        StorageWorkgroupServer = 0x00000016,
        StorageEnterpriseServer = 0x00000017,
        ServerForSmallBusiness = 0x00000018,
        SmallBusinessServerPremium = 0x00000019,
        HomePremiumN = 0x0000001A,
        EnterpriseN = 0x0000001B,
        UltimateN = 0x0000001C,
        WebServerCore = 0x0000001D,
        MediumBusinessServerManagement = 0x0000001E,
        MediumBusinessServerSecurity = 0x0000001F,
        MediumBusinessServerMessaging = 0x00000020,
        ServerFoundation = 0x00000021,
        HomePremiumServer = 0x00000022,
        ServerForSmallBusinessV = 0x00000023,
        StandardServerV = 0x00000024,
        DatacenterServerV = 0x00000025,
        EnterpriseServerV = 0x00000026,
        DatacenterServerCoreV = 0x00000027,
        StandardServerCoreV = 0x00000028,
        EnterpriseServerCoreV = 0x00000029,
        HyperV = 0x0000002A,
        StorageExpressServerCore = 0x0000002B,
        StorageServerStandardCore = 0x0000002C,
        StorageWorkgroupServerCore = 0x0000002D,
        StorageEnterpriseServerCore = 0x0000002E,
        StarterN = 0x0000002F,
        Professional = 0x00000030,
        ProfessionalN = 0x00000031,
        SBSolutionServer = 0x00000032,
        ServerForSBSolutions = 0x00000033,
        StandardServerSolutions = 0x00000034,
        StandardServerSolutionsCore = 0x00000035,
        SBSolutionServerEM = 0x00000036,
        ServerForSBSolutionsEM = 0x00000037,
        SolutionEmbeddedServer = 0x00000038,
        SolutionEmbeddedServerCore = 0x00000039,
        ProfessionalEmbedded = 0x0000003A,
        EssentialBusinessServerMGMT = 0x0000003B,
        EssentialBusinessServerADDL = 0x0000003C,
        EssentialBusinessServerMGMTSVC = 0x0000003D,
        EssentialBusinessServerADDLSVC = 0x0000003E,
        SmallBusinessServerPremiumCore = 0x0000003F,
        ClusterServerV = 0x00000040,
        Embedded = 0x00000041,
        StarterE = 0x00000042,
        HomeBasicE = 0x00000043,
        HomePremiumE = 0x00000044,
        ProfessionalE = 0x00000045,
        EnterpriseE = 0x00000046,
        UltimateE = 0x00000047,
        EnterpriseEvaluation = 0x00000048,
        Unknown49,
        Prerelease = 0x0000004A,
        Unknown4B,
        MultipointStandardServer = 0x0000004C,
        MultipointPremiumServer = 0x0000004D,
        Unknown4E = 0x0000004E,
        StandardEvaluationServer = 0x0000004F,
        DatacenterEvaluationServer = 0x00000050,
        PrereleaseARM = 0x00000051,
        PrereleaseN = 0x00000052,
        Unknown53,
        EnterpriseNEvaluation = 0x00000054,
        EmbeddedAutomotive = 0x00000055,
        EmbeddedIndustryA = 0x00000056,
        ThinPC = 0x00000057,
        EmbeddedA = 0x00000058,
        EmbeddedIndustry = 0x00000059,
        EmbeddedE = 0x0000005A,
        EmbeddedIndustryE = 0x0000005B,
        EmbeddedIndustryAE = 0x0000005C,
        Unknown5D,
        Unknown5E,
        StorageWorkgroupEvaluationServer = 0x0000005F,
        StorageStandardEvaluationServer = 0x00000060,
        CoreARM = 0x00000061,
        CoreN = 0x00000062,
        CoreCountrySpecific = 0x00000063,
        CoreSingleLanguage = 0x00000064,
        Core = 0x00000065,
        Unknown66,
        ProfessionalWMC = 0x00000067,
        MobileCore = 0x00000068,
        EmbeddedIndustryEval = 0x00000069,
        EmbeddedIndustryEEval = 0x0000006A,
        EmbeddedEval = 0x0000006B,
        EmbeddedEEval = 0x0000006C,
        NanoServer = 0x0000006D,
        CloudStorageServer = 0x0000006E,
        CoreConnected = 0x0000006F,
        ProfessionalStudent = 0x00000070,
        CoreConnectedN = 0x00000071,
        ProfessionalStudentN = 0x00000072,
        CoreConnectedSingleLanguage = 0x00000073,
        CoreConnectedCountrySpecific = 0x00000074,
        ConnectedCAR = 0x00000075,
        IndustryHandheld = 0x00000076,
        PPIPro = 0x00000077,
        ARM64Server = 0x00000078,
        Education = 0x00000079,
        EducationN = 0x0000007A,
        IoTUAP = 0x0000007B,
        CloudHostInfrastructureServer = 0x0000007C,
        EnterpriseS = 0x0000007D,
        EnterpriseSN = 0x0000007E,
        ProfessionalS = 0x0000007F,
        ProfessionalSN = 0x00000080,
        EnterpriseSEvaluation = 0x00000081,
        EnterpriseSNEvaluation = 0x00000082,
        Unknown83,
        Unknown84,
        Unknown85,
        Unknown86,
        Holographic = 0x00000087,
        HolographicBusiness = 0x00000088,
        Unknown89 = 0x00000089,
        ProSingleLanguage = 0x0000008A,
        ProChina = 0x0000008B,
        EnterpriseSubscription = 0x0000008C,
        EnterpriseSubscriptionN = 0x0000008D,
        Unknown8E,
        DatacenterNanoServer = 0x0000008F,
        StandardNanoServer = 0x00000090,
        DatacenterAServerCore = 0x00000091,
        StandardAServerCore = 0x00000092,
        DatacenterWSServerCore = 0x00000093,
        StandardWSServerCore = 0x00000094,
        UtilityVM = 0x00000095,
        Unknown96,
        Unknown97,
        Unknown98,
        Unknown99,
        Unknown9A,
        Unknown9B,
        Unknown9C,
        Unknown9D,
        Unknown9E,
        DatacenterEvaluationServerCore = 0x0000009F,
        StandardEvaluationServerCore = 0x000000A0,
        ProWorkstation = 0x000000A1,
        ProWorkstationN = 0x000000A2,
        UnknownA3,
        ProForEducation = 0x000000A4,
        ProForEducationN = 0x000000A5,
        UnknownA6,
        UnknownA7,
        AzureServerCore = 0x000000A8,
        AzureNanoServer = 0x000000A9,
        UnknownAA = 0x000000AA,
        EnterpriseG = 0x000000AB,
        EnterpriseGN = 0x000000AC,
        UnknownAD,
        UnknownAE,
        ServerRDSH = 0x000000AF,
        UnknownB0,
        UnknownB1,
        Cloud = 0x000000B2,
        CloudN = 0x000000B3,
        HubOS = 0x000000B4,
        UnknownB5,
        OneCoreUpdateOS = 0x000000B6,
        CloudE = 0x000000B7,
        Andromeda = 0x000000B8,
        IoTOS = 0x000000B9,
        CloudEN = 0x000000BA,
        IoTEdgeOS = 0x000000BB,
        IoTEnterprise = 0x000000BC,
        Lite = 0x000000BD,
        UnknownBE,
        IoTEnterpriseS = 0x000000BF,
        XboxSystemOS = 0x000000C0,
        XboxNativeOS = 0x000000C1,
        XboxGameOS = 0x000000C2,
        XboxERAOS = 0x000000C3,
        XboxDurangoHostOS = 0x000000C4,
        XboxScarlettHostOS = 0x000000C5,
        AzureStackHCIServerCore = 0x00000196,
        TurbineServer = 0x00000197

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

@Gaoyifei1011 OK so I found out that I could use winbrand.dll in an UWP app, which might localize the edition correctly.
I haven't tested it in WACK though, which is a huge deal, because if my app fails WACK, it might be blocked from being uploaded to the Microsoft Store.

Anyway screenshot of the API working (this is code in a separate project as I am not near the PC I used for WinverUWP development) (text in English, but seems to return the same result as 1.x):
image

from winveruwp.

Gaoyifei1011 avatar Gaoyifei1011 commented on May 25, 2024

@Gaoyifei1011 OK so I found out that I could use winbrand.dll in an UWP app, which might localize the edition correctly. I haven't tested it in WACK though, which is a huge deal, because if my app fails WACK, it might be blocked from being uploaded to the Microsoft Store.

Anyway screenshot of the API working (this is code in a separate project as I am not near the PC I used for WinverUWP development) (text in English, but seems to return the same result as 1.x): image

关于这个,我刚才使用Resource Hacker查看了一下,这次估计应该会显示正确的信息了。
I just checked this out using Resource Hacker, and this time it should show the correct information.
在我的电脑中,C:\Windows\system32\zh-cn\shell32.dll.mui中存放了"%WINDOWS_LONG%"变量,也就是你图片中显示的内容,应该在最终的显示中就能够显示出正确的名称了。但是我不太确定这个"%WINDOWS_LONG%"变量是否会在不同的语言下显示正确的名称,所以可能需要测试一下。
On my computer, C:\Windows\system32\zh-cn\shell32.dll.mui has the "%WINDOWS_LONG%" variable, which is the content displayed in your image, and should show the correct name in the final display. But I'm not sure if the "%WINDOWS_LONG%" variable will display the correct name in different languages, so I might need to test it.
并且我发现微软在不同语言下的shell32.dll.mui中已经存放了不同语言的信息,所以我觉得这是一个更好的方法直接使用微软自己定义的信息内容,不需要其他人翻译就能够多语言支持。(这是我个人的一个看法)
And I found that Microsoft has stored information of different languages in shell32.dll.mui in different languages, so I think it is a better way to directly use the information content defined by Microsoft itself, which can be supported in multiple languages without translation by others. (This is my personal opinion)
屏幕截图 2022-01-12 002229
屏幕截图 2022-01-12 002138

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

The only major hiccup now is whether WACK and MS Store would allow me to use this stuff, since this DLL isn't present in any API sets.

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

@Gaoyifei1011 unfortunately using winbrand.dll causes the app to fail WACK.

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

Another status update: I worked around that fail by just using LoadLibraryW and GetProcAddress instead of DllImport.

from winveruwp.

Gaoyifei1011 avatar Gaoyifei1011 commented on May 25, 2024

And it's basically impossible to grasp all editions (and filter out the unnecessary ones) as there has been no up to date list about them.

不仅如此,当微软又发布了一个更新的,且从未见过的操作系统ID时,这个应用就不能及时的显示出操作系统的具体信息了。
Not only that, but when Microsoft released an updated, never-before-seen operating system ID, the application failed to display operating system information in a timely manner.

from winveruwp.

Gaoyifei1011 avatar Gaoyifei1011 commented on May 25, 2024

@Gaoyifei1011 unfortunately using winbrand.dll causes the app to fail WACK.

额......这是一个很糟糕的结果。
e... This is a very bad result.

from winveruwp.

dongle-the-gadget avatar dongle-the-gadget commented on May 25, 2024

@Gaoyifei1011 unfortunately using winbrand.dll causes the app to fail WACK.

额......这是一个很糟糕的结果。 e... This is a very bad result.

  1. WACK is pretty much an essential test for all UWP apps waiting for Store submissions, as it determines whether you can submit your app to the Microsoft Store. While some tests aren't actually used, there are still tests they will check your app against. If the app fails one of those, the package fails certification.
  2. Managed to workaround it anyway

    Another status update: I worked around that fail by just using LoadLibraryW and GetProcAddress instead of DllImport.

from winveruwp.

Related Issues (12)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.