Извиняюсь за своего коллегу, который не выложил скрипт, он действительно не программист.
Скачайте прогу AutoHotkey.
Скрипт советую протестить, т.к. он по разному работает на разных машинах. Пишется в обычном блокноте, расширение *.ahk.
Удачи.
Пример:
Pause_Sleep := 1000
SetControlDelay, 1000 ; задержка для команд control
run, SMAdmin.exe, C:\SM2000\Bin\, UseErrorLevel, idSM
if ErrorLevel = ERROR
Exit
Sleep, Pause_Sleep
Send, +{Tab}
If %0% = 0
{
Send, supermag ; пользователь
Send, {Tab}
Send, 234 ; пароль
Pause_sec:=15 ; задержка по умолчанию
}
else
{ ; командная строка
Send, %1% ; пользователь
Send, {Tab}
Send, %2% ; пароль
Pause_sec:=%3% ; задержка на выполнение расчетов в сек.
}
Send, {Enter}
Sleep, Pause_Sleep
IfWinExist, Сообщение об ошибке
{
Sleep, Pause_Sleep
WinClose, ahk_pid %idSM%
Sleep, Pause_Sleep
WinClose, ahk_pid %idSM%
exit
}
Sleep, Pause_Sleep
; аналитика
Send, {Down 2}
sleep, Pause_Sleep
; товародвижение
Send, {Tab}
Sleep, Pause_Sleep
Send, +{Right}
Sleep, Pause_Sleep
sleep, Pause_Sleep
; Очистка базы
Send, {Tab 6}
Sleep, Pause_Sleep
Send, {Enter}
sleep, Pause_Sleep
Send, {Down} ; Полная
Sleep, Pause_Sleep
Send, {Enter} ; Ок
Sleep, Pause_Sleep
Send, {Left} ; Полная очистка базы
Sleep, Pause_Sleep
Send, {Enter} ; Ок
Sleep, Pause_Sleep
WinWait, Административный модуль, Очистка базы данных завершена., Pause_sec
if ErrorLevel
{
MsgBox, 0, , Ошибка очистки базы, 3
loop
{
IfWinNotExist, Административный модуль, Завершить работу с программой?
WinClose, ahk_pid %idSM%
else
{
Send, {Enter}
break
}
Sleep, Pause_Sleep
}
exit
}
Sleep, Pause_Sleep
Send, {Enter} ; Ок
Sleep, Pause_Sleep
; перенести
Send, +{Tab 4}
Send, {Enter} ; Ок
sleep, Pause_Sleep
Send, {Enter} ; Ок
sleep, Pause_Sleep
IfWinExist, Административный модуль, Время, по которое
{
Send, {Enter} ; Ок
sleep, Pause_Sleep
}
IfWinExist, Сообщение об ошибке
{
loop
{
IfWinNotExist, Административный модуль, Завершить работу с программой?
Send, {ALTDOWN}{F4}{ALTUP}
else
{
Send, {Enter}
exit
}
Sleep, Pause_Sleep
}
}
sleep, Pause_Sleep
WinWait, Административный модуль, Перенос выполнен успешно., Pause_sec
if ErrorLevel
{
MsgBox, 0, , Ошибка переноса , 3
loop
{
IfWinNotExist, Административный модуль, Завершить работу с программой?
WinClose, ahk_pid %idSM%
else
{
Send, {Enter}
break
}
Sleep, Pause_Sleep
}
exit
}
sleep, Pause_Sleep
Send, {Enter} ; Ок
; рассчитать
send, {Tab}
send, {Enter}
sleep, Pause_Sleep*2
Send, {Enter} ; Ок
sleep, Pause_Sleep
WinWait, Административный модуль, Расчет завершен успешно., Pause_sec
if ErrorLevel
{
MsgBox, 0, , Ошибка расчета аналитики, 3
; закрыть все окна
loop
{
IfWinNotExist, Административный модуль, Завершить работу с программой?
WinClose, ahk_pid %idSM%
else
{
Send, {Enter}
break
}
Sleep, Pause_Sleep
}
exit
}
Sleep, Pause_Sleep
Send, {Enter}
Sleep, Pause_Sleep
; закрыть все окна
loop
{
IfWinNotExist, Административный модуль, Завершить работу с программой?
Send, {ALTDOWN}{F4}{ALTUP}
else
{
Send, {Enter}
exit
}
Sleep, Pause_Sleep
}