Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Закрытая тема
Настройки темы
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

(*.*)


Сообщения: 36489
Благодарности: 6675


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 21-01-2009
Описание: архив
Внимание!


В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно Заголовок темы должен быть осмысленным.



Сайт программы
Русская справка
Коллекция AutoIt скриптов от Sanja Alone
Коллекция AutoIt скриптов от MSFN (могут быть устаревшие).


Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо).

Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску)
(он же прикреплен в шапке)


Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров.
Цитата Vadikan:
В теме уже свыше 500 сообщений и поиск нужной информации в ней усложняется. Есть предложение собрать все решения (скрипты) и разместить их на Wiki по принципу "один скрипт - одна статья wiki", добавляя статьи в категорию Autoit. Речь, в принципе, идет об общих решениях, а не о скриптах для установки конкретной программы. Название статьи, очевидно, должно отражать назначение скрипта. Затем можно в шапке просто разместить ссылки на статьи Wiki.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:02, 05-02-2006

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


gregaz,
А в чём проблема использовать более одной функции? . Ограничении вроде нет.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 00:11, 21-01-2008 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для gregaz

Пользователь


Сообщения: 88
Благодарности: 19

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
gregaz,
А в чём проблема использовать более одной функции? . Ограничении вроде нет. »
Может быть и так.Просто работа универсальной ф-ии мне более понятна.
Можно попутно еще вопрос ?
Насколько я понял (для универсальной ф-ии в моем примере) одновременное использование одинарного и двойного кликов одной и той же кнопки мыши не предполагается.
Для выявления двойного клика можно было бы выдержать паузу,но не останавливая работы скрипта.
Как правильно это организовать?

Отправлено: 04:38, 21-01-2008 | #22


Аватара для Maza Faka

Ветеран


Сообщения: 604
Благодарности: 133

Профиль | Отправить PM | Цитировать


gregaz
Цитата:
дновременное использование одинарного и двойного кликов одной и той же кнопки мыши не предполагается.
Поподробнее пожалуйста, имеется в виду клики на ListView items?

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 07:02, 21-01-2008 | #23


Аватара для gregaz

Пользователь


Сообщения: 88
Благодарности: 19

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
gregaz,
А в чём проблема использовать более одной функции? . Ограничении вроде нет. »
:
Эта функция сортировки работает только на ListView ,созданном внутренней ф-ей : GUICtrlCreateListView
При создании ListView с помощбю UDF : _GUICtrlListView_Create - не хочет
Тогда,как редактирование на месте - наоборот . Получаются вилы ?

Цитата Maza Faka:
gregaz
Цитата:
дновременное использование одинарного и двойного кликов одной и той же кнопки мыши не предполагается.
Поподробнее пожалуйста, имеется в виду клики на ListView items? »
Да конечно
Надо выявить двойной клик на ListView items ,игнорируя первый (одинарный) одной и той же кнопкой мыши

Последний раз редактировалось gregaz, 21-01-2008 в 08:36.


Отправлено: 07:18, 21-01-2008 | #24


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


gregaz,
Цитата:
Как правильно это организовать?
Двойной клик улавливается сообщениями ($NM_DBLCLK), в справке есть пример (в _GUICtrlListView_Create()).

Когда мы кликаем два раза подряд (промежуточность установлена системой), то в ListView посылается сообщение $NM_DBLCLK, вот его и нужно улавливать (испол. WM_NOTIFY_EVENTS()).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 08:59, 21-01-2008 | #25


Аватара для Maza Faka

Ветеран


Сообщения: 604
Благодарности: 133

Профиль | Отправить PM | Цитировать


gregaz
Цитата:
Эта функция сортировки работает только на ListView ,созданном внутренней ф-ей : GUICtrlCreateListView
При создании ListView с помощбю UDF : _GUICtrlListView_Create - не хочет
Тогда,как редактирование на месте - наоборот . Получаются вилы ?
Остаётся ждать новой версии в которой будет реализована сортировка средствами UDF.

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 09:55, 21-01-2008 | #26


Аватара для kalikanzaros

Пользователь


Сообщения: 65
Благодарности: 2

Профиль | Отправить PM | Цитировать


упс два раза задал вопрос...

-------
Я никогда не спорю, никогда не противоречу, я иногда забываю...


Отправлено: 10:21, 21-01-2008 | #27


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


kalikanzaros,
Цитата:
почему скрипт, после удаления ярлыка из автозагрузки, перед самым ребутом, создает его снова???
Возможно из за этого...

Цитата:
; если ярлык в автозапуске не сущ-ет - создаем его и выходим
?



P.S
Shutdown(6) не завершает работу скрипта, пока компьютер будет перезапускаться, строчка с созданием ярлыка будет выполнена.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 10:43, 21-01-2008 | #28


Аватара для kalikanzaros

Пользователь


Сообщения: 65
Благодарности: 2

Профиль | Отправить PM | Цитировать


Creat0R,
понятно спасибо, как я понимаю проблему должно решить добавление строки с "exit" после строки Shutdown(6)

