Что нового

[Данные, строки] Ведение Лога, чтение из ini...

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
Версия AutoIt:v3.3.6.1

Описание: Всем Салют! На работе очень нужен логгер для учёта печати(у нас широкоформатная печать). Не хватает мне времени разобраться с языком, чтоб самому написать(.
Вобщем идея такая: в корне папки программы управляющей принтером я обнаружил ini-файл который меняет своё "содержимое" при различных условиях/действиях.
Этим можно воспользоваться для ведения лога. Вот основные состояния и данные файла которые нам пригодятся:
Код:
#1[PrintingStatus]
uiPass=2 - Количество проходов (Pass) при печати данного файла (значение 0 означает 1 pass, 2=3p, 3=4p, 4=6p, 5=8p, 6=12p, 7=16p)
uiMargin=14598 
csPrintingFile=royal philharmonic orchestra 3х6.prt - Имя файла
csPrintingFilePath=d:\rip\royal philharmonic orchestra 3х6.prt - Путь Файла
uiFire=26157
uiStepSendCurrent=509 - Текущий шаг(проход), если значение равно нижнему значит файл полностью отпечатан 
uiStepSendCount=509 - Общие количество шагов(проходов) для текущего файла 
bIfYMove=2 - Состояние каретки голов, 0 = движение по Y, 1 = остановка для прохода или ожидание на паузе в доке, 2 = остановка/окончание печати
bHorizontalMirror=0 
uiFeatherSize=0
bPrintStop=0 - это значение принимает 1 если файл принудительно остановлен

По умолчанию в ini хранятся данные последнего запущенного в печать файла

#2[PrintingStatus]
uiPass=3
uiMargin=2268
csPrintingFile=продажа 0,5х2.prt
csPrintingFilePath=d:\rip\продажа 0,5х2.prt
uiFire=13827
uiStepSendCurrent=37
uiStepSendCount=37
bIfYMove=2
bHorizontalMirror=0
uiFeatherSize=0
bPrintStop=0

Отправка нового файла в печать, при старте печати происходит
обновление ini, соответственно новое имя или старое, если тот же файл в очереди, 
качество (uiPass) тоже обновляется, печать в процессе: 6 из 253 проходов (2%)

#3[PrintingStatus]
uiPass=2
uiMargin=2268
csPrintingFile=6000x3000_готов korea.prt
csPrintingFilePath=d:\rip\6000x3000_готов korea.prt
uiFire=13827
uiStepSendCurrent=6
uiStepSendCount=253
bIfYMove=0
bHorizontalMirror=0
uiFeatherSize=0
bPrintStop=0

Остановка печатающей каретки по Y или режим ожидания/паузы в доке:
при этом значение IfYMove равено 1

#4[PrintingStatus]
uiPass=2
uiMargin=2268
csPrintingFile=6000x3000_готов korea.prt
csPrintingFilePath=d:\rip\6000x3000_готов korea.prt
uiFire=13827
uiStepSendCurrent=9
uiStepSendCount=253
bIfYMove=1
bHorizontalMirror=0
uiFeatherSize=0
bPrintStop=0

Окончание печати файла (100%):
при этом значения Step-Current и Step-Count равны, 
значение bIfYMove равно 2

#5[PrintingStatus]
uiPass=2
uiMargin=2268
csPrintingFile=6000x3000_готов korea.prt
csPrintingFilePath=d:\rip\6000x3000_готов korea.prt
uiFire=13827
uiStepSendCurrent=253
uiStepSendCount=253
bIfYMove=2
bHorizontalMirror=0
uiFeatherSize=0
bPrintStop=0

Принудительная остановка печати:
значения Step-Current и Step-Count канешно же разные, 
а значение bPrintStop равно 1,значение bIfYMove равно 2

#6[PrintingStatus]
uiPass=2
uiMargin=2268
csPrintingFile=6000x3000_готов korea.prt
csPrintingFilePath=d:\rip\6000x3000_готов korea.prt
uiFire=13827
uiStepSendCurrent=1
uiStepSendCount=253
bIfYMove=2
bHorizontalMirror=0
uiFeatherSize=0
bPrintStop=1
Желательно получить такой формат лога:

дата ДД:ММ:ГГГГ, время ЧЧ:ММ:СС, имя файла, качество, затраченное время(с начала старта и до полного окончанья
или принудительной остановки), статус, прогресс(если была принудительная остановка), пример:

22:10:2011 10:58:34 royal philharmonic orchestra 3х6.prt (3 Pass, 00:26:32) OK! ;файл отпечатан удачно
22:10:2011 11:02:52 royal philharmonic orchestra 3х6.prt (3 Pass, 00:15:45) Stoped! (345/509) ;остановлен на 345 проходе
22:10:2011 11:35:27 продажа 0,5х2.prt (4 Pass, 00:08:14) OK!

Главное разработать правильный алгоритм, чтоб не было случайных срабатываний или наоборот пропуск события мимо лога. Мой вариант такой: по запуску скрипта идёт опрос ini, по умолчанию его состояние известно как второе #2 (на вкладке с кодом выше), потом запускается программа для печати. Далее в печать отправляется задание, ini-файл изменится на третье состояние#3(событие добавляется в лог), периодически сменяясь состоянием #4, по завершении печати задачи, состояние ini-файла изменится на #5(при этом условии нужно дописать в строчку затраченное время и статус успешного завершения печати), но если печать была остановлена принудительно, состояние ini-файла примет состояние #6(при этом условии нужно дописать в строчку затраченное время и статус принуд. остановки задачи и проход на котором была остановка). Для того чтобы не набивать один и тот же тхт-файл, нужно генерировать каждый месяц новый, с именем числа месяца и года или очищать старый.

Тело файла PrintingStatus.ini:
Код:
[PrintingStatus]
uiPass=2
uiMargin=2268
csPrintingFile=6000x3000_готов korea.prt
csPrintingFilePath=d:\rip\6000x3000_готов korea.prt
uiFire=13827
uiStepSendCurrent=41
uiStepSendCount=253
bIfYMove=0
bHorizontalMirror=0
uiFeatherSize=0
bPrintStop=0

Примечания: Для точно ведения лога придётся делать ежесекундное чтение файла, будет ли это сильно влиять на компьютер/программу для печати, есть ли альтернативный способ получения данных, например по факту изменения атрибутов файла? Мне точно сложно это написать, поэтому даже не знаю коммерческий это заказ или нет. Если есть шаблоны, дайте линк, попробую сам...

Заранее спасибо)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Fazatron,
Давайте проверим, будет ли скрипт читать файл PrintingStatus.ini и определять изменения в нем.
Код:
HotKeySet('{Esc}', '_Exit')

