Autoit脚本,自动下载固件。

嵌入式烧写固件太繁琐了,交给自动化脚本解决。

我将相同类型的代码封装成函数,以便更易于阅读和维护。这包括运行和激活应用程序、打开文件对话框并选择文件,以及在应用程序窗口中发送命令。

; 定义应用程序路径和窗口标题
Local $appPath1 = "H:\vmwareWork\MC661\MC661归档文件\archive-main\Fibocom_Windows_MultiUpgradeDL_V1.0.0.0\FibocomMultiUpgradeDL\FibocomMultiUpgradeDL_V1.0.0\FibocomMultiUpgradeDL_V1.0.0.exe"
; 应用程序路径,请替换为您要启动的软件路径
Local $windowTitle1 = "FibocomMultiUpgradeDL_V1.0.0" 
; 窗口标题,请替换为软件窗口的标题
Local $dialogTitle = "打开" 
; 定义您要选择的文件路径
Local $filePath = "\\192.168.73.128\ShareFiles\my_work\iot_os_2\.build\hex\8850CM_cat1bis_volte_plus-8850CM_cat1bis_volte_plus-debug.pac"
; 启动应用程序并选择文件
If Not RunAndActivateApp($appPath1, $windowTitle1) Then
    Exit
EndIf
OpenFile($windowTitle1, $filePath)

; 定义第二个应用程序路径和窗口标题
Local $appPath2 = "E:\zbl_owner\常用软件\sscom_5033\SSCOMv5131.exe"
; 应用程序路径,请替换为您要启动的软件路径
Local $windowTitle2 = "SSCOM V5.13.1 串口/网络数据调试器,作者:大虾丁丁,2618058@qq.com. QQ群:52502449(最新版本)"

; 启动应用程序并发送命令
If Not RunAndActivateApp($appPath2, $windowTitle2) Then
    Exit
EndIf
SendCommand($windowTitle2, "AT^FORCEDNLD")

; 函数定义

; 启动应用程序并激活窗口
Func RunAndActivateApp($appPath, $windowTitle)
    ; 检查窗口是否已经打开
    Local $hWnd = WinGetHandle($windowTitle)
    If $hWnd <> "" Then
        ; 激活窗口并等待其激活
        WinActivate($windowTitle)
        WinWaitActive($windowTitle)
        Return True
    Else
        ; 运行应用程序并等待窗口激活
        Run($appPath)
        If Not WinWait($windowTitle, "", 10) Then
            ; 超时后退出
            Return False
        EndIf
        WinActivate($windowTitle)
        WinWaitActive($windowTitle)
        Return True
    EndIf
EndFunc

; 在指定窗口中打开文件
Func OpenFile($windowTitle, $filePath)
    ; 使用相对于控件的坐标模式
    Opt("MouseCoordMode", 2)
    ; 在窗口的指定位置单击
    MouseClick("left", 204, 27)
    Sleep(50)
    ; 单击打开文件对话框按钮
    MouseClick("left", 35, 30)
    Opt("MouseCoordMode", 0)
    
    ; 等待打开对话框并激活
    WinWait($dialogTitle)
    WinActivate($dialogTitle)
    WinWaitActive($dialogTitle)
    
    ; 在对话框中设置文件路径并单击打开按钮
    ControlSetText($dialogTitle, "", "Edit1", $filePath)
    Sleep(50)
    ControlClick($dialogTitle, "", "Button1")
    WinWaitClose($dialogTitle)
    
    ; 激活原始窗口
    WinActivate($windowTitle)
    WinWaitActive($windowTitle)
	
	 ; 将鼠标坐标模式设置为相对于控件
    Opt("MouseCoordMode", 2)
    ; 获取控件 "ToolbarWindow32" 的位置
    $Sa = ControlGetPos($windowTitle, "", "ToolbarWindow32")
    ; 在指定的坐标位置点击鼠标左键,停止坐标
    MouseClick("left", 152, 29)
	; 将鼠标坐标模式恢复为默认模式
    Opt("MouseCoordMode", 0)
	Sleep(50) 
	
EndFunc

; 在指定窗口中发送命令
Func SendCommand($windowTitle, $command)
    ; 激活窗口并选择命令输入框
    WinActivate($windowTitle)
    WinWaitActive($windowTitle)
    ControlClick($windowTitle, "", "TMemo1")
    
    ; 在输入框中设置命令并单击发送按钮
    Sleep(50)
    ControlSetText($windowTitle, "", "TMemo2", $command)
    ControlClick($windowTitle, "", "TBitBtn5")
EndFunc


 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值