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

Страницы: [1] 2 3 ... 10
1
Вот в этом сообщении оно есть :)
Слово необязательно должно начинаться на "Divergence". Возможные варианты: "WPR_Divergence.mq4", "[email protected]#$%^&*()_" "RSI_Divergence_v2".
2
... должно быть ещё словечко "[email protected]#$%^&*()_" после WPR_Divergence.mq4
Это по ссылке из первого поста? У меня такого нет.
3
Alofa
Вероятно я не правильно выразилась.
скрипт находит и пишет в файл всё как мне нужно
"Divergence".
"WPR_Divergence.mq4",
"RSI_Divergence_v2"
"divergence"
должно быть ещё словечко "[email protected]#$%^&*()_" после WPR_Divergence.mq4
4
Код: AutoIt [Выделить]
#include <IE.au3>
#include <Array.au3>

$oIE = _IECreate('http://autoit-script.ru/index.php?topic=26002.0', 0, 0)
$sText = _IEBodyReadText($oIE) ; Читает содержимое HTML, без тегов.
_IEQuit($oIE)

$sWord = 'divergence'
$aFind = StringRegExp($sText, '(?i)' & $sWord, 3) ;ищем слова
_ArrayDisplay($aFind)

5
InnI, Спасибо.
Не считает если есть спец. символы,
не видит "[email protected]#$%^&*()_" или "[email protected]#$%^&*()_Divergence"
Как сделать чтобы считал все?
Код: AutoIt [Выделить]
$word = "divergence"
$str = InetRead("http://autoit-script.ru/index.php?topic=26002.msg145122#msg145122") ;
$find = StringRegExp(BinaryToString($str, 4), "(?i)\S*" & $word & "\S*", 3) ;ищем слова
If IsArray($find) And UBound($find) >= 1 Then ;
    For $i in $find
        FileWriteLine(@ScriptDir & "\foundedwords1.txt", $i) ;записываем слова в файл foundedwords.txt
    Next
EndIf
 

6
Доброго всем времени суток, коллеги!
Имеется окно 1с с неким списком заданий. Запустить и заставить AutoIt добраться до этого окна получилось. Теперь вопрос: Как получить данные из этого окна (номер заявки, ФИО и наименование в частности) и передать в массив для дальнейшей обработки. Зачем? 1С на умеет автоматически обновляться! По тому нужно раз 20-30 минуть жамкать кнопку обновления и выискивать нужные мне заявки.
Иначе можно просто пропустить заявку.
Текста в frozen не видно.
Может есть какая возможность перехватывать приходящие данные.
В потрахах 1с не лазил ни разу.
Картинку окнон прикладываю для наглядносьти
7
Код: AutoIt [Выделить]
$word = "pai"
$find = StringRegExp(BinaryToString($str, 4), "(?i)\S*" & $word & "\S*", 3) ;ищем слова

8
Собираю сторонним софтом ссылки в файл. Из скрипта читаю и перехожу по ним.
Но как сделать чтобы сохранялись слова перед которыми есть символы например ищу "pai" находит "pairs",
"pair.." нужно чтобы находил ещё и "multipair". Как это сделать?
Код: AutoIt [Выделить]
#include <File.au3>
$oFile = FileOpen("lin.txt")
While 1
    $oURL = FileReadLine($oFile)
    If @error Then ExitLoop
$str = InetRead($oURL) ;читаем страницу https://www.forexfactory.com/showthread.php?t=526638
$find = StringRegExp(BinaryToString($str, 4), "(pai[^\h]*)\h", 3) ;ищем слова
If IsArray($find) And UBound($find) >= 3 Then ;если найдено 3 и более слов
    For $i in $find
        FileWriteLine(@ScriptDir & "\foundedwords1.txt", $i) ;записываем слова в файл foundedwords.txt
    Next
EndIf
Sleep(1000)
WEnd
FileClose($hFile)

9
Общие вопросы по AutoIt / Re: Контекстное меню для пунктов меню трея
« Последний ответ от Vanguger Отправлен Вчера в 05:16:31 »
Как вариант

Благодарю InnI! Внимательно изучу этот вариант. Я то уже начал подумывать в сторону имитации контекстного меню, с нужным функционалом, без блокировки. Тоже уже набросал немного сырой, но работающий. С костылями, ну блин :stars:, хоть как-то уже, для себя пойдёт.

Код: AutoIt [Выделить]
#include <MouseOnEvent.au3>
#include <GuiMenu.au3>
Opt('TrayMenuMode', 3)

$m1 = TrayCreateMenu("M1")
$m1i1 = TrayCreateItem('M1I1', $m1)
$m1i2 = TrayCreateItem('M1I2', $m1)
$m1i3 = TrayCreateItem('M1I3', $m1)
$m2 = TrayCreateMenu("M2")
$m2i1 = TrayCreateItem('M2I1', $m2)
$m2i2 = TrayCreateItem('M2I2', $m2)
$m2i3 = TrayCreateItem('M2I3', $m2)
$i1 = TrayCreateItem('I1')
$i2 = TrayCreateItem('I2')
TrayCreateItem('')
$Exit = TrayCreateItem('Exit')

TraySetState()

$hMenu = TrayItemGetHandle(0)

_MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT, "__ClickMouseR")

While 1
  Switch TrayGetMsg()
        Case $Exit
            Exit
    EndSwitch
    Sleep(10)
WEnd

Func __ClickMouseR()

Local $sPMLine = "" & @CRLF
    $sPMLine &= "#include <WindowsConstants.au3>" & @CRLF
    $sPMLine &= "#include <GuiMenu.au3>" & @CRLF
    $sPMLine &= "Local $hDlg, $cDummy, $nContextMenu, $hContextMenu, $nHide_MItem, $nExit_MItem, $hTimer, $aMousePos, $nResult" & @CRLF
    $sPMLine &= "$hDlg = GUICreate('', 1, 1, 0, 0, $WS_POPUP, $WS_EX_TOOLWINDOW)" & @CRLF
    $sPMLine &= "$cDummy = GUICtrlCreateDummy()" & @CRLF
    $sPMLine &= "$nContextMenu = GUICtrlCreateContextMenu($cDummy)" & @CRLF
    $sPMLine &= "$hContextMenu = GUICtrlGetHandle($nContextMenu)" & @CRLF
    $sPMLine &= "$nHide_MItem = GUICtrlCreateMenuItem('Пункт1', $nContextMenu)" & @CRLF
    $sPMLine &= "$nShowMsg_MItem = GUICtrlCreateMenuItem('Пункт2', $nContextMenu)" & @CRLF
    $sPMLine &= "GUISetState(@SW_SHOW, $hDlg)" & @CRLF
    $sPMLine &= "$aMousePos = MouseGetPos()" & @CRLF
    $sPMLine &= "$nResult = _GUICtrlMenu_TrackPopupMenu($hContextMenu, $hDlg, $aMousePos[0]-50, $aMousePos[1]-10, 1, 1, 2)" & @CRLF
    $sPMLine &= "Switch $nResult" & @CRLF
    $sPMLine &= "   Case $nShowMsg_MItem" & @CRLF
    $sPMLine &= "       MsgBox(64, 'Заголовок', 'Сообщение')" & @CRLF
    $sPMLine &= "EndSwitch" & @CRLF
    $sPMLine &= "GUIDelete($hDlg)" & @CRLF
    $sPMLine &= "FileDelete(@ScriptFullPath)" & @CRLF
    $sPMLine &= "Exit" & @CRLF

    Local $hFile = FileOpen(@ScriptDir & '\consoleMenu.tmp', 2)
    FileWrite($hFile, $sPMLine)
    FileClose($hFile)

    Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @ScriptDir & '\consoleMenu.tmp"')

EndFunc   ;==>_ShowPopupMenu_Proc
 



Добавлено: Вчера в 07:41:44
В общем, всё у меня получилось. Так как список приложений для меню у меня отдаёт модуль(отдельный скрипт) и он же обрабатывает клики, то ему я и поручил создавать дополнительное контекстное меню. Ядро в этом случае просто говорит модулю, что клик правой кнопкой и отдаёт ему параметры клика. Получилось так как нужно и даже менюха не закрывается  :ok:

Нажмите для отображения изображения в оригинальном размере.

