- Сообщения
- 3,556
- Репутация
- 628
AutoIt: 3.3.6.1
Версия: 1.0
Категория: Автоматизация
Описание: Автоматическое управление программой для прошивки чипов картриджей для лазерных принтеров. Программа изменяет бинарный код файла прошивки (crum или серийный номер, в зависимости от вида файла) и управляет программой прошивальщиком, отслеживая отчеты этой программы.Сама программа - прошивальщик находится здесь http://lapatushka.com/ Полное название программы - Программатор чипов XC01/Xerox90/Xerox01
Далее предоставлен законченный кода ( на данный момент) программы управления. файлы реестра, это для того, чтобы программа-прошивальщик открывала путь к файлу прошивки в той папке , где они реально находятся. один раз открываем в программе прошивальщике эту папку и копируем из ресстра системы путь. в моем случае это две папки с прошивками. в одной для цветных, в другой для чернобелых . нужно экспортировать путь в реестре -
там двоичные данные , которые и указывают на последний путь открытия. программа автоматически добавляет нужный путь и программа-прошивальщик не ошибается с папкой открытия файлов.
Возможно кому-нибудь будет полезно, тем кто занимается заправкой картриджей и прошивкой чипов.
Мне часто приходится прошивать чипы , а вручную это монотонно и дольше.
Код/Пример:
Источник: autoit-script.ru
Автор(ы): Александр
Версия: 1.0
Категория: Автоматизация
Описание: Автоматическое управление программой для прошивки чипов картриджей для лазерных принтеров. Программа изменяет бинарный код файла прошивки (crum или серийный номер, в зависимости от вида файла) и управляет программой прошивальщиком, отслеживая отчеты этой программы.Сама программа - прошивальщик находится здесь http://lapatushka.com/ Полное название программы - Программатор чипов XC01/Xerox90/Xerox01
Далее предоставлен законченный кода ( на данный момент) программы управления. файлы реестра, это для того, чтобы программа-прошивальщик открывала путь к файлу прошивки в той папке , где они реально находятся. один раз открываем в программе прошивальщике эту папку и копируем из ресстра системы путь. в моем случае это две папки с прошивками. в одной для цветных, в другой для чернобелых . нужно экспортировать путь в реестре -
Код:
[HKEY_USERS\S-1-5-21-1454471165-746137067-1343024091-1003\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU]
Возможно кому-нибудь будет полезно, тем кто занимается заправкой картриджей и прошивкой чипов.
Мне часто приходится прошивать чипы , а вручную это монотонно и дольше.
Код/Пример:
Код:
#NoTrayIcon
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <Array.au3>
#include <process.au3>
_RunDOS('regedit /s "black.reg"')
$FileList = _FileListToArray(@ScriptDir & '\программатор_xerox90\', '*.bin')
$Lines = _ArrayToString($FileList, '|', 1)
$Form1 = GUICreate("Программатор", 275, 90, 483, 253)
$Combo1 = GUICtrlCreateCombo("", 8, 26, 145, 25)
GUICtrlSetData($Combo1, $Lines)
$Button1 = GUICtrlCreateButton("Старт", 176, 24, 75, 25)
$Button2 = GUICtrlCreateButton("Ручной режим", 176, 55, 80, 25)
$checkbox = GUICtrlCreateCheckbox("цветные", 10, 5, 120, 20)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_win_exist()
If GUICtrlRead($Combo1) = '' Then
MsgBox(0, '', 'Не выбран файл')
Else
_programming()
EndIf
Case $Button2
_win_exist()
Run('программатор.exe')
Case $checkbox
If GUICtrlRead($checkbox) = $GUI_CHECKED Then
_RunDOS('regedit /s "color.reg"')
GUICtrlSetData($Combo1, '')
$FileList = _FileListToArray(@ScriptDir & '\color\', '*.bin')
$Lines = _ArrayToString($FileList, '|', 1)
GUICtrlSetData($Combo1, $Lines)
ElseIf GUICtrlRead($checkbox) = $GUI_UNCHECKED Then
_RunDOS('regedit /s "black.reg"')
GUICtrlSetData($Combo1, '')
$FileList = _FileListToArray(@ScriptDir & '\программатор_xerox90\', '*.bin')
$Lines = _ArrayToString($FileList, '|', 1)
GUICtrlSetData($Combo1, $Lines)
EndIf
EndSwitch
WEnd
Func _rewrite_color()
_RunDOS('regedit /s "color.reg"')
$bin_color = FileOpen(@ScriptDir & '\color\' & GUICtrlRead($Combo1), 16)
$read_bc = FileRead($bin_color)
FileClose($bin_color)
$result = StringReplace($read_bc, 495, @MIN & @SEC, 1)
$write_color = FileOpen(@ScriptDir & '\color\' & GUICtrlRead($Combo1), 2 + 16)
FileWrite($write_color, $result)
FileClose($write_color)
EndFunc ;==>_rewrite_color
Func _rewrite()
_RunDOS('regedit /s "black.reg"')
$bin = FileOpen(@ScriptDir & '\программатор_xerox90\' & GUICtrlRead($Combo1), 16)
$read = FileRead($bin)
FileClose($bin)
$result1 = StringReplace($read, 110, StringLeft(@HOUR, 1))
$result2 = StringReplace($result1, 112, StringRight(@HOUR, 1))
$result3 = StringReplace($result2, 114, StringLeft(@MIN, 1))
$result4 = StringReplace($result3, 116, StringRight(@MIN, 1))
$result5 = StringReplace($result4, 118, StringLeft(@SEC, 1))
$result6 = StringReplace($result5, 120, StringRight(@SEC, 1))
$result7 = StringReplace($result6, 122, StringLeft(@MDAY, 1))
$result8 = StringReplace($result7, 124, StringRight(@MDAY, 1))
$result9 = StringReplace($result8, 126, StringLeft(@MON, 1))
$result_over = StringReplace($result9, 128, StringRight(@MON, 1))
$write = FileOpen(@ScriptDir & '\программатор_xerox90\' & GUICtrlRead($Combo1), 2 + 16)
FileWrite($write, $result_over)
FileClose($write)
EndFunc ;==>_rewrite
Func _programming()
_win_exist()
Run('программатор.exe')
WinWaitActive('[Class:THEForm]')
WinActivate('[Class:THEForm]')
Send('!{F5}')
WinWaitActive('[Class:TYesNoForm]')
WinActivate('[Class:TYesNoForm]')
ControlClick('[Class:TYesNoForm]', '', 'TButton2')
While 1
$text = WinGetText('[Class:THEForm]')
$chip = StringRegExp($text, 'Чип Xerox90 жив')
If $chip = 1 Then
If GUICtrlRead($checkbox) = $GUI_CHECKED Then
_rewrite_color()
Else
_rewrite()
EndIf
Send('{F3}')
WinWaitActive('Открыть')
WinActivate('Открыть')
ControlSend('Открыть', '', 'Edit1', GUICtrlRead($Combo1))
ControlClick('Открыть', '', 'Button2')
Send('!{F2}')
WinWaitActive('[Class:TYesNoForm]')
WinActivate('[Class:TYesNoForm]')
ControlClick('[Class:TYesNoForm]', '', 'TButton2')
While 1
While 1
$text_error = WinGetText('[Class:THEForm]')
$chip_error = StringRegExp($text_error, 'Ошибка чтения...')
If $chip_error = 0 Then
ExitLoop
Else
Return MsgBox(0, '', 'Проблема с чипом или программатором') And WinClose('[Class:THEForm]')
EndIf
Sleep(500)
WEnd
$text1 = WinGetText('[Class:THEForm]')
$chip1 = StringRegExp($text1, 'Конец чтения...')
If $chip1 = 1 Then
WinClose('[Class:THEForm]')
EndIf
ExitLoop
Sleep(500)
WEnd
Else
Return MsgBox(0, '', 'Проблема с чипом или программатором') And WinClose('[Class:THEForm]')
EndIf
ExitLoop
Sleep(500)
WEnd
EndFunc ;==>_programming
Func _win_exist()
If WinExists('[Class:THEForm]') Then
WinClose('[Class:THEForm]')
EndIf
EndFunc ;==>_win_exist
Источник: autoit-script.ru
Автор(ы): Александр