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

Страницы: [1] 2 3 ... 10
1
Общие вопросы по AutoIt / Re: Действия net use в Autoit
« Последний ответ от ildary Отправлен Сегодня в 11:35:43 »
Спасибо за идею, но мне надо получить имя шары, которая подключена (или признак, что никаких шар нет). Например в моем случае может быть как \\NAS\Личное, так и \\NAS\IPC$ - мне потребуется выполнить либо net use \\NAS\Личное /Delete либо net use \\NAS\IPC$ /Delete
2
Общие вопросы по AutoIt / Re: Действия net use в Autoit
« Последний ответ от hedji Отправлен Сегодня в 11:11:11 »
Почему просто не проверять существование файла?
Код: AutoIt [Выделить]
$x = FileExists("\\NAS\Личное\1.txt")
If $x=1 Then
    MsgBox(0, "", "Подключение есть")
Else
    MsgBox(0, "", "Подключения нет")
EndIf
 

3
Общие вопросы по AutoIt / Действия net use в Autoit
« Последний ответ от ildary Отправлен Сегодня в 10:02:44 »
Уважаемые специалисты, подскажите пожалуйста, как можно реализовать следующее в AutoIt:

В сети есть два компьютера: мой и сетевой NAS (\\NAS), у которого есть сетевая папка "Личное", т.е. путь к ней выглядит как \\NAS\Личное. С помощью Autoit надо убедиться, что к шаре уже есть подключение, т.е. команда NET USE возвращает не

"Новые подключения будут запомнены.
В списке нет элементов."

а

"Состояние   Локальный  Удаленный                 Сеть
-------------------------------------------------------------------------------
OK                     \\nas\личное              Microsoft Windows Network
Команда выполнена успешно."

Обращаю внимание, что в Autoit есть функция, которая мне НЕ подходит - DriveMapGet - потому что она работает для сетевого пути, подключенного как диск (у меня это не применяется)
4
поместить в массив данные из полей ввода это как вариант. в конкретном случае можно обойтись и без него, но если элементов окна, которые нужно будет читать, гораздо больше или их количество меняется во время работы кода, то лучше использовать массив

в цикле опрашиваем - заполнены ли поля Месяц, если да, то сразу проверяем заполнено ли поле День. Если не заполнен День. то собираем строку для вывода в сообщение
Код: AutoIt [Выделить]
$sEmpty &= $aContent[$i][2] & @CRLF
...................................................
If $sEmpty Then Return $sEmpty

символ переноса нужен для того, чтобы данные в MsgBox были столбиком. Ну а там как душе угодно, можно и в одну строку все расположить

Код: AutoIt [Выделить]
 $count += 1

если не заполнены поля Месяц, то эта переменная суммирует количество полей
Код: AutoIt [Выделить]
If $count = UBound($aContent) Then Return -1

в итоге, если все поля Месяц не заполнены, то будет сообщение, что нет данных для записи
5
Дни рождения / С днём рождения yanoffsky!
« Последний ответ от Представитель Сообщества Отправлен Сегодня в 01:02:10 »
От имени всего Русского сообщества AutoIt поздравляем Вас yanoffsky с днём рождения!



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

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

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

Пусть жизнь Вам дарит самые
Прекрасные мгновения.
Желаем только радости
И счастья, с днем рождения!
6
Все работает, joiner. Фантастика !
Вы использовали массивы в скрипте - а это то что я редко использую. Наверное из-за этого запутался. А мне очень нужно понять как всё работает чтобы масштабировать Ваш пример
Пожалуйста прокомментируйте строки
Например я не могу понять строки
Код: AutoIt [Выделить]
Local $aContent[2][4] = [['Месяц Зимы', GUICtrlRead($iCombo1), 'День Зимы', GUICtrlRead($Input1)], ['Месяц Лета', GUICtrlRead($iCombo2), 'День Лета', GUICtrlRead($Input2)]]
    For $i = 0 To 1
        If $aContent[$i][1] Then
            If Not $aContent[$i][3] Then $sEmpty &= $aContent[$i][2] & @CRLF
        Else
            $count += 1
        EndIf
    Next
    If $count = UBound($aContent) Then Return -1
    If $sEmpty Then Return $sEmpty
 


А еше в этой строке, разве необходимо: & @CRLF?
Код: AutoIt [Выделить]
If Not $aContent[$i][3] Then $sEmpty &= $aContent[$i][2] & @CRLF
 

7
Общие вопросы по AutoIt / Re: Функция для поиска кнопок
« Последний ответ от the_gt99 Отправлен Вчера в 16:36:39 »
Просто функция PixelSearch, в отличие от PixelGetColor, может искать по оттенкам цветов, поэтому это самое очевидное решение без использования дополнительных UDF. Если надо что-то более навороченное, можно посмотреть в сторону ImageSearch и подобных ей UDF
Можно еще таким способом:
Код: AutoIt [Выделить]
#include <Color.au3>

