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

Страницы: 1 2 [3] 4 5 ... 10
21
Общие вопросы по AutoIt / Re: Неизвестная папка на пути к исполняющему файлу
« Последний ответ от Vanguger Отправлен Июнь 22, 2018, 03:08:34 »
Немного поразмышлял на эту тему:

Код: AutoIt [Выделить]
#Include-Once
#Include <File.au3>
#Include <misc.au3>

#cs
    Скрипт получения пути к последней версии. Результат работы будет помещён в глобальную переменную $VERSION1S
    Скрипт работает так:
        Если скрипт не обнаруживает стандартный путь @ProgramFilesDir & '\1c', то запрашивает его расположение
        Найдя версию, проверяет в ней расположение программы @ProgramFilesDir & '\1c\n.n.n.n\bin\file.exe'
        Если программа не найдена, запрашивает её относительный путь, который не будет привязан к версии
        Для последующего автоматического открытия, основной путь к 1с и относительный к программе, записываются
        в конфигурационный файл в одной папке со скриптом и при последующих запусках извлекаются из него.

    Порядок действий:
        Данный скрипт сохранить в файле version1s.au3
        В этой же папке со скриптом создать другой файл, например testVersion1S.au3  с содержимым:
            ;--------Start--------
            #Include "version1s.au3"
            MsgBox(0, 'Путь к последней версии', $VERSION1S)
            ;---------End---------

#ce


Global $dir1s    = @ProgramFilesDir & '\1c' ;Путь к стандартной папке, содержащей папки версий n.n.n.n
Global $filePath = '\bin\file.exe' ;Относительный путь к стандартной программе внутри папки с версией
Global $VERSION1S

Func _GetPathLatestVersion1S()
    Local $dirCV, $pathCV, $sCurVer, $msg, $aList, $dirVers
    Local $confFile = @ScriptDir & '\conf.ini'
   
    $dirCV = IniRead($confFile, '1S', 'dir1s', $dir1s) ; если ранее был указан нестандартный путь, то читает его из файла конфигурации conf.ini
    If Not FileExists($dirCV) Then $msg = MsgBox(1 + 48, 'Внимание!', 'Не удалось обнаружить стандартную общую папку:' & @CRLF & $dirCV & @CRLF & 'Хотите указать её самостоятельно?')
   
    If $msg = 1 Then
        $dirCV = FileSelectFolder('Укажите путь к папке с версиями', @ProgramFilesDir)
    EndIf
    If FileExists($dirCV) Then
        IniWrite($confFile, '1S', 'dir1s', $dirCV)
    Else
        Return SetError(1)
    EndIf
   
    $aList = _FileListToArray($dirCV, '?.?.?.?', 2)
    If @Error Then Return SetError(2)
    For $i = 1 To $aList[0]
        If _VersionCompare($sCurVer, $aList[$i]) = -1 Then $sCurVer = $aList[$i]
    Next
   
    $dirVers = $dirCV & '\' & $sCurVer
   
    $pathCV = IniRead($confFile, '1S', 'pathfile', $filePath)
   
    If Not FileExists($dirVers & $pathCV) Then $msg = MsgBox(1 + 48, 'Внимание!', 'Папка с последней версией обнаружена:' & @CRLF & $dirVers & @CRLF & 'Но не удалось обнаружить стандартную программу по пути ' & @CRLF & $dirVers & $pathCV & @CRLF & 'Хотите указать путь к ней самостоятельно? Путь будет считаться относительным (например: \bin\program.exe) и не будет привязан к какой-либо версии')
    If $msg = 1 Then
        $pathCV = FileOpenDialog('Укажите путь к файлу file.exe', $dirVers & '\', 'Программы (*.exe)', 1)
    EndIf
    If FileExists($pathCV) Then
        IniWrite($confFile, '1S', 'pathfile', StringReplace($pathCV, $dirVers, ''))
    EndIf
   
    $VERSION1S = $dirVers & $pathCV
    ConsoleWrite($VERSION1S)
    Return $VERSION1S
EndFunc

_GetPathLatestVersion1S()
If @Error = 1 Then ConsoleWrite('Не удалось обнаружить общую папку содержащую папки со всеми версиями')
If @Error = 2 Then ConsoleWrite('Общая папка обнаружена, но в ней нет папок с версиями в формате n.n.n.n')

22
Дни рождения / С днём рождения Asshaker!
« Последний ответ от Представитель Сообщества Отправлен Июнь 22, 2018, 01:02:36 »
От имени всего Русского сообщества AutoIt поздравляем Вас Asshaker с днём рождения!



Цитировать
Пусть все мечты исполнятся,
Пусть все желанья сбудутся,
Пусть радости запомнятся,
А горести забудутся.

Здоровье будет крепкое,
В делах всегда согласие,
Любовь навеки верная —
Без ссор и разногласия.

Зарплата только вовремя,
Стабильная, высокая.
Работа будет лёгкая
И не совсем далёкая.

Пусть жизнь Вам дарит самые
Прекрасные мгновения.
Желаем только радости
И счастья, с днем рождения!
23
Общие вопросы по AutoIt / Не работает _GUICtrlButton_SetTextMargin
« Последний ответ от Vanguger Отправлен Июнь 21, 2018, 19:39:16 »
Взял пример из официальной документации, но он у меня не работает. Никаких отступов в помине нет. У меня Autoit 3.3.14.5 и windows7
Скажите, есть ли ещё  какие-нибудь способы задать отступ текста на кнопке?
24
Общие вопросы по AutoIt / Re: Неизвестная папка на пути к исполняющему файлу
« Последний ответ от Dobrodei Отправлен Июнь 21, 2018, 19:01:41 »
Код: AutoIt [Выделить]
#include <Array.au3>
#include <File.au3>

$sPath = _GetPath()

Func _GetPath()
   Local $aList = _FileListToArray(@ProgramFilesDir & '\1c', '*', 2)
   If @error Then Return SetError(2, 0, 0)

   For $i = UBound($aList) -1 To 0 Step -1
      Local $aSplit = StringSplit($aList[$i], '.', 2)
      If @error OR UBound($aSplit) <> 4 Then
         _ArrayDelete($aList, $i)
      EndIf
   Next

   If UBound($aList) = 0 Then Return SetError(1, 0, 0)
   Return @ProgramFilesDir & '\1c\' & $aList[UBound($aList)-1] & '\bin\file.exe'
EndFunc
 

Не могу понять , что делает "Return" и как вставить его параметры в нужный скрипт  :(
25
Общие вопросы по AutoIt / Re: Выбор типа координат для функции PixelSearch - что лучше
« Последний ответ от dr.room Отправлен Июнь 20, 2018, 20:33:43 »
Спасибо,filautdinov
Это выходит, тоже окно, только минус border
А где данные координат, т.к. позиции посмотреть в  Au3Info.  Там просто куча данный по Position . Что выбрать ?  :stars:
26
Цитировать
Что вообще собой представляет пункт: относительно координат клиентской области активного окна
Как это - относительно клиентской области?
Пример на окне игры Crossfire
Скриншот 1 относительно клиентской области окна

Скриншот 2 относительно окна
27
Спасибо СН3СН2ОН
Цитировать
Таким образом, берем цвет пикселя, относительно окна браузера
Взялся изучить дополнительно

Спасибо,  Alofa
Но мне нужна дополнительная информация о "Зоне видимости"
Также отмечено что
Цитировать
Chrome не обновляет состояние элементов при прокрутке. Поэтому нужно после каждой прокрутки обновлять страницу, тогда и состояние элементов обновится.
На практике при обновлении страницы: chrome://history/ скрол не сохраняет положение, сбрасывая его на исходный 
Цитировать
Для Firefox нужно знать самый нижний элемент на странице и, когда он появляется в зоне видимости (IsOffscreen:false), значит достигнут конец страницы.
Как узнать последний элемент на той же странице: chrome://history/ ?



28
Общие вопросы по AutoIt / Выбор типа координат для функции PixelSearch - что лучше
« Последний ответ от dr.room Отправлен Июнь 20, 2018, 18:46:27 »
Всем привет
Все время путаюсь в вопросе какой тип координат лучше использовать  если учитывать что
  • Координаты нужны для функции PixelSearch
  • Возможно что PixelSearch будет применен на разных компах
Что вообще собой представляет пункт: относительно координат клиентской области активного окна
Как это - относительно клиентской области? Как соответствовать настройки программы Au3Info для определение точных координат (Coord Mode) и настройки поиска: CaretCoordMode и PixelCoordMode ?
Какие AutoItSetOption нужно изменить - если настраивать функцию PixelSearch

Заранее спасибо
29
... думал, что есть более изящное решение...
Оно всегда есть, всегда, но не всегда на ползу ;)

Код: AutoIt [Выделить]
#include <GUIConstants.au3>

GUICreate("MyGUI", 200, 50)
$Input = GUICtrlCreateInput("", 15, 15, 170)
GUIRegisterMsg($WM_COMMAND, "_WM_COMMAND")
GUISetState()

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func _WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    If BitAND($wParam, 0xFFFF) = $Input And BitShift($wParam, 16) = $EN_CHANGE Then GUICtrlSetData($Input, StringRegExpReplace(GUICtrlRead($Input), '(?(?<=[\d-+])(\D)|[^+-])', ''))
    Return $GUI_RUNDEFMSG
EndFunc   ;==>_WM_COMMAND

;~ ; Это абсолютно такая же функция:

;~ Func _WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
;~  Switch BitAND($wParam, 0xFFFF)
;~      Case $Input
;~          Switch BitShift($wParam, 16)
;~              Case $EN_CHANGE
;~                  Local $Data = GUICtrlRead($Input)
;~                  $Data = StringRegExpReplace($Data, '(?(?<=[\d-+])(\D)|[^+-])', '')
;~                  GUICtrlSetData($Input, $Data)
;~          EndSwitch
;~  EndSwitch
;~  Return $GUI_RUNDEFMSG
;~ EndFunc   ;==>_WM_COMMAND

30
Общие вопросы по AutoIt / Re: Редактирование XML файла
« Последний ответ от Grizli Отправлен Июнь 20, 2018, 17:09:51 »
Предполагаю идет проверка структуры файла XML и закрытие открытых секций. Это в принципе не сложно. Других вариантов у меня нет.
Но код конечно магический
Страницы: 1 2 [3] 4 5 ... 10