![Autoit:运行用 FileOpenDialog 选择的程序?](https://linux22.com/image/1393507/Autoit%EF%BC%9A%E8%BF%90%E8%A1%8C%E7%94%A8%20FileOpenDialog%20%E9%80%89%E6%8B%A9%E7%9A%84%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我需要编写一个脚本,让用户能够使用某些参数(需要输入)来运行软件。因此,第一步,选择 exe。第二步,文本输入框应允许用户输入参数。我无法完成第一步。
我尝试了此处找到的第二个示例:[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
答案1
#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