-------
Я никогда не спорю, никогда не противоречу, я иногда забываю...


Отправлено: 10:57, 21-01-2008 | #29


Аватара для gregaz

Пользователь


Сообщения: 88
Благодарности: 19

Профиль | Отправить PM | Цитировать


Вот попробовал накалякать LVSort позволяющюю и сортировать на ListView,созданном с помощью UDF
При этом сохраняется возможность редактирования на месте

Код: Выделить весь код
#include <GuiListView.au3>
#include <GuiImageList.au3>

$Gui = GUICreate("Test", 400, 250)

$hListView = _GUICtrlListView_Create($GUI, "Items|SubItems", 2, 2, 220, 196, BitOR($LVS_EDITLABELS, $LVS_REPORT))

$hImage = _GUIImageList_Create (16,16,5);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 3);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 11);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 22);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 33);
_GUICtrlListView_SetImageList ($hListView, $hImage, 1)

$ListItem1 = _GUICtrlListView_AddItem($hListView, "Boris",0)
$ListItem2 = _GUICtrlListView_AddItem($hListView, "Anna",2)
$ListItem3 = _GUICtrlListView_AddItem($hListView, "Sveta",1)
$ListItem4 = _GUICtrlListView_AddItem($hListView, "Misha",3)
$ListSubItem1 = _GUICtrlListView_AddSubItem ($hListView, 0,'44', 1)
$ListSubItem2 = _GUICtrlListView_AddSubItem ($hListView, 1,'22', 1)
$ListSubItem3 = _GUICtrlListView_AddSubItem ($hListView, 2,'11', 1)
$ListSubItem4 = _GUICtrlListView_AddSubItem ($hListView, 3,'33', 1)

GUISetState()

GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
Global $B_DESCENDING[_GUICtrlListView_GetColumnCount ($hListView) ]

While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
        ExitLoop
    EndSwitch
WEnd
;------------------------------------------------------------------------------
Func LVSort($in)
    $itN=_GUICtrlListView_GetItemCount($hListView)
    $colN=_GUICtrlListView_GetColumnCount($hListView)
    Dim $iArr[$itN][$colN+2]
    For $ii=0 To $itN-1
        $aItem=_GUICtrlListView_GetItem($hListView, $ii)
        For $jj=0 To $colN-1
            $iArr[$ii][$jj]=_GUICtrlListView_GetItemText($hListView, $ii,$jj)
            $iArr[$ii][$jj+1]=$aItem[4]
        Next
    Next

    _ArraySort( $iArr,'','','',$colN+1)

    For $ii=0 To $itN-1
        _ArraySwap( $iArr[$ii][0], $iArr[$ii][$in] )
    Next

    _ArraySort( $iArr,0,0,0,$colN+1)

    For $ii=0 To $itN-1
        _ArraySwap( $iArr[$ii][0], $iArr[$ii][$in] )
    Next
    _GUICtrlListView_DeleteAllItems($hListView)
    For $ii=0 To $itN-1
        _GUICtrlListView_AddItem($hListView,$iArr[$ii][0],$iArr[$ii][2])
        For $jj=1 To $colN-1
            _GUICtrlListView_AddSubItem ($hListView, $ii,$iArr[$ii][$jj], $jj)
        Next
    Next
EndFunc

;-----------------------------------------------------------------------------------
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")

    Switch $hWndFrom
    Case $hWndListView
        Switch $iCode
        Case $LVN_COLUMNCLICK ; Клик по колонке
            $aHit = _GuiCtrlListView_SubItemHitTest ($hWndListView)
            LVSort($aHit[1])
        Case $LVN_BEGINLABELEDIT
            Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
            Return False
        Case $LVN_ENDLABELEDIT
            Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
            Local $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
            If StringLen(DllStructGetData($tBuffer, "Text")) Then Return True
            EndSwitch
        EndSwitch
        Return $GUI_RUNDEFMSG
    EndFunc
Наверняка ее можно еще упростить.

Цитата Creat0R:
gregaz,
Цитата:Как правильно это организовать?
Двойной клик улавливается сообщениями ($NM_DBLCLK), в справке есть пример (в _GUICtrlListView_Create()).
Когда мы кликаем два раза подряд (промежуточность установлена системой), то в ListView посылается сообщение $NM_DBLCLK, вот его и нужно улавливать (испол. WM_NOTIFY_EVENTS()). »
Да двойной то улавливает и эта функция (если добавить соответственно $iCode : $NM_CLICK и $NM_DBLCLK,но сначала улавливается одинарный клик(его не знаю как пропустить) чтобы среагировать на второй (от двойного) ?

Отправлено: 14:00, 21-01-2008 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Вопрос - [Архив] Антивирусные программы - ОБЩИЕ ВОПРОСЫ FOX RED Защита компьютерных систем 67 21-11-2007 15:05
[Архив - Часть 1.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.2] AutoIt скрипты Dirk Diggler AutoIt 505 02-12-2006 11:00
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход