Олег
4
All posts from Олег
Олег in Олег,

Автозапуск Quik

Искал варианты для автозапуска QUIK, пока остановился на этом:
Автоматизация запуска QUIK с помощью AutoIt
http://www.kamynin.ru/archives/1355

-правда, чтобы заработало, я немного подправил предлагающийся скрипт, кавычки поменял... выкладываю его ниже.


Объясняю, как овладеть AutoIt, который распространяется бесплатно.
Более того, писать для него скрипты очень просто, если Вы знакомы с компьютером в объеме школьных уроков информатики.
Итак идем на сайт производителя: http://www.autoitscript.com/autoit3/downloads.shtml
Забираем AutoIt v3.3.6.1 заодно рекомендую скачать текстовый редактор AutoIt Editor (SciTE).
Далее устанавливаете AutoIt и редактор на свой компьютер.
В редактор копируйте приведенный ниже текст.
Его можно скопировать и в любой другой текстовый редактор.
Сохраняете текст в файл с раширением “au3”.
После этого, в редакторе SciTE в меню TOOLS выполняете BUILD.
Если Вы работаете в другом редакторе, то после сохранения файла заходите в каталог, где он лежит наводите мышку и жмете на правую кнопку.
Появляется меню Выбираете Compile Script.
Получаете исполняемый файл с расширением exe.

Если Вы при установке AutoIt не указали привязку его к расширению au3, то компиляцию Вашей программы надо сделать вызвав Aut2Exe Делается это так:

Заходим : Пуск->Программы->AutoIt v3->Compile Script to .exe

Появляется окно:

В поле с именем “Source” с помощью кнопки “Browse” выбираем исходную программу с расширением .au3

Жмем кнопку “Convert” . Там же, где исходный файл получаем исполняемый с тем же именем но расширением .exe.

Этот файл Вы помещаете в автозапуск, если надо, чтобы QUIK запускался в определенное время.
Либо помещаете файл на стол и в период с 9:50 до 23:00 в рабочие дни, когда надо, щелкаете по файлу и QUIK запускается.
Теперь о самом скрипте.
Текст его приведен ниже.
Как он работает ясно из комментария.
Продвинутые пользователи могут запускать скрипт командной строкой.
Для менее продвинутых поясняю.
В редакторе текста перед трансляцией запишите свой ЛОГИН и ПАРОЛЬ в следующие строки программы:
$Name=» 123456 » ;логин
$Pas=» AAAAAAA » ;пароль


//~~~~~~ТЕКСТ СКРИПТА~~~~~~~~~~~~~~~~~~~~~
; AutoIt Version: 3.0
; Language: Русский
; Platform: Win9x/NT
; Author: Николай Камынин(kamnik@mail.ru)
; в качестве параматров можно задать
; формат запуска программы: RQ ["HH:MM:SS" ["логин" ["пароль" ["путь к файлу QUIK"]]]]
#include <Date.au3>
$Progr="info.exe" ;имя файла с расширением QUIK
$DirW="C:\Info\" ;путь к файлу QUIK
$wind="Идентификация пользователя" ;название окна
$Name="Иванов" ;логин
$Pas="Password" ;пароль
$TimeStart="9:40:00" ;время запуска QUIK
$TimeStop="23:55:00" ;время окончания сессии
if $CmdLine[0] >0 then
$TimeStart=$CmdLine[1] ;время запуска QUIK
EndIf
if $CmdLine[0] >1 then
$Name=$CmdLine[2] ;логин
EndIf
if $CmdLine[0] >2 then
$Pas=$CmdLine[3] ;пароль
EndIf

if $CmdLine[0] >3 then
$DirW=$CmdLine[4] ;путь к файлу QUIK
EndIf
;~~~~~~~~~~~~~~~~~
$NowDate=_NowCalcDate() ;текущая дата
$DateToWeek=_DateToDayOfWeek ( StringMid( $NowDate,1,4), StringMid( $NowDate,6,2), StringMid( $NowDate,9,2))
$DiffToSecStop=_DateDiff("s", _NowCalc(), $NowDate & " " & $TimeStop)
IF ( $DateToWeek>1 and 7>$DateToWeek and $DiffToSecStop>0 ) Then
$DiffToSecStrat=_DateDiff("s", _NowCalc(), $NowDate & " " & $TimeStart)
Sleep($DiffToSecStrat*1000)
if ProcessExists ( $Progr)==0 then
Run($DirW & $Progr,$DirW)
WinWaitActive($wind)
if StringLen($Name)>0 then
Send($Name )
Send("{TAB}")
EndIf
if StringLen($Pas)>0 then
Send($Pas )
Send("{ENTER}")
EndIf
; Send( «{Shift}+{Ctrl}+L»); Начать вывод через DDE из всех таблиц, имеющих настройки экспорта

EndIf
EndIf