Функция оболочки VB6 - неверный вызов процедуры или аргумент оболочки - PullRequest
1 голос
/ 18 января 2012

Я пытаюсь запустить функцию оболочки для открытия файла с помощью Notepad.exe

При попытке открыть файл появляется сообщение об ошибке «Недопустимый вызов процедуры или аргумент оболочки».

Sub OpenTextFile(textfile$)
  Dim txtapp$, arg$
  txtapp = "Notepad.exe"
  textfile = "C:\Users\ADMIN\Desktop\USA - FLNG\modelout\SUMMER.CFS"
  arg = Trim$(txtapp & " " & Chr$(34) & Trim$(textfile) & Chr$(34))
  ierr = Shell(arg, vbNormalFocus)
End Sub

Есть идеи?

Ответы [ 2 ]

1 голос
/ 18 января 2012

Это сработало для меня:

Sub OpenTextFile(textfile As String)

Const txtapp As String = "Notepad.exe"
Dim arg As String
Dim ierr As Double

  arg = Trim$(txtapp & " " & Chr$(34) & Trim$(textfile) & Chr$(34))
  ierr = Shell#(arg, vbNormalFocus)

End Sub

Символы объявления типа считаются устаревшим кодом, поэтому я избегаю их с объявлениями.(Однако я использовал их с Shell / Trim / Chr, чтобы избежать типа возвращаемого значения Variant.)

Я считаю, что ошибка, с которой вы сталкиваетесь, заключается в том, что ваш путь к файлу содержит пробелы.Попробуйте вместо WSHOM :

Sub OpenTextFile(textfile As String)
Dim oShell As Object

  Set oShell = GetShell

  If Not oShell Is Nothing Then
    oShell.Run textfile
  End If
End Sub

Function GetShell() As Object
  On Error Resume Next  
  Set GetShell = CreateObject("WScript.Shell") 
End Function
0 голосов
/ 22 февраля 2012

Я думаю, что есть файл Notepad.exe, расположенный рядом с вашим приложением exe

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...