0

ボタンを押すとスクリプトを呼び出すフォームがあります。コマンドラインから呼び出そうとしています。コマンドラインでスクリプトをテストしたところ、正しく動作しました。コマンド シェルでスクリプトを実行するためのフォームを取得できません。何か案は?

これは、シェルによって自律的に実行する必要があるコマンド ライン文字列です。

cscript.exe proc_image.vbs 170.191.XXX.XXX picName C:\PicStorage

これは、ボタンの On_Click() アクションで現在持っているものです。

 ShellEx "cscript.exe C:\Scripts\proc_image.vbs" & " 170.191.XXX.XXX" & " picName" & " PicStorage"

私の目標は、スクリプトを呼び出して、IP アドレス、画像の名前、最終的な保存先の 3 つのパラメーターを渡すことです。私の問題は、シェルで上記のコマンドラインを実行するためのフォームを取得することです。ありがとう

編集:これがShellExコードです:

              Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hWnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Declare Function ShellExecuteForExplore Lib "shell32.dll" Alias "ShellExecuteA" _

(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, lpParameters  As Any, _
lpDirectory As Any, ByVal nShowCmd As Long) As Long

 Public Enum EShellShowConstants
essSW_HIDE = 0
essSW_MAXIMIZE = 3
essSW_MINIMIZE = 6
essSW_SHOWMAXIMIZED = 3
essSW_SHOWMINIMIZED = 2
essSW_SHOWNORMAL = 1
essSW_SHOWNOACTIVATE = 4
essSW_SHOWNA = 8
essSW_SHOWMINNOACTIVE = 7
essSW_SHOWDEFAULT = 10
essSW_RESTORE = 9
essSW_SHOW = 5
End Enum

 Private Const ERROR_FILE_NOT_FOUND = 2&
 Private Const ERROR_PATH_NOT_FOUND = 3&
 Private Const ERROR_BAD_FORMAT = 11&
 Private Const SE_ERR_ACCESSDENIED = 5        ' access denied
 Private Const SE_ERR_ASSOCINCOMPLETE = 27
 Private Const SE_ERR_DDEBUSY = 30
 Private Const SE_ERR_DDEFAIL = 29
 Private Const SE_ERR_DDETIMEOUT = 28
 Private Const SE_ERR_DLLNOTFOUND = 32
 Private Const SE_ERR_FNF = 2                ' file not found
 Private Const SE_ERR_NOASSOC = 31
 Private Const SE_ERR_PNF = 3                ' path not found
 Private Const SE_ERR_OOM = 8                ' out of memory
 Private Const SE_ERR_SHARE = 26


 Public Function ShellEx( _
    ByVal sFIle As String, _
    Optional ByVal eShowCmd As EShellShowConstants = essSW_SHOWDEFAULT, _
    Optional ByVal sParameters As String = "", _
    Optional ByVal sDefaultDir As String = "", _
    Optional sOperation As String = "open", _
    Optional Owner As Long = 0 _
 ) As Boolean
 Dim lR As Long
 Dim lErr As Long, sErr As Long
If (InStr(UCase$(sFIle), ".EXE") <> 0) Then
    eShowCmd = 0
End If
On Error Resume Next
If (sParameters = "") And (sDefaultDir = "") Then
    lR = ShellExecuteForExplore(Owner, sOperation, sFIle, 0, 0, essSW_SHOWNORMAL)
Else
    lR = ShellExecute(Owner, sOperation, sFIle, sParameters, sDefaultDir, eShowCmd)
End If
If (lR < 0) Or (lR > 32) Then
    ShellEx = True
Else
    ' raise an appropriate error: *ERROR CODES GO HERE*
           End If


  End Function
4

1 に答える 1

0

C:\PicStorage 文字列の直前に ShellEx コマンドが欠落しているように見えますか?

于 2012-12-13T06:17:50.940 に答える