timsky
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ViSiToR Спасибо большое У меня эта ф-я глючила после того, как я по скрипту проходился своим "дебагером". Тот самый, который предназначен для отлова ошибок в откомпиленых скриптах... который в TraySetToolTip пишет номер строки, которая начала исполняться. Я и не наделся на столь скорый ответ, поэтому доработал его. Теперь можно выделить кусок кода, который не нужно "ТулТипить" специально для подобных случаев строками ;NO DEBUG START и ;NO DEBUG END: Код: #include <Constants.au3> AutoItSetOption('TrayAutoPause', 0) AutoItSetOption('TrayOnEventMode', 1) AutoItSetOption('TrayIconDebug', 1) TrayItemSetText($TRAY_ITEM_PAUSE, 'Pause') TrayItemSetText($TRAY_ITEM_EXIT, 'Exit') If $CmdLineRaw = '' Then $file = FileOpenDialog('Select file to write debug info', @WorkingDir & '\', 'AutoIt script (*.au3)', 1) If @error Then MsgBox(16, 'No file chosen...', 'Program will now close.') Exit EndIf Else $file = StringReplace($CmdLineRaw, '"', '') EndIf $read = FileOpen($file, 0) $name = StringReplace($file, '.au3', '') & '-Debug.au3' If FileExists($name) Then FileDelete($name) $new = FileOpen($name, 1) ;$line = '' $i = 1 While 1 $line = FileReadLine($read, $i) If @error = -1 Then ExitLoop If StringInStr($line, ';NO DEBUG START') Then FileWriteLine($new, 'TraySetToolTip("Line: ' & $i & '")') FileWriteLine($new, $line) $i = $i + 1 While 1 $line = FileReadLine($read, $i) If StringInStr($line, ';NO DEBUG END') Then FileWriteLine($new, 'TraySetToolTip("Line: ' & $i & '")') FileWriteLine($new, $line) $i = $i + 1 ExitLoop EndIf FileWriteLine($new, $line) $i = $i + 1 WEnd EndIf If Not StringInStr($line, ';NO DEBUG END') Then FileWriteLine($new, 'TraySetToolTip("Line: ' & $i & '")') FileWriteLine($new, $line) $i = $i + 1 EndIf WEnd FileClose($read) FileClose($new) | Может его в шапочку? Незаменимая вещь при отлове ошибок скомпиленых скриптов |