InnI, спасибо за подсказки!
10
Общие вопросы по AutoIt / Re: Контекстное меню для пунктов меню трея
« Последний ответ от InnI Отправлен Вчера в 02:50:08 »
Как вариант
Код: AutoIt [Выделить]
#include <WindowsConstants.au3>
#include <TrayConstants.au3>
#include <SendMessage.au3>
#include <WinAPISys.au3>
#include <GuiMenu.au3>
#include <Timers.au3>
#include <Misc.au3>

Opt("TrayMenuMode", 3)
Opt("WinWaitDelay", 11)

$MainItemName = ""
$ShowPopup = False

$GUI = GUICreate("", 0, 0, 0, 0, $WS_POPUP, $WS_EX_TOOLWINDOW)
GUISetState()

$MainDummy = GUICtrlCreateDummy()
$MainPopup = GUICtrlCreateContextMenu($MainDummy)
$M1 = GUICtrlCreateMenu("M1", $MainPopup)
$M11 = GUICtrlCreateMenuItem("M11", $M1)
$M12 = GUICtrlCreateMenuItem("M12", $M1)
$M2 = GUICtrlCreateMenu("M2", $MainPopup)
$M21 = GUICtrlCreateMenuItem("M21", $M2)
$M22 = GUICtrlCreateMenuItem("M22", $M2)
$M3 = GUICtrlCreateMenuItem("M3", $MainPopup)
$M4 = GUICtrlCreateMenuItem("M4", $MainPopup)

$cDummy = GUICtrlCreateDummy()
$nContextMenu = GUICtrlCreateContextMenu($cDummy)
$nHide_MItem = GUICtrlCreateMenuItem("Пункт1", $nContextMenu)
$nShowMsg_MItem = GUICtrlCreateMenuItem("Пункт2", $nContextMenu)
GUICtrlCreateMenuItem("", $nContextMenu)
$nExit_MItem = GUICtrlCreateMenuItem("Выход", $nContextMenu)

While 1
  Switch TrayGetMsg()
    Case $TRAY_EVENT_SECONDARYUP
      $Timer = _Timer_SetTimer($GUI, 33, "Timer")
      _GUICtrlMenu_TrackPopupMenu(GUICtrlGetHandle($MainPopup), $GUI)
  EndSwitch
  Switch GUIGetMsg()
    Case $M11
      MsgBox(0, "", "Выбран пункт M11")
    Case $M12
      MsgBox(0, "", "Выбран пункт M12")
    Case $M21
      MsgBox(0, "", "Выбран пункт M21")
    Case $M22
      MsgBox(0, "", "Выбран пункт M22")
    Case $M3
      MsgBox(0, "", "Выбран пункт M3")
    Case $M4
      MsgBox(0, "", "Выбран пункт M4")
    Case $nHide_MItem
      MsgBox(0, "", "Пункт1 вызван для " & $MainItemName)
    Case $nShowMsg_MItem
      MsgBox(0, "", "Пункт2 вызван для " & $MainItemName)
    Case $nExit_MItem
      Exit
  EndSwitch
  If $ShowPopup Then
    $ShowPopup = False
    _GUICtrlMenu_TrackPopupMenu(GUICtrlGetHandle($nContextMenu), $GUI)
  EndIf
WEnd

Func Timer($hWnd, $iMsg, $iIDTimer, $iTime)
  If _IsPressed("02") Then
    _Timer_KillTimer($GUI, $Timer)
    While _IsPressed("02")
      Sleep(11)
    WEnd
    $MainItemName = ""
    Local $tPoint = _WinAPI_GetMousePos()
    Local $PopUp = _WinAPI_WindowFromPoint($tPoint)
    If _WinAPI_GetClassName($PopUp) = "#32768" Then
      Local $hMenu = _SendMessage($PopUp, $MN_GETHMENU)
      $MainItemName = _GUICtrlMenu_GetItemText($hMenu, _GUICtrlMenu_MenuItemFromPoint($PopUp, $hMenu))
      $ShowPopup = True
    EndIf
    WinActivate("[class:#32768]")
  EndIf
EndFunc

Страницы: [1] 2 3 ... 10