Estou trabalhando em uma empresa de fabricação de discos rígidos externos. Eu tenho necessidade de atualizar o FW para milhares de HDDs. Eu tenho que fazer o upload de dois arquivos em sequência para que o upload seja concluído. Para fazer o processamento manual leva tempo, bem como permite a chance de erro humano. Então eu decidi automatizar os toques de tecla e cliques do mouse usando Auto Hot Key. Eu também compilei o script. No entanto, o script é instável. Às vezes funciona bem. Algumas vezes o clique de controle não funciona. Às vezes, a entrada principal não será digitada como cheia. Mas o roteiro está bem baseado no meu conhecimento. Se houver algum erro, por favor corrija-me. Também quero remover a unidade com segurança, então, se houver alguma codificação, adicione-a também
Meu processo é a explicação abaixo.
- Conecte o HDD ao PC e aguarde o PC para detectar o HDD
- Abra a ferramenta de upload do FW
- Clique em RESCAN e aguarde até que o HDD apareça na ferramenta
- Clique em procurar primeiro arquivo FW.
- Em seguida, selecione a caixa de seleção próxima ao HDD mostrado na ferramenta.
- Clique em DOWNLOAD e pressione Enter na próxima mensagem de aviso.
- Aguarde o término do download e pressione OK após a exibição da mensagem de sucesso.
- Repita as etapas de 3 a 7 para o segundo arquivo FW.
- Clique em exit e em Safe remove the HDD.
Abaixo está o meu script.
Run, open "Application Location"
Winwait, Warning
if ErrorLevel
{
MsgBox, Window timed out.
return
}
else
{
ControlClick, OK, Warning
Winwait, Application Window name
if ErrorLevel
{
MsgBox, WinWait timed out.
return
}
else
{
; Upload first FW File
ControlClick, Rescan, Application Window name
ControlClick, Browse, Application Window name
Winwait, Open
if ErrorLevel
{
MsgBox, WinWait timed out.
return
}
else
{
SendInput, {Raw}Location of First File
Send, {Enter}
}
sleep, 1500
WinActivate, Application Window name
CoordMode, Mouse, Relative
Click 43, 126
ControlClick, Download, Application Window name
Winwait, Warning
if ErrorLevel
{
MsgBox, WinWait timed out.
return
}
else
{
Send, {Enter}
}
Winwait, Download Successful
if ErrorLevel
{
MsgBox, WinWait timed out.
return
}
else
{
ControlClick, OK, Download Successful
}
}
; Upload Second FW File
WinActivate, Application Window name
ControlClick, Rescan, Application Window name
ControlClick, Browse, Application Window name
Winwait, Open
if ErrorLevel
{
MsgBox, WinWait timed out.
return
}
else
{
SendInput, {Raw}Second FW File location
Send, {Enter}
}
sleep, 1500
WinActivate, Application Window name
CoordMode, Mouse, Relative
Click 43, 126
sleep, 2000
ControlClick, Download, Application Window name
Winwait, Warning
if ErrorLevel
{
MsgBox, WinWait timed out.
return
}
else
{
Send, {Enter}
}
Winwait, Download Successful
if ErrorLevel
{
MsgBox, WinWait timed out.
return
}
else
{
ControlClick, OK, Download Successful
sleep, 1500
ControlClick, Exit, Application Window name
}
}