Не запускается файл, если в его пути содержится кириллица - VB
Формулировка задачи:
Добрый день!
Прошу помочь. Запутался в трех соснах...
Код простейший, в чем проблема не понимаю...
Если в пути к файлу "Progs.exe" нет кириллицы, все запускается. Если есть, фонарь. Причем в режиме просмотра "runScript.cmd" вижу символы (кириллицу). Во время исполнения "runScript.cmd" вместо кириллицы "абра кадабра"
Решение задачи: «Не запускается файл, если в его пути содержится кириллица»
textual
Листинг программы
Option Explicit Private Declare Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameW" (ByVal lpszLongPath As Long, ByVal lpszShortPath As Long, ByVal cchBuffer As Long) As Long Const MAX_PATH As Long = 260& Private Sub Form_Load() Dim intFreeFile As Integer, intRetCodes As Integer, str As String intFreeFile = FreeFile Open "runScript.cmd" For Output As intFreeFile Print #intFreeFile, "@Echo off" str = Chr(34) & App.Path & "\Progs.exe" & Chr(34) Print #intFreeFile, PathToDOS(str) Close intFreeFile intRetCodes = Shell(Chr(34) & App.Path & "\runScript.cmd" & Chr(34), vbNormalFocus) End Sub Public Function PathToDOS(Path As String) On Error GoTo ErrorHandler: Dim AltName As String Dim SizeOfAltName As Long AltName = Space$(MAX_PATH + 1&) SizeOfAltName = GetShortPathName(StrPtr(Path), StrPtr(AltName), MAX_PATH + 1&) If SizeOfAltName <> 0& Then AltName = Left$(AltName, SizeOfAltName) If StrComp(AltName, Path, 1) <> 0& Then PathToDOS = AltName End If Exit Function ErrorHandler: End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д