ViSiToR
Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Tipulatoid 11:30 01-11-2008 Цитата: Лучше всего, конечно, привести пример кода, который бы, к примеру копировал большой файл; перед началом копирования выводил бы в лог надпись типа | В примере нет копирования, только простая имитация (в виде паузы ), но всё что касается вывода лога + цветные предупреждения, есть. Используется объект RICHTEXT.RichtextCtrl (если не работает, нужно скачать и зарегистрировать компонент ActiveX отсюда): Код: #include <GUIConstants.au3> #include <WindowsConstants.au3> #include <EditConstants.au3> ; $oCOM_Error = ObjEvent("AutoIt.Error", "MyErrFunc") $oRichText = ObjCreate("RICHTEXT.RichtextCtrl.1") ;$oRichText.BackColor = 0x0CC0C0 $hGUI = GUICreate("GUI Log Demo", 320, 200, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_CLIPSIBLINGS)) $GUIActiveX = GUICtrlCreateObj($oRichText, 10, 10, 400, 260) GUICtrlSetPos($GUIActiveX, 10, 10, 300, 160) GUISetState() $hRichEdit = ControlGetHandle($hGUI, "", "RichTextWndClass1") DllCall("user32.dll", "long", "SendMessage", "hwnd", $hRichEdit, "int", $EM_SETREADONLY, "int", True, "int", 0) Copy_Process() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func Copy_Process() _Write_GUI_Log("Копирую Dreamers.avi... ", 1, 0x666666) Sleep(2000) _Write_GUI_Log("Успешно!" & @CRLF & @CRLF, 1, 0x008000, True) Sleep(1500) _Write_GUI_Log("Архивирую Dreamers.avi... ", 1, 0x666666) Sleep(2000) _Write_GUI_Log("Ошибка!" & @CRLF & @CRLF, 1, 0x0000FF, True) Sleep(3000) For $i = 5 To 1 Step -1 _Write_GUI_Log("Завершение работы через... ", 0) _Write_GUI_Log($i, 1, 0x0000FF, True) Sleep(1000) Next Exit EndFunc Func _Write_GUI_Log($sData, $iAppend=True, $iColor=0, $iBold=False, $iItalic=False, $iUnderline=False, $iFontSize=8) Local $sCurrent_Data = $oRichText.Text Local $iSelStart = StringLen($sCurrent_Data) Local $iSelLength = StringLen($sData) With $oRichText .SelStart = $iSelStart .SelLength = 0 If $iAppend Then .SelText = $sData Else .Text = $sData EndIf .SelStart = $iSelStart .SelLength = $iSelLength .SelFontSize = $iFontSize .SelColor = $iColor .SelBold = $iBold .SelItalic = $iItalic .SelUnderline = $iUnderline .SelStart = $iSelStart + $iSelLength EndWith EndFunc Func MyErrFunc() Msgbox(16, "AutoItCOM Error", _ "We intercepted a COM Error !" & @CRLF & @CRLF & _ "err.description is: " & @TAB & $oCOM_Error.Description & @CRLF & _ "err.windescription:" & @TAB & $oCOM_Error.WinDescription & @CRLF & _ "err.number is: " & @TAB & Hex($oCOM_Error.Number,8) & @CRLF & _ "err.lastdllerror is: " & @TAB & $oCOM_Error.LastDllError & @CRLF & _ "err.scriptline is: " & @TAB & $oCOM_Error.ScriptLine & @CRLF & _ "err.source is: " & @TAB & $oCOM_Error.Source & @CRLF & _ "err.helpfile is: " & @TAB & $oCOM_Error.HelpFile & @CRLF & _ "err.helpcontext is: " & @TAB & $oCOM_Error.HelpContext, 5) ;Will automatically continue after 5 seconds Local $iErr = $oCOM_Error.Number If $iErr = 0 Then $iErr = -1 SetError($iErr) ; to check for after this function returns Endfunc |
---------- ViSiToR a.k.a CreatoR CreatoR это не ник, CreatoR это стиль жизни! |
| Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 15:43 01-11-2008 | Исправлено: ViSiToR, 22:20 01-11-2008 |
|