Недавние сообщения

Страницы: 1 [2] 3 4 ... 10
11
Общие вопросы по AutoIt / Re: eset удаляет готовый exe файл
« Последний ответ от hedji Отправлен Август 14, 2018, 10:01:24 »
В том то и проблемма, Zabbix не может отсл :)едить по питанию или по связи недоступность была

OffTopicПо питанию после восстановления сработает триггер "<hostname> just been restarted"
+ мониторинг логов
+ в UserParameters дополнительных проверок накидать
12
Общие вопросы по AutoIt / Re: eset удаляет готовый exe файл
« Последний ответ от Yriy_07 Отправлен Август 14, 2018, 09:42:19 »
В том то и проблемма, Zabbix не может отсл :)едить по питанию или по связи недоступность была
13
Общие вопросы по AutoIt / Как посчитать однокоренные слова, на страницах сайта?
« Последний ответ от Anna Отправлен Август 14, 2018, 09:36:03 »
Здравствуйте.
Хочу узнать сколько раз на страницах сайта, встречаются слова с корнем - дом, домовой...
Слово необязательно должно быть корнем.
Например, на сайте https://www.forexfactory.com/ посчитать сколько раз встречаются слова содержащие "divergence" если больше чем N раз то сохранить их в файл, каждое с новой строки. Можно сразу сохранять в файл, потом посчитаю.
Сохранить нужно все слова - "divergence", "divergence_rsi" или "macd-divergence", в общем всё что не отделено пробелом от "divergence".
Как действовать?
14
Общие вопросы по AutoIt / Re: eset удаляет готовый exe файл
« Последний ответ от joiner Отправлен Август 14, 2018, 09:16:42 »
Yriy_07
пиши в техподдержку антивиря. это лучший вариант, хотя и не быстрый
15
Общие вопросы по AutoIt / Re: eset удаляет готовый exe файл
« Последний ответ от hedji Отправлен Август 14, 2018, 09:05:15 »
Почитайте тут и здесь

Варианты:
- переписать на VB, PowerShell
- попробовать переписать код так, чтобы не ругался антивир
- проверить на лень админов добавили ли или просто тикет закрыли
- подключить сервер к нормальной системе мониторинга, например Zabbix
16
Общие вопросы по AutoIt / eset удаляет готовый exe файл
« Последний ответ от Yriy_07 Отправлен Август 14, 2018, 08:32:48 »
Здравствуйте уважаемые гуру и стать ими стремящиеся! Прошу подсказать решение. Я написал скрипт-агент, Который устанавливается на серверах и отслеживает когда сервер упал по питанию а когда по связи. Но дело в том, что на серверах установлен eset. Я компилирую в х86 запускаю с целью оттестировать он крутится час два иногда даже до полуночи но в какойто момент eset уго убивает. Просил админов добавить в исключение данный файл, они добовляли но проблема остается. Антивирус режет процесс. Как быть?
17
Общие вопросы по AutoIt / Как работать с CorelDraw
« Последний ответ от sasha-ld Отправлен Август 13, 2018, 22:14:17 »
Здравствуйте!
Подскажите пожалуйста как можно работать с CorelDraw через autoit, что бы можно было написать макросы.
18
Общие вопросы по AutoIt / Re: Вертикальная полоса прокрутки
« Последний ответ от rybik Отправлен Август 13, 2018, 20:08:22 »
WM_GETMINMAXINFO
Устанавливаешь ограничение по ширине

благодарю
19
Общие вопросы по AutoIt / Re: Вертикальная полоса прокрутки
« Последний ответ от joiner Отправлен Август 13, 2018, 16:25:10 »
WM_GETMINMAXINFO
Устанавливаешь ограничение по ширине
20
Общие вопросы по AutoIt / Re: Создание вложенного меню по данным из ini-файла
« Последний ответ от Vanguger Отправлен Август 13, 2018, 14:52:27 »
Оставлю, чтобы было :)
Мне больше по душе собирать меню из структуры, где вложенность создаётся посредством табов в текстовом файле:

menu.txt - при создании текстового файла, все <TAB> заменить на реальные табуляторы. Будет красивее
#********************************************************
 Конфигурационный Файл меню
#********************************************************

Файл
<TAB>Открыть|open ;можно определить ключ для обработки клика, но можно и без него
<TAB>Сохранить|param1=Test params ;если необходимы параметры
<TAB>Сохранить как
Редактировать
<TAB>Копировать
<TAB>Вставить
- ; это разделитель
Настройки
<TAB>Интерфейс
<TAB><TAB>Скин
<TAB><TAB>Размеры
<TAB><TAB>Цвет
<TAB><TAB>-
<TAB><TAB>Дополнительно...
<TAB>Общие
-
Выход

Example.au3
Код: AutoIt [Выделить]
GUICreate('MyGUI', 400, 400)

$Menu = GUICtrlCreateContextMenu()

Global $itemID[$Menu + 1]

CreateMenu(@ScriptDir & '\menu.txt', $Menu)

GUISetState()

