Не запускается файл, если в его пути содержится кириллица - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.444 из 5
Похожие ответы