$iTimeOut = 1000 ; 1 sec
$sFileIni = @ScriptDir & '\PrintingStatus.ini'
$s_Section = 'PrintingStatus'
$s_Message = ''
$fChange = False
Dim $_Key[7][3] = [[6],['uiPass'],['csPrintingFile'],['uiStepSendCurrent'],['uiStepSendCount'], _
		['bIfYMove'],['bPrintStop']]

For $i = 1 To $_Key[0][0]
	$_Key[$i][1] = IniRead($sFileIni, $s_Section, $_Key[$i][0], '')
Next
$iStart = TimerInit()
While 1
	If TimerDiff($iStart) > $iTimeOut Then
		$s_Message = ''
		For $i = 1 To $_Key[0][0]
			$_Key[$i][2] = IniRead($sFileIni, $s_Section, $_Key[$i][0], 'Error ' & Random(1, 100000, 1))
			If $_Key[$i][1] <> $_Key[$i][2] Then
				$s_Message &= $_Key[$i][0] & ' Старое: ' & $_Key[$i][1] & ', Новое: ' & $_Key[$i][2] & @LF
				$_Key[$i][1] = $_Key[$i][2]
				$fChange = True
			EndIf
		Next
		$iStart = TimerInit()
	EndIf
	If $s_Message Then
		If $fChange Then
			Beep(300, 50)
			$fChange = False
		EndIf
		ToolTip('Изменились значения:' & @LF & StringTrimRight($s_Message, 1), 0, 0, @HOUR & ':' & @MIN & ':' & @SEC)
	EndIf
	Sleep(50)
WEnd

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Fazatron
Мой Вариант
Код:
HotKeySet("{Esc}", "_Exit")

Global $sPSIni = @ScriptDir & "\PrintingStatus.ini"
Global $sLogFile = @ScriptDir & "\Printing.log"

While 1
	$iIfYMove = IniRead($sPSIni, "PrintingStatus", "bIfYMove", 0)
	If $iIfYMove = 0 Then _PrintingStart()
WEnd

Func _PrintingStart()
	$iTimerInit = TimerInit()

	While 1
		Sleep(500)
		$ibIfYMove = IniRead($sPSIni, "PrintingStatus", "bIfYMove", 0)
		If $ibIfYMove = 2 Then ExitLoop
		Sleep(500)
	WEnd

	$sPFile = IniRead($sPSIni, "PrintingStatus", "csPrintingFile", "") ; имя файла
	$iPass = IniRead($sPSIni, "PrintingStatus", "uiPass", "") ; качество
	$sPTime = _PrintingTime(TimerDiff($iTimerInit)) ; затраченное время
	$iPStop = IniRead($sPSIni, "PrintingStatus", "bPrintStop", 0) ; статус
	$iSSCurrent = IniRead($sPSIni, "PrintingStatus", "uiStepSendCurrent", 0) ; прогресс
	$iSSCount = IniRead($sPSIni, "PrintingStatus", "uiStepSendCount", 0) ; прогресс

	_LogWrite($sPFile, $iPass, $sPTime, $iPStop, $iSSCurrent, $iSSCount)
EndFunc

Func _PrintingTime($_iTicks)
	Local $iHours, $iMins, $iSecs

	$iTicks = Int($_iTicks / 1000)
	$iHours = Int($iTicks / 3600)
	$iTicks = Mod($iTicks, 3600)
	$iMins = Int($iTicks / 60)
	$iSecs = Mod($iTicks, 60)

	Return StringFormat("%02d:%02d:%02d", $iHours, $iMins, $iSecs)
EndFunc

Func _LogWrite($_sPFile, $_iPass, $_sPTime, $_iPStop, $_iSSCurrent, $_iSSCount)
	Local $sLogStr = "", $aPass[8] = ["1 Pass", "2 Pass", "3 Pass", "4 Pass", "6 Pass", "8 Pass", "12 Pass", "16 Pass"]

	$sLogStr &= StringFormat("%02d.%02d.%04d %02d:%02d:%02d", @MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC) & " "
	$sLogStr &= $_sPFile & " (" & $aPass[$_iPass] & ", " & $_sPTime & ") "

	If $_iPStop = 0 Then $sLogStr &= "OK!"
	If $_iPStop = 1 Then $sLogStr &= "Stoped! (" & $_iSSCurrent & "/" & $_iSSCount & ")"

	FileWriteLine($sLogFile, $sLogStr)
EndFunc

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
Fazatron

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
Хорошо!
Сейчас потестирую, спсибо...
 
Автор
Fazatron

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
madmasles, да скрипт отлично работает, осталось к нему прикрипить анализирующую часть и записную книжку)

XpycT, никак нимогу понять как ваш вариант запусить или он ещё не готов?
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Fazatron
Он готов.

Скрипт проверяет значение bIfYMove в ini файле и если оно равно 0, то запускается функция, которая ждет пока значение bIfYMove не будет равно 2, и потом записывает данные в лог файл
 
Автор
Fazatron

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
XpycT, Добрый день!

Потестил я скрипт, всё работает как надо, спасибо, вот только нужно что бы время задачи изменить, те заносить в лог то с которого началась печать, а не то на котором закончилось, т.е. то с которого начинает считать таймер(затраченое время).
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Fazatron
Вот изменил скрипт
Код:
HotKeySet("{Esc}", "_Exit")

Global $sPSIni = @ScriptDir & "\PrintingStatus.ini"
Global $sLogFile = @ScriptDir & "\Printing.log"

While 1
	$iIfYMove = IniRead($sPSIni, "PrintingStatus", "bIfYMove", 0)
	If $iIfYMove = 0 Then _PrintingStart()
WEnd

