The registry show more than what is actually been installed. Ie ones not actually there. Example a plain en-us install will just show en-us, install a lang pack to get say fr-fr then registry not seem to show it. The filesearch finds lang that been installed as the lang pack adds the file in %systemroot% or c:\windows usually. I had tried before via registry and it was unreliable. Abbodi helped me get the language list in a script which i have converted to autoit code for use in the gui version.
Will test that in morning , seems i missed that area as i not have any other languages installed. Although i can see a potential flaw, it not showing he-he in your screenshot, so my search would fail. Will have to see.
Regread in autoit can be a pain at times too, for example the secure boot check was returning wrong data, i had to resort to a binary cross check. But a simple ' if @ error then ' check got a work around sorted. Good job there is a lot of help on the net for the majority of pitfalls I've fell into!
Note: Searching for xx-xx directories in %SystemRoot% is equally unreliable. For example, I have one directory de-DE in there, but it's completely empty. That means that de-DE is NOT installed, but might have been at one point. The directories are not removed when the languages are. So, if you want to keep using that routine, it should: 1. Search for xx-xx (only directories, not files). 2. Evaluate the found directories if they actually contain any *.mui (and *.bin) files. If not, drop that directory. As for the registry, the path from @Dark Dinosaur Code: "HKEY_CURRENT_USER\Control Panel\International\User Profile" does not even exist in the Windows 7 registry. There is only Calenders and Geo, no UserProfile.
Code used in the non Gui QT: Code: :FindMultiLangs setlocal EnableDelayedExpansion for /f %%L in ('dir /ad /b "%SystemRoot%\*-*"') do ( if exist "%SystemRoot%\%%L\explorer.exe.mui" set "LocaleName=!LocaleName!,%%L" ) endlocal & SET "MMM=%LocaleName%" if defined MMM for /f %%j in ("%MMM:~1%") do set "MMM=%%j" if defined MMM SET "MultiLangNames=%MMM%" exit /b Searches Directories and name only, has worked OK. AutoIt i need to tweak the routine... *edit* Now done in autoIT, looks for folder names only and if not empty, if they are empty it ignores the name so not to add to the list/result.
The extra languages part is more specific so that filenames not wanted is ignored... Will upload new gui soon, just tweaking PS detection for w7. I not sure it will show PS 7.x but will sort that at a later date.
Added : OS Install date. .Net versions Powershell versions. Updated Extra/Additional languages routine to be a bit more specific and not look for filenames, it only looks for folder names and if they not empty. Few other code updates.
For next gui qt have added current keyboard layout, or keyboard culture as it proper name! I had used ps to get the result but it failed on w7, the new method via registry works on all os's. That will be tomorrow as at a friends looking after him as he had a bad fall this morning. Luckily it is cuts and bruises, used my first aid skills to dress the wound. Not needed hospital treatment as it just superficial. He was checked over by the first response team.
No idea what is up with the damn thing, getting rather p'd off with it on w7 now. May just leave it as it is because on some computers it shows the gfx info.
Even keyboard culture got a value higher than any i have reference for too 66569 will add that in, i may of got a number wrong in the vast list of variable checks and it there but not right number.
Anyway will look tomorrow as not at home at moment. Graphics info im wondering if the routine is picking out intel and nvidia better than amd. The routine does not specifically favor intel, or nvidia, it certainly not find amd internal types, will have to build a amd pc up, im sure i have a fx or athlon system around i can put together. All i tested on for w7 seem to be intel chipsets.
Have made a simple test exe just for the graphics detection using the exact same routine as in the GUI QT so i can quickly test.... It not use the PS method but via registry and a quite complex algorithm to get the results, this could be the reason it gets confused... On that E350N motherboard it is a AMD cpu and the HD6300 internal gpu. I had to install the driver or i just got 'Standard VGA' and N/A for vram and DAC. So i really have no idea why it not work on all AMD gpu etc. Have added the German (IBM) keyboard layout number.
From the Grfx_test: From QTGUI 0.10.0.6: Keyboard Culture is not correct (shows en-US), graphix fixed, the rest is not different from 0.10.0.5. Here the settings, I have en-US language, but German (IBM) keyboard. Maybe it gets confused?