;**********************************************************************
; ОБРАБОТКА КЛИКА
;**********************************************************************
While 1
    Local $Msg = GUIGetMsg()
    Switch $Msg
        Case 0
            ContinueLoop
        Case Else
            If $Msg > $Menu And $Msg < UBound($itemID) Then
                $params = $itemID[$Msg][1]
                $sName = _getParam($params, 'name')

                If _getParam($params, 'open') Then ConsoleWrite('Получен клик по ключу open. ') ; обрабатываем пункт по ключу

                If $sName = 'Сохранить' Then
                    ConsoleWrite('Получен клик по имени «' & $sName & '». Параметр пункта param1=' & _getParam($params, 'param1') & @CRLF) ; обрабатываем пункт по названию
                Else ; для примера, показываем любой кликнутый пункт
                    If $sName Then ConsoleWrite('Кликнут пункт «' & $sName & '»' & @CRLF) ;
                EndIf

                If _getParam($params, 'Выход') Then Exit

            EndIf

    EndSwitch
WEnd


;**********************************************************************
; ФУНКЦИЯ ДОБАВЛЕНИЯ КОНТЕКСТНОГО МЕНЮ
;**********************************************************************
Func CreateMenu($source, $tb = -1)
    Local $aLines[0], $parsLine, $prevTabs, $nextTabs, $sLine, $sName, $LV[] = [$tb]
    If FileExists($source) Then
        Local $hFileOpen = FileOpen($source, 0)
        If $hFileOpen = -1 Then
            MsgBox(4096, 'Ошибка', 'Ошибка чтения конфигурационного файла меню [' & $source & ']')
            Return SetError(1, 0, 0)
        EndIf
        $source = FileRead($hFileOpen)
        FileClose($hFileOpen)
    EndIf
    $source = StringRegExpReplace($source, '(.*?)\s*(;.*)', '$1')  ; удаляет однострочный комментарий после точки с запятой
    $source = StringRegExpReplace($source, '#\d*\D*#.*', '')         ; удаляет блок многострочного комментария #...#...
    $source = StringRegExpReplace($source, '^\s*\r|^\s*\r?\n', '') ; удаляет первую пустую строку
    $source = StringRegExpReplace($source, '\s*\r|\s*\r?\n', @LF)  ; удаляет пустые строки
    $aLines = StringSplit($source, @LF)
    For $i = 1 To $aLines[0] ;проходим по всем строкам $aLines[$i] - необработанная строка с табами
        $parsLine = StringSplit($aLines[$i], @TAB)
        $sLine = $parsLine[$parsLine[0]]
        If Not $sLine Then ContinueLoop
        $prevTabs = $parsLine[0] - 1 ; получаем количество табов в строке

        ; проверяем сколько табов имеет следующий пункт меню
        If UBound($aLines) > $i + 1 Then
            For $tt = $i + 1 To UBound($aLines) - 1; идём дальше
                $nextLine = StringStripWS($aLines[$tt], 2)
                $nextTabs = StringSplit($nextLine, @TAB)[0] - 1
                If $nextLine Or $nextTabs Then ExitLoop ; выходим из поиска следующей строки, если она не пустая или имеет табы
            Next
        Else
            $nextTabs = $prevTabs
        EndIf
        ;

        If $sLine = '-' Then ; если разделитель
            _ArrAdd($itemID, GUICtrlCreateMenuItem('', $LV[$prevTabs])) ; ставим разделитель и записываем его ID
        Else ; если пункт не разделитель
            $sName = _getParam($sLine, 'name') ; получаем имя из строки
            ;ПАПКА
            If $nextTabs > $prevTabs Then ; ПАПКА МЕНЮ (проверка, если следующий является вложенным)
                _ArrAdd($itemID, GUICtrlCreateMenu($sName, $LV[$prevTabs]), $sLine)
                If $nextTabs >= UBound($LV) Then ReDim $LV[$nextTabs + 1]
                $LV[$nextTabs] = $itemID[UBound($itemID) - 1][0]
            EndIf
            ;ПУНКТ
            If $nextTabs <= $prevTabs Then
                _ArrAdd($itemID, GUICtrlCreateMenuItem($sName, $LV[$prevTabs]), $sLine) ;добавляем пункт меню
            EndIf
        EndIf
    Next
EndFunc   ;==>CreateMenu

Func _getParam($sParams, $sGet = 'name')
    Local $aKey
    $aKey = StringRegExp($sParams, '(?:^|\|)\s*(?i:' & $sGet & ')\s*=\s*([^\|]*?)\s*(?:\||\z)', 1) ; извлекает значение параметра
    If IsArray($aKey) And $aKey[0] Then Return $aKey[0]
    If $sGet = 'name' Then $aKey = StringRegExp($sParams, '(?:^|\|)\s*([^|\s][^=]*?)\s*(?:\||\z)', 1) ; извлекает имя
    If IsArray($aKey) And $aKey[0] Then Return $aKey[0]
    $aKey = StringRegExp($sParams, '(?:^|\|)\s*(' & $sGet & ')\s*(?:\||\z)', 0) ; определяет присутствие одиночного ключа
    If $aKey Then Return 1
    Return 0
EndFunc   ;==>_getParam

Func _ArrAdd(ByRef $aArray, $vVal1, $vVal2 = '')
    ReDim $aArray[UBound($aArray) + 1][2]
    $aArray[UBound($aArray) - 1][0] = $vVal1
    $aArray[UBound($aArray) - 1][1] = $vVal2
EndFunc   ;==>_ArrAdd

 


Это выручает, когда у меня в приложении несколько десятков пунктов с настройками и параметрами, или если в меню подгружается большой список файлов.
Страницы: 1 [2] 3 4 ... 10