Func _PrintingStart()
	$sStartDateTime = StringFormat("%02d.%02d.%04d %02d:%02d:%02d", @MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC)
	$iTimerInit = TimerInit()

	While 1
		Sleep(500)
		$ibIfYMove = IniRead($sPSIni, "PrintingStatus", "bIfYMove", 0)
		If $ibIfYMove = 2 Then ExitLoop
		Sleep(500)
	WEnd

	$sPFile = IniRead($sPSIni, "PrintingStatus", "csPrintingFile", "") ; имя файла
	$iPass = IniRead($sPSIni, "PrintingStatus", "uiPass", "") ; качество
	$sPTime = _PrintingTime(TimerDiff($iTimerInit)) ; затраченное время
	$iPStop = IniRead($sPSIni, "PrintingStatus", "bPrintStop", 0) ; статус
	$iSSCurrent = IniRead($sPSIni, "PrintingStatus", "uiStepSendCurrent", 0) ; прогресс
	$iSSCount = IniRead($sPSIni, "PrintingStatus", "uiStepSendCount", 0) ; прогресс

	_LogWrite($sStartDateTime, $sPFile, $iPass, $sPTime, $iPStop, $iSSCurrent, $iSSCount)
EndFunc

Func _PrintingTime($_iTicks)
	Local $iHours, $iMins, $iSecs

	$iTicks = Int($_iTicks / 1000)
	$iHours = Int($iTicks / 3600)
	$iTicks = Mod($iTicks, 3600)
	$iMins = Int($iTicks / 60)
	$iSecs = Mod($iTicks, 60)

	Return StringFormat("%02d:%02d:%02d", $iHours, $iMins, $iSecs)
EndFunc

Func _LogWrite($_sStartDateTime, $_sPFile, $_iPass, $_sPTime, $_iPStop, $_iSSCurrent, $_iSSCount)
	Local $sLogStr = "", $aPass[8] = ["1 Pass", "2 Pass", "3 Pass", "4 Pass", "6 Pass", "8 Pass", "12 Pass", "16 Pass"]

	$sLogStr &= $_sStartDateTime & " "
	$sLogStr &= $_sPFile & " (" & $aPass[$_iPass] & ", " & $_sPTime & ") "

	If $_iPStop = 0 Then $sLogStr &= "OK!"
	If $_iPStop = 1 Then $sLogStr &= "Stoped! (" & $_iSSCurrent & "/" & $_iSSCount & ")"

	FileWriteLine($sLogFile, $sLogStr)
EndFunc

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
Fazatron

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
большое спасибо, потестю, отпешусь...
 
Автор
Fazatron

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
Добрый день, ХрусТ!

Всё замечательно работает, вы мне очень помогли с логгером).
Я надеюсь я не сильно обнаглею если попрошу ещё кое-что изменить?
В работе логгера было бы удобнее чтобы строчка появлялась сразу по добавлению нового файла в печать,
а по окончании дописывалось затраченное время и статус, количество проходов если нужно.

Вот пример:
1. Я добавляю файл в печать, заводится строка(выделил чёрным):
10.11.2011 11:26:49 3x6-evropa-fin print 1.prt (3 Pass, 00:02:54) OK!
10.11.2011 13:12:08 северина_екб_ценовой удар_12,3х2,94.prt (3 Pass, 00:00:16) Stoped! (3/524)
10.11.2011 14:05:44 северина_екб_ценовой удар_12,3х2,94.prt (3 Pass, 00:53:19) OK!

10.11.2011 15:08:34 автоваз_осаго_10.prt (3 Pass) Process!

2. По завершению печати она дополняется:
10.11.2011 11:26:49 3x6-evropa-fin print 1.prt (3 Pass, 00:02:54) OK!
10.11.2011 13:12:08 северина_екб_ценовой удар_12,3х2,94.prt (3 Pass, 00:00:16) Stoped! (3/524)
10.11.2011 14:05:44 северина_екб_ценовой удар_12,3х2,94.prt (3 Pass, 00:53:19) OK!

10.11.2011 15:08:34 автоваз_осаго_10.prt (3 Pass, 00:28:17) OK!

3. И следовательно если принудительно остановлена, то:
10.11.2011 11:26:49 3x6-evropa-fin print 1.prt (3 Pass, 00:02:54) OK!
10.11.2011 13:12:08 северина_екб_ценовой удар_12,3х2,94.prt (3 Pass, 00:00:16) Stoped! (3/524)
10.11.2011 14:05:44 северина_екб_ценовой удар_12,3х2,94.prt (3 Pass, 00:53:19) OK!

10.11.2011 15:08:34 автоваз_осаго_10.prt (3 Pass, 00:15:03) Stoped! (24/254)

Просто так мне было бы удобнее следить за процессом, наглядно видно, что файл уже в процессе.

