Autoit:FileOpenDialogで選択されたプログラムを実行しますか?


2

ユーザーが特定のパラメーターを使ってソフトウェアを実行できるようにするスクリプトを作成する必要があります(それを入力する必要があります)。 だから、最初のステップは、exeファイルを選択します。第二に、テキスト入力ボックスはユーザがパラメータを入力できるようにするべきです。 最初の一歩を踏み出すことはできません。

ここにある2番目の例を試してみました。 [ https://www.autoitscript.com/autoit3/docs/functions/FileOpenDialog.htm][1]

唯一の変更は、私が追加した「実行」コマンドです。 スクリプトを実行すると、実行可能ファイルの完全なファイルパスが表示されますが、何も実行されません。私はまたエラーを見ません:

include <FileConstants.au3>
include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Create a constant variable in Local scope of the message to display in FileOpenDialog.
    Local Const $sMessage = "Select a single file of any type."

    ; Display an open dialog to select a file.
    Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST)
    If @error Then
        ; Display the error message.
        MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")

        ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
        FileChangeDir(@ScriptDir)
    Else
        ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
        FileChangeDir(@ScriptDir)

        ; Replace instances of "|" with @CRLF in the string returned by FileOpenDialog.
        $sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF)

        ; Display the selected file.
        MsgBox($MB_SYSTEMMODAL, "", "You chose the following file:" & @CRLF & $sFileOpenDialog)
    Run($sFileOpenDialog)
    EndIf
EndFunc   ;==>Example

回答:


0
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>

Run_with_parameters()

Func Run_with_parameters()
    Local Const $sMessage = "Select the program to be run."

    Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST)
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")

        FileChangeDir(@ScriptDir)
    Else
        FileChangeDir(@ScriptDir)

        $sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF)
        Local $parameters = InputBox("Parameters", "Please type the parameters", "/?", "", _
             - 1, -1, 0, 0)
        Run($sFileOpenDialog & " " &  $parameters)

    EndIf
EndFunc   ;==>Run_with_parameters
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.