- Windows XP x64 En
Windows 2008 x64 En
Windows 2012 x64 En
В таких ОС App.Path и App.EXEName вместо русских названий папки и файла возвращают только вопросительные знаки и латиницу.
В таких ОС попытки получить например App.Comments вызывают краш приложения с ошибкой чтения ресурса VERSIONINFO.
Вот такое решение нормально работает:
- Код: Выделить всё
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameW" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
- Код: Выделить всё
Const MAX_PATH = 32000 '260
Dim ModuleName As String, sNameTXT As String
ModuleName = String$(MAX_PATH, vbNullChar)
GetModuleFileName App.hInstance, ModuleName, MAX_PATH
ModuleName = StrConv(ModuleName, vbFromUnicode)
ModuleName = Left$(ModuleName, InStr(ModuleName, vbNullChar) - 1)
sNameTXT = Right$(ModuleName, Len(ModuleName) - InStrRev(ModuleName, "\"))