如何确定Excel文件是否已打开?

问题描述

我的AutoIt脚本打开一个Excel文件并将其移至桌面,但是如果该Excel文件已经打开,我发现了一个问题,因此,我需要在我的代码中添加一个条件,如果打开Excel文件则要通过。 / p>

我的代码:

#include<excel.au3>

Func _WinWaitActivate($title,$text,$timeout=0)

    WinWait($title,$timeout)
    If Not WinActive($title,$text) Then WinActivate($title,$text)
    WinWaitActive($title,$timeout)

EndFunc

Func _Au3RecordSetup()

    Opt('WinWaitDelay',100)
    Opt('WinDetectHiddenText',1)
    Opt('MouseCoordMode',0)
    Local $aResult = DllCall('User32.dll','int','GetKeyboardLayoutNameW','wstr','')

    If $aResult[1] <> '0000040C' Then
        MsgBox(64,'Warning','Recording has been done under a different Keyboard layout' & @CRLF & '(0000040C->' & $aResult[1] & ')')
    EndIf

EndFunc

HotKeySet("{F2}","COMP")

Func COMP()
    local $var = "C:\Users\Relkassah\Desktop\changment  data.xlsx"
    local $oExcel_1 = _Excel_Open()

    _Excel_BookOpen($oExcel_1,$var)
    Sleep(300)
    _WinWaitActivate("changment  data - Excel","")
    Send("{ALTDOWN}{SPACE}m{ALTUP}")
    MouseClick("left")
    MouseDown("left")
    MouseMove(150,444)
    MouseUp("left")
    Send("{ALTDOWN}{SPACE}{ALTUP}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}")

EndFunc

While 1
    Sleep(1)
WEnd

解决方法

查看此功能可能会对您有所帮助:https://www.autoitscript.com/autoit3/docs/functions/WinExists.htm 您必须在while循环内添加if语句,例如:

    While 1
   
   If WinExists($yourwindow) Then
      ;do whatever you want here..
      EndIf
   
    Sleep(1)
WEnd

此函数将返回true或false值,并且在打开excel时它将继续发送true。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...