问题描述
我的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。