Заранее благодарен!
:IL_AutoIt_1:
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Fazatron
Вот переделанный скрипт
Код:
#Include <File.au3>

HotKeySet("{Esc}", "_Exit")

Global $sPSIni = @ScriptDir & "\PrintingStatus.ini"
Global $sLogFile = @ScriptDir & "\Printing.log"

While 1
	Sleep(500)
	$iIfYMove = IniRead($sPSIni, "PrintingStatus", "bIfYMove", 0)
	If $iIfYMove = 0 Then _PrintingStart()
	Sleep(500)
WEnd

Func _PrintingStart()
	Local $sLogStr = ""

	$sStartDateTime = StringFormat("%02d.%02d.%04d %02d:%02d:%02d", @MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC)
	$iTimerInit = TimerInit()

	$sPFile = IniRead($sPSIni, "PrintingStatus", "csPrintingFile", "") ; имя файла
	$iPass = IniRead($sPSIni, "PrintingStatus", "uiPass", "") ; качество

	$sLogStr = _LogWrite_Start($sStartDateTime, $sPFile, $iPass)

	While 1
		Sleep(500)
		$ibIfYMove = IniRead($sPSIni, "PrintingStatus", "bIfYMove", 0)
		If $ibIfYMove = 2 Then ExitLoop
		Sleep(500)
	WEnd

	$sPTime = _PrintingTime(TimerDiff($iTimerInit)) ; затраченное время
	$iPStop = IniRead($sPSIni, "PrintingStatus", "bPrintStop", 0) ; статус
	$iSSCurrent = IniRead($sPSIni, "PrintingStatus", "uiStepSendCurrent", 0) ; прогресс
	$iSSCount = IniRead($sPSIni, "PrintingStatus", "uiStepSendCount", 0) ; прогресс

	_LogWrite_End($sLogStr, $sPTime, $iPStop, $iSSCurrent, $iSSCount)
EndFunc

Func _PrintingTime($_iTicks)
	Local $iHours, $iMins, $iSecs

	$iTicks = Int($_iTicks / 1000)
	$iHours = Int($iTicks / 3600)
	$iTicks = Mod($iTicks, 3600)
	$iMins = Int($iTicks / 60)
	$iSecs = Mod($iTicks, 60)

	Return StringFormat("%02d:%02d:%02d", $iHours, $iMins, $iSecs)
EndFunc

Func _LogWrite_Start($_sStartDateTime, $_sPFile, $_iPass)
	Local $aPass[8] = ["1 Pass", "2 Pass", "3 Pass", "4 Pass", "6 Pass", "8 Pass", "12 Pass", "16 Pass"]

	$sLogStr = $_sStartDateTime & " " & $_sPFile & " (" & $aPass[$_iPass]

	FileWriteLine($sLogFile, $sLogStr & ") Process!")

	Return $sLogStr
EndFunc

Func _LogWrite_End($_sLogStr, $_sPTime, $_iPStop, $_iSSCurrent, $_iSSCount)
	$_sLogStr &= ", " & $_sPTime & ") "

	If $_iPStop = 0 Then $_sLogStr &= "OK!"
	If $_iPStop = 1 Then $_sLogStr &= "Stoped! (" & $_iSSCurrent & "/" & $_iSSCount & ")"

	_FileWriteToLine($sLogFile, _FileCountLines($sLogFile), $_sLogStr, 1)
EndFunc

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
Fazatron

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
немного потестил третью версию вроде работает корректно, спасибо)

кстати, у меня в какой то момент начал вылетать exeшник(скрипт) , сначала я думал из-за логвьювера, он каждую секунду читает файл, потом уменьшил интевал проверки, не помогло, затем открыл лог в опере(там есть автообновление страницы), всё равно проблема осталась, мне даже показалось, что это происходит в момент начала печати файла. Потом после ребута компа прекратилось. Если есть идеи подскажите в чём может быть причина, может есть средства для выявления ошибки?
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Fazatron
А можете показать скрипт логвьювера???
 
Автор
Fazatron

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
логвьювер не кустарная прога, а вот эта http://www.uvviewsoft.com/logviewer/ , я же написал, что потом оперой читал лог, всё равно вылетал, я даже из окна скриптэдитора запускал, он сам останавливал скрипт, вот что было в окне Output:
Код:
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Program Files\Digital Printers\Printer V2.09d\logger2.0.au3"    
>Exit code: 0    Time: 723.194

