Я работаю в компании по производству внешних жестких дисков. У меня есть требование обновить FW для тысяч жестких дисков. Я должен загрузить два файла в последовательности, чтобы завершить загрузку. Ручная обработка требует времени, а также дает шанс человеческой ошибки. Поэтому я решил автоматизировать нажатия клавиш и щелчки мыши с помощью Auto Hot Key. Я также скомпилировал скрипт. Однако скрипт нестабилен. Иногда это работает нормально. Иногда щелчок управления не работает. Иногда ввод ключа не будет напечатан полностью. Но сценарий в порядке на основе моих знаний. Если есть какая-либо ошибка, пожалуйста, исправьте меня. Также я хочу безопасно удалить диск, поэтому, если есть какая-либо кодировка для него, пожалуйста, добавьте его
Мой процесс объяснения, как показано ниже.
- Подключите жесткий диск к ПК и дождитесь, пока компьютер обнаружит жесткий диск
- Откройте инструмент загрузки FW
- Нажмите RESCAN и дождитесь появления HDD в инструменте.
- Нажмите кнопку обзора для первого файла FW.
- Затем установите флажок рядом с жестким диском, показанным в инструменте.
- Нажмите ЗАГРУЗИТЬ и нажмите Enter при следующем предупреждении.
- Дождитесь окончания загрузки и нажмите OK после появления сообщения об успешном завершении.
- Повторите шаги с 3 по 7 для второго файла FW.
- Нажмите выход и безопасно извлеките жесткий диск.
Ниже мой сценарий.
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
}
}