Func serchButton($color,$pix2x,$pix2y,$pix2color)
$y = 0
    while 1
      $pixel = PixelSearch(0,$y,1023,767,$color ,"","","Game_name")
      If Not @error Then
         $var = PixelGetColor($pixel[0]+$pix2x, $pixel[1]+$pix2y, "Game_name")
         If Abs(_ColorGetGreen($var) - _ColorGetGreen($pix2color)) < 20 Then   ; $pix2color в числовом формате
            $return = '1|'&$pixel[0]+$pix2x&'|'&$pixel[1]+$pix2y
            ExitLoop
         else
            $y = $pixel[1]+1
         endif
      else
         $return = '-1|0|0'
         ExitLoop
      Endif
    WEnd
return $return
EndFunc
 


Спасибо огромное за помощь. Для тех, кому эта тема может пригодится в будущем оставляю ссылку на ImageSearch
Скрытый текст:Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст
8
Общие вопросы по AutoIt / Re: Функция для поиска кнопок
« Последний ответ от gunter123 Отправлен Вчера в 15:06:57 »
Просто функция PixelSearch, в отличие от PixelGetColor, может искать по оттенкам цветов, поэтому это самое очевидное решение без использования дополнительных UDF. Если надо что-то более навороченное, можно посмотреть в сторону ImageSearch и подобных ей UDF
Можно еще таким способом:
Код: AutoIt [Выделить]
#include <Color.au3>

Func serchButton($color,$pix2x,$pix2y,$pix2color)
$y = 0
    while 1
      $pixel = PixelSearch(0,$y,1023,767,$color ,"","","Game_name")
      If Not @error Then
         $var = PixelGetColor($pixel[0]+$pix2x, $pixel[1]+$pix2y, "Game_name")
         If Abs(_ColorGetGreen($var) - _ColorGetGreen($pix2color)) < 20 Then   ; $pix2color в числовом формате
            $return = '1|'&$pixel[0]+$pix2x&'|'&$pixel[1]+$pix2y
            ExitLoop
         else
            $y = $pixel[1]+1
         endif
      else
         $return = '-1|0|0'
         ExitLoop
      Endif
    WEnd
return $return
EndFunc
 

9
Общие вопросы по AutoIt / Re: Функция для поиска кнопок
« Последний ответ от the_gt99 Отправлен Вчера в 15:03:31 »
Ну так почему бы не попробовать точно так же искать зеленый цвет, но с разными оттенками?
Код: AutoIt [Выделить]
Func serchButton($color,$pix2x,$pix2y,$pix2color)
$y = 0
   While True
            $pixel = PixelSearch(0,$y,1023,767,$color , 100,"","Game_name")
            If Not @error Then
               ; Ищем цвет с оттенком, близким к $pix2color в области 1х1 px
               If PixelSearch(($pixel[0] + $pix2x), ($pixel[1] + $pix2y), ($pixel[0] + $pix2x), ($pixel[1] + $pix2y), $pix2color, 100, "", "Game_name")  Then
                  $return = '1|'&$pixel[0] + $pix2x&'|'&$pixel[1] + $pix2y
                  ExitLoop
               Else
                  $y = $pixel[1]+1
               Endif
            Else
               $return = '-1|0|0'
               ExitLoop
            EndIf
    WEnd
Return $return
EndFunc


Просто я думал не изобретать велосипед, а просить помощи у старожил форума. Неужели нет более элегантного и простого решения?
 P.S. еще не до конца разобрался в чем именно проблема, но представленная вами выше, функция не работает.
10
Общие вопросы по AutoIt / Re: Функция для поиска кнопок
« Последний ответ от gunter123 Отправлен Вчера в 14:54:18 »
Ну так почему бы не попробовать точно так же искать зеленый цвет, но с разными оттенками?
Код: AutoIt [Выделить]
Func serchButton($color,$pix2x,$pix2y,$pix2color)
$y = 0
   While True
            $pixel = PixelSearch(0,$y,1023,767,$color , 100,"","Game_name")
            If Not @error Then
               ; Ищем цвет с оттенком, близким к $pix2color в области 1х1 px
               If PixelSearch(($pixel[0] + $pix2x), ($pixel[1] + $pix2y), ($pixel[0] + $pix2x), ($pixel[1] + $pix2y), $pix2color, 100, "", "Game_name")  Then
                  $return = '1|'&$pixel[0] + $pix2x&'|'&$pixel[1] + $pix2y
                  ExitLoop
               Else
                  $y = $pixel[1]+1
               Endif
            Else
               $return = '-1|0|0'
               ExitLoop
            EndIf
    WEnd
Return $return
EndFunc

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