Это происходило один раз, из трёх дней тестирования. Сейчас пока работает стабильно, если что отпишусь.
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Fazatron
Попробуй убрать из скрипта вот эту строчку
Код:
HotKeySet("{Esc}", "_Exit")
 
Автор
Fazatron

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
да, действительно из за esc скореее всего закрывался скипт, спс помогло)
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Fazatron
Скрипт с иконкой в трее, что бы можно было завершить выполнение скрипта
Код:
#Include <File.au3>
#NoTrayIcon
Opt("TrayMenuMode", 1)

Global $sPSIni = @ScriptDir & "\PrintingStatus.ini"
Global $sLogFile = @ScriptDir & "\Printing.log"

Local $cTrayMenuExit = TrayCreateItem("Exit")

TraySetState()

While 1
	Switch TrayGetMsg()
		Case $cTrayMenuExit
			_Exit()
	EndSwitch

	$iIfYMove = IniRead($sPSIni, "PrintingStatus", "bIfYMove", 0)
	If $iIfYMove = 0 Then _PrintingStart()
WEnd

Func _PrintingStart()
	Local $sLogStr = ""

	$sStartDateTime = StringFormat("%02d.%02d.%04d %02d:%02d:%02d", @MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC)
	$iTimerInit = TimerInit()

	$sPFile = IniRead($sPSIni, "PrintingStatus", "csPrintingFile", "") ; имя файла
	$iPass = IniRead($sPSIni, "PrintingStatus", "uiPass", "") ; качество

	$sLogStr = _LogWrite_Start($sStartDateTime, $sPFile, $iPass)

	While 1
		Sleep(500)
		$ibIfYMove = IniRead($sPSIni, "PrintingStatus", "bIfYMove", 0)
		If $ibIfYMove = 2 Then ExitLoop
		Sleep(500)
	WEnd

	$sPTime = _PrintingTime(TimerDiff($iTimerInit)) ; затраченное время
	$iPStop = IniRead($sPSIni, "PrintingStatus", "bPrintStop", 0) ; статус
	$iSSCurrent = IniRead($sPSIni, "PrintingStatus", "uiStepSendCurrent", 0) ; прогресс
	$iSSCount = IniRead($sPSIni, "PrintingStatus", "uiStepSendCount", 0) ; прогресс

	_LogWrite_End($sLogStr, $sPTime, $iPStop, $iSSCurrent, $iSSCount)
EndFunc

Func _PrintingTime($_iTicks)
	Local $iHours, $iMins, $iSecs

	$iTicks = Int($_iTicks / 1000)
	$iHours = Int($iTicks / 3600)
	$iTicks = Mod($iTicks, 3600)
	$iMins = Int($iTicks / 60)
	$iSecs = Mod($iTicks, 60)

	Return StringFormat("%02d:%02d:%02d", $iHours, $iMins, $iSecs)
EndFunc

Func _LogWrite_Start($_sStartDateTime, $_sPFile, $_iPass)
	Local $aPass[8] = ["1 Pass", "2 Pass", "3 Pass", "4 Pass", "6 Pass", "8 Pass", "12 Pass", "16 Pass"]

	$sLogStr = $_sStartDateTime & " " & $_sPFile & " (" & $aPass[$_iPass]

	FileWriteLine($sLogFile, $sLogStr & ") Process!")

	Return $sLogStr
EndFunc

Func _LogWrite_End($_sLogStr, $_sPTime, $_iPStop, $_iSSCurrent, $_iSSCount)
	$_sLogStr &= ", " & $_sPTime & ") "

	If $_iPStop = 0 Then $_sLogStr &= "OK!"
	If $_iPStop = 1 Then $_sLogStr &= "Stoped! (" & $_iSSCurrent & "/" & $_iSSCount & ")"

	_FileWriteToLine($sLogFile, _FileCountLines($sLogFile), $_sLogStr, 1)
EndFunc

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
Fazatron

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
он и так в трее болтается, я его по правой кнопке мыши всегда закрываю. ну всё равно попробую этот вариант, или он чем то отличается?
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Fazatron
У него меню при нажатии правой кнопкой отличается от стандартного
 
Автор
Fazatron

Fazatron

veni...vidi...vici...
Сообщения
18
Репутация
0
странно тока галочка ставитца, как выйти то?

 
Верх