Search code examples
vbawindows-explorerfile-extensionms-word

With VBA, how can I check if, in Windows Explorer, the file extensions for known file types are hidden?


Without opening Windows Explorer. I want to check for this from Word VBA.

Thanks.

EDIT:

This code works now:

Set WshShell = CreateObject("WScript.Shell")

If WshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt") = 0 Then
    MsgBox Prompt:="In Windows Explorer, set the folder options to hide file extensions of known file types." _
        & vbCrLf & vbCrLf & " This prevents the file extension from appearing as part of the document number in" _
        & "the document body and page headers.", Buttons:=vbOKOnly + vbCritical, Title:="Critical"
End If

Solution

  • You need to query the registry value

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt

    Extensions are shown if this value is 0 and hidden if it is 1.

    You can use the RegRead method on the WshShell object to read this value. You can add an reference to the Windows Script Host Object Model type library in your VBA project to get strong typing when you use the WshShell object.