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

Страницы: 1 ... 8 9 [10]
91
Общие вопросы по AutoIt / Аналог массива структур в autoit
« Последний ответ от badhabit Отправлен Январь 12, 2018, 08:05:19 »
Добрый день. Мне нужно хранить произвольное количество одинаковых групп переменных. На C например я могу это делать в векторе (массиве) структур:
Struct a
{
int a;
string s;
}
vector<a> mylist;

А есть ли какой-нибудь аналог в autoit? Я пока кроме массива строк разделённых делимиторами и последующим StringSplit не придумал ничего...
92
Раз уж у меня всё равно есть настройки, сделал по китайски  ;D
Код: AutoIt [Выделить]
#include <Constants.au3>
#include <GUIConstantsEx.au3>

Global $sysini = @WorkingDir & "\system.ini"

Opt('TrayMenuMode', 3)
Opt("GUIOnEventMode", 1)

Global $hGUI

Select
   Case IniRead ($sysini,"RUN","RunPID", Null) <> ""
      Select
         Case ProcessExists ( IniRead ($sysini,"RUN","RunPID", Null) )
            WinSetState ( IniRead ($sysini,"RUN","RunGUI", Null), Null, @SW_SHOW )
            WinActivate ( IniRead ($sysini,"RUN","RunGUI", Null), Null )
            Exit
      EndSelect
EndSelect

TraySetState(1)

_Main()

Func _Main()

   $nGUI = "GUI 0.1"

   $hGUI = GUICreate($nGUI, 250, 250)
      IniWrite($sysini, "RUN", "RunPID", WinGetProcess ( $hGUI ))
      IniWrite($sysini, "RUN", "RunGUI", '"' & $nGUI &'"')

GUISetOnEvent($GUI_EVENT_CLOSE, '_exit', $hGUI)
GUISetOnEvent($GUI_EVENT_MINIMIZE, '_hide', $hGUI)

    GUISetState(@SW_SHOW)

While 1

      Switch TrayGetMsg()
      Case $TRAY_EVENT_PRIMARYUP
         WinSetState ( $hGUI, Null, @SW_SHOW )
         WinActivate ( $hGUI, Null )
      EndSwitch

   Sleep(10)
WEnd
EndFunc   ;==>_Main

Func _exit()
   IniDelete ( $sysini, "RUN" )
   Exit
EndFunc

Func _hide()
    WinSetState ( $hGUI, Null, @SW_HIDE )
EndFunc

Причём это оказалось проще чем потом сделать этот пример .
93
Код: AutoIt [Выделить]
$sString = 'au*oit-scrip*.r*'
$sSplit = StringSplit($sString, '*') ; StringSplit разделяет строку на подстроки, и возвращает массив
If Not @error Then
    $iU = 0 ; Переменная маркер максимального размера строки
    For $i = 1 To $sSplit[0] ; Цикл
        $iLen = StringLen($sSplit[$i]) ; Возвращает количество символов строки данного элемента массива $sSplit[]
        If $iLen > $iU Then
;~      Если количество символов строки данного элемента массива $sSplit[] больше максимального числа
;~      хранящегося в переменной $iU, то на данный момент это и есть строка максимальной длинны

            $sString = $sSplit[$i] ; Поскольку переменная $sString нам уже не нужна, то сохраняем в нее эту строку
            $iU = $iLen ; Сохраняем максимальную длинны в маркере $iU
        EndIf
;~      ... и идем на следующий виток цикла
    Next
EndIf
MsgBox(262144, Default, $sString)
 


OffTopicВечно загоните себя в угол, а потом героически разгребаете завалы.
94
Общие вопросы по AutoIt / Re: Как скрыть иконки на рабочем столе?
« Последний ответ от Alofa Отправлен Январь 12, 2018, 02:05:32 »
... не заработало
Проверял на Win7[x64], Win10[x64] - все работает.
Проверьте какой "Title" и "Class" вашего раб. стола и подставьте эти значения в скрипт.
95
Версия AutoIt: 3.
AutoIt Version: 3.3.14.2
Описание:
Всем привет
Изучаю функцию FileOpenDialog. Ищу возможность совсем немного расширить её функционал. Хотелось бы как-то сопоставить не просто тип файла с заданным но и имя файла.
Например: нужно открыть файл 1. png  И если откроется другой, то срипт должен предупредить об этом.
Примечания:
Спасибо
96
Общие вопросы по AutoIt / Re: Как скрыть иконки на рабочем столе?
« Последний ответ от dr.room Отправлен Январь 12, 2018, 01:34:42 »
Alofa
На win 7 - не заработало  :(
97
Версия AutoIt: 3.
 AutoIt Version: 3.3.14.2
Описание:
Всем привет
Есть url вида au*oit-scrip*.r*
Нужно найти и отразить  в Msgbox фрагмент между двумя ** т.е. двумя звездочками. И если можно - то самый больший из них т.е. содержавший больше символов в сравнении с другими фрагментах 
Примечания:
Спасибо
98
Общие вопросы по AutoIt / Re: Как скрыть иконки на рабочем столе?
« Последний ответ от Alofa Отправлен Январь 12, 2018, 01:10:20 »
Попробуйте:
Код: AutoIt [Выделить]
$hWnd = WinGetHandle('[CLASS:Progman;Title:Program Manager]')
$hControl = ControlGetHandle($hWnd, '', '[CLASS:SysListView32; INSTANCE:1]')
ControlHide($hWnd, '', $hControl)
MsgBox(262144, Default, '<<< П Р О В Е Р К А >>>')
ControlShow($hWnd, '', $hControl)

99
Дни рождения / С днём рождения Tyr, DarWiM!
« Последний ответ от Представитель Сообщества Отправлен Январь 12, 2018, 01:01:38 »
От имени всего Русского сообщества AutoIt поздравляем Вас Tyr, DarWiM с днём рождения!



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

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

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

Пусть жизнь Вам дарит самые
Прекрасные мгновения.
Желаем только радости
И счастья, с днем рождения!
100
В текстовый файл можно сохранять
Я попробую  :)
Цитировать
думаю код для этого не надо приводить
Спасибо, но Вы слишком оптимистичны. Я вряд ли смогу закрепить нужные функции за указанными кнопками  :)
Страницы: 1 ... 8 9 [10]