Jump to content

Recommended Posts

Posted (edited)

 

 

Spoiler

Important note about Windows DLLs

Files like fontext.dll in newer versions of Windows (Windows 10/11) are MUI (Multilingual User Interface) binaries.
This means that the actual language strings are often not contained within the .dll itself,
but in language subfolders (e.g. C:\Windows\System32\el-GR\fontext.dll.mui).

When you call LoadLibraryExW with the flag $LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE (0x00000040) or
when you let Windows load the corresponding .mui,
the system automatically routes the call to the language of the active user.

 

 

I have English MUI (Multilingual User Interface) windows.

#AutoIt3Wrapper_UseX64=y

#include <WinAPIRes.au3>

Local $aStrings[4] = [1101, 1103, 1136, 1137]

; Directly load the MUI file for Greek
Local $sMuiDll = @SystemDir & "\el-GR\comdlg32.dll.mui"
ConsoleWrite("-> $sMuiDll=" & $sMuiDll & @CRLF)

Local $hInstance = _WinAPI_LoadLibraryEx($sMuiDll, $LOAD_LIBRARY_AS_DATAFILE)

If $hInstance Then
    For $i = 0 To UBound($aStrings) - 1
        ConsoleWrite("String " & $aStrings[$i] & ": " & _WinAPI_LoadString($hInstance, $aStrings[$i]) & @CRLF)
    Next
    _WinAPI_FreeLibrary($hInstance)
Else
    ConsoleWrite("Error: Could not load MUI file." & @CRLF)
EndIf

output:

>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "D:\i\Pro\.AutoIT\_Test\000_forum-topic\213613-guidarktheme-udf\neo-test.au3" /UserParams    
+>11:53:37 Starting AutoIt3Wrapper (pid=18340) 23.402.1150.10 from:SciTE.exe (4.4.6.0)  Keyboard:00000409  OS:WIN_11/2009  CPU:X64 OS:X64  Environment(Language:0409)  CodePage:65001  utf8.auto.check:4
+>         SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE   UserDir => C:\Users\ioaio\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\ioaio\AppData\Local\AutoIt v3\SciTE 
>Running AU3Check (3.3.18.0)  from:C:\Program Files (x86)\AutoIt3  input:D:\i\Pro\.AutoIT\_Test\000_forum-topic\213613-guidarktheme-udf\neo-test.au3
+>11:53:38 AU3Check ended. rc:0
>Running:(3.3.18.0):C:\Program Files (x86)\AutoIt3\autoit3_x64.exe "D:\i\Pro\.AutoIT\_Test\000_forum-topic\213613-guidarktheme-udf\neo-test.au3"    
+>Setting Hotkeys...--> Press Ctrl+Alt+Break to Restart. --> Press Ctrl+BREAK to Stop.
-> $sMuiDll=C:\WINDOWS\system32\el-GR\comdlg32.dll.mui
String 1101: Γραμματοσειρά TrueType. Η ίδια γραμματοσειρά θα χρησιμοποιηθεί και στον εκτυπωτή και στην οθόνη σας.
String 1103: Γραμματοσειρά οθόνης. Στον εκτυπωτή σας θα χρησιμοποιηθεί η πλησιέστερη γραμματοσειρά που ταιριάζει.
String 1136: Γραμματοσειρά OpenType. Η ίδια γραμματοσειρά θα χρησιμοποιηθεί στον εκτυπωτή και στην οθόνη σας.
String 1137: Γραμματοσειρά OpenType. Η ίδια γραμματοσειρά θα χρησιμοποιηθεί στον εκτυπωτή και στην οθόνη σας.

 

edit: 😁

#AutoIt3Wrapper_UseX64=y

#include <WinAPIRes.au3>
#include <File.au3>

Local $aStrings[4] = [1101, 1103, 1136, 1137]

Local $aArray = _FileListToArrayRec(@SystemDir, "comdlg32.dll.mui", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_SORT)

For $j = 1 To $aArray[0]
    ; Directly load the MUI file
    Local $sMuiDll = @SystemDir & "\" & $aArray[$j]

    Local $sLabel = StringLeft($aArray[$j], StringInStr($aArray[$j], "\") -1)
    ConsoleWrite("--- " & $sLabel & " ---" & @CRLF)

    Local $hInstance = _WinAPI_LoadLibraryEx($sMuiDll, $LOAD_LIBRARY_AS_DATAFILE)

    If $hInstance Then
        For $i = 0 To UBound($aStrings) - 1
            ConsoleWrite("String " & $aStrings[$i] & ": " & _WinAPI_LoadString($hInstance, $aStrings[$i]) & @CRLF)
        Next
        _WinAPI_FreeLibrary($hInstance)
    Else
        ConsoleWrite("Error: Could not load MUI file." & @CRLF)
    EndIf
Next

 

Edited by ioa747

I know that I know nothing

Posted

GUIDarkTheme 2026.07.27

  • Load Font Type strings directly from OS with _WinAPI_LoadString
    • This also obtains strings for non-English OS
  • DPI improvements for vertical alignment of combo items in Font dialog
  • Fixed issue where Font dialog was crashing on non-English OS
    • Changed methods used to determine if dialog is Font, Color, etc.

Latest download available in the first post of the topic. :)

Posted
4 hours ago, ioa747 said:

I have English MUI (Multilingual User Interface) windows.

Your example scripts and output was very helpful, thank you. :)

I've never had multiple languages on my system and so never really understood how it all works. So your examples pulling strings from MUI files helped my understanding.

I have always wondered something though and perhaps you can help answer this question.

Does the @MUILang macro return the currently (in-use) language that is on your system in a multi-language system?

Also if you have a moment, I just updated GUIDarkTheme-2026.07.27 version with some fixes to prevent crashes particularly on non-English OS for the ChooseFont dialog. Could you please test this new version, run the GUI, and click on the ...Font() button to bring up the ChooseFont dialog to see if it works in your language?

Thank you. Although, it would need to be tested on Win10/11. I don't recall what your main system runs. :)

My goal is simply to make the default ChooseFont dialog become dark mode but keeping the design and layout the same. So I often test by running the AutoIt default light mode _ChooseFont() dialog and run my dark mode variant and check them side-by-side to compare. It was much more complex than I anticipated. But it turned out good so far.

Posted
ConsoleWrite("@muilang=" & @muilang & @CRLF)

it comes out @muilang=0409

basically it says what the scite console says
+>17:07:56 Starting AutoIt3Wrapper (pid=7804) 23.402.1150.10 from:SciTE.exe (4.4.6.0) Keyboard:00000409 OS:WIN_11/2009 CPU:X64 OS:X64 Environment(Language:0409) CodePage:65001 utf8.auto.check:4

In my system
as Windows display language
Windows features like Settings and File Explorer will appear in this language
English (United States)

And as  Country or region a
Windows and apps might use your country or region to give you local content
Greece

Edition    Windows 11 Pro
Version    25H2
Installed on    ‎27/‎11/‎2025
OS build    26200.8894
Experience    Windows Feature Experience Pack 1000.26100.334.0

 

I know that I know nothing

Posted

GUIDarkTheme 2026.08.03

  • Added dark theme support for RichEdit controls
  • Added CUSTOMDRAW for improved Rebar control dark theme
    • Allows custom painting of Rebar band gripper and more
  • Fixed some visual glitches with multi-line Edit (ES_MULTILINE) controls in WM_CTLCOLOREDIT
  • Improvements to vertical alignment of text in single line Edit controls
  • Improved vertical alignment of text in HotKey controls
  • Added _SelfWatchDog UDF by argumentum for debugging if needed
    • Added related "Enable Debugger" option in the Options menu
  • Fixed an issue where the top 3 pixels of a SysIPAddress32 control were not responding to clicks

Latest download available in the first post of the topic. :)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...