|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. |
|
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
|
(*.*) Сообщения: 36561 |
Внимание! В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема. Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно ![]() ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску) (он же прикреплен в шапке) Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 10:21, 17-03-2008 | #261 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 825
|
Профиль | Отправить PM | Цитировать Помогите разобраться с ListView. Хочу поймать выбор пункта в нем (желат по двойному клику) и не поумй как. Постоянно генерируется сообщение не давая даже сделать выбор.
Я так понимаю неправильна строка - Case $msg = $treeNets Вот код. #include <GuiConstants.au3> #include <GuiListView.au3> $hGUI = GuiCreate("Nets", 1020, 620) $AcceptButton = GUICtrlCreateButton("Ok", 880, 5, 60, 25) $a = _NetAdapterGetProp() $treeNets = GUICtrlCreateListView("IP Adress |Name nets",590,120,400,400,$LVS_SINGLESEL) _GUICtrlListViewSetColumnWidth ($treeNets, 0, 130) _GUICtrlListViewSetColumnWidth ($treeNets, 1, 470) Dim $hTreeNets[30] $n = UBound($a,2) For $i=0 To UBound($a,2)+1 Step 1 $hTreeNets[$i]=GUICtrlCreateListViewItem($a[$i][1] & "|" & StringTrimLeft ($a[$i][0],11),$treeNets) Next ; GUI MESSAGE LOOP GuiSetState() While 1 $msg = GUIGetMsg() Switch $msg Case $msg = $treeNets ;$adapters=GUICtrlGetState($treeNets) MsgBox(4096,"Info selected net", "List") ;GUICtrlGetState($treeNets)) Case $AcceptButton ExitLoop EndSwitch WEnd Func _NetAdapterGetProp($sHostName = "localhost") Local $objItem, $objWMIService = ObjGet( "winmgmts:\\"& $sHostName &"\root\CIMV2") Local $sQuery = 'SELECT Index, Caption, MACAddress, IPAddress FROM Win32_NetworkAdapterConfiguration Where IPEnabled = True' Local $colItems = $objWMIService.ExecQuery($sQuery, "WQL", 0x30) If IsObj($colItems) Then Local $aRes[1][3], $i=0 For $colItem In $colItems ReDim $aRes[$i+1][3] $aRes[$i][0] = $colItem.Caption $aRes[$i][1] = $colItem.IPAddress(0) $aRes[$i][2] = $colItem.MACAddress $i+=1 Next Return $aRes EndIf Return SetError(1) EndFunc ;==> _NetAdapterGetProp Exit |
Отправлено: 12:25, 17-03-2008 | #262 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать NikLok
Не считая ошибок с массивом и ошибок, которых я не заметил- не нашёл... While 1 $msg = GUIGetMsg() Switch $msg Case $msg = $treeNets ;$adapters=GUICtrlGetState($treeNets) MsgBox(4096,"Info selected net", "List") While 1 $msg = GUIGetMsg() Switch $msg Case $treeNets ;$adapters=GUICtrlGetState($treeNets) MsgBox(4096,"Info selected net", "List") #include <GuiConstants.au3> #include <GuiListView.au3> ;Global Const $WM_NOTIFY = 0x004E ;Global Const $tagNMHDR = "hwnd hWndFrom;int IDFrom;int Code" ;Global Const $NM_DBLCLK = -3 $hGui = GUICreate("Test GUI", 300, 200) $hListView = GUICtrlCreateListView("Items|SubItems", 10, 10, 280, 180) GUICtrlSendMsg(-1, 0x101E, 0, 150) GUICtrlSendMsg(-1, 0x101E, 1, 125) $Item1 = GUICtrlCreateListViewItem("Item1|SubItem1", $hListView) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") GUISetState() Do Until GUIGetMsg() = $GUI_EVENT_CLOSE Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam) Local $tNMHDR, $IdFrom, $iCode $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $IdFrom = DllStructGetData($tNMHDR, "IdFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $IdFrom Case $hListView Switch $iCode Case $NM_DBLCLK ConsoleWrite("Double click" & @LF) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc |
------- Отправлено: 13:34, 17-03-2008 | #263 |
Ветеран Сообщения: 825
|
Профиль | Отправить PM | Цитировать Maza Faka,
Цитата Maza Faka:
Цитата Maza Faka:
Цитата Maza Faka:
|
|||
Отправлено: 15:05, 17-03-2008 | #264 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Цитата NikLok:
![]() Цитата NikLok:
![]() Цитата NikLok:
#include <GuiConstants.au3> #include <GuiListView.au3> ;Global Const $WM_NOTIFY = 0x004E ;Global Const $tagNMHDR = "hwnd hWndFrom;int IDFrom;int Code" ;Global Const $NM_DBLCLK = -3 ;Global Const $tagNMLISTVIEW = "hwnd hWndFrom;int IDFrom;int Code;int Item;int SubItem;int NewState;int OldState;int Changed;" & _ ;"int ActionX;int ActionY;int Param" $hGui = GUICreate("Test GUI", 300, 200) $hListView = GUICtrlCreateListView("Items|SubItems", 10, 10, 280, 180) GUICtrlSendMsg(-1, 0x101E, 0, 150) GUICtrlSendMsg(-1, 0x101E, 1, 125) $Item1 = GUICtrlCreateListViewItem("Item1|SubItem1", $hListView) $Item2 = GUICtrlCreateListViewItem("Item2|SubItem2", $hListView) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") GUISetState() Do Until GUIGetMsg() = $GUI_EVENT_CLOSE Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam) Local $tNMHDR, $IdFrom, $iCode, $tInfo, $iItem $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $IdFrom = DllStructGetData($tNMHDR, "IdFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $IdFrom Case $hListView Switch $iCode Case $NM_DBLCLK $tInfo = DllStructCreate($tagNMLISTVIEW, $lParam) $iItem = DllStructGetData($tInfo, "Item") If $iItem <> -1 Then ConsoleWrite("Double click on " & $iItem & " item" & @LF) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ![]() |
|||
------- Отправлено: 16:00, 17-03-2008 | #265 |
Ветеран Сообщения: 825
|
Профиль | Отправить PM | Цитировать Maza Faka,
Цитата Maza Faka:
Извини исчо вопрос: Смотрел описание GUICtrlCreateListView а так же GuiCtrlCreateListView и уж само собой DllStructGetData. Так там нигде не описано что такое "Item". Ну интуитивно понятно название. Теперь же мне нужно значение значение этого итема. А они у нас не в массиве а $Item1 $Item2 ...... Как теперь выбрать нужный? И кстати каково его мнемоническое название?! Чуствую что нужно использовать _GUICtrlListView_GetItem но как его увязать в функции .... Тем более что не могу понять а эти строки зачем? |
|
Отправлено: 16:37, 17-03-2008 | #266 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Maza Faka,
Цитата:
![]() Кстати http:// можно не указывать: $string = "Location: http://game.chirkom.uz/download/game/warcraft3/i_hate_this_key.zip [following]" & @CRLF & "Checking..." $result = StringRegExpReplace($string, "(?s)^.*/(.*) .*$", "\1") MsgBox(0, "", $result) Цитата:
$tagNMLISTVIEW = "hwnd hWndFrom;int IDFrom;int Code;int Item;int SubItem;int NewState;int OldState;int Changed;int ActionX;int ActionY;int Param" Цитата:
ConsoleWrite("Double click on [" & _GUICtrlListView_GetItemText($IdFrom, $iItem) & "] item" & @LF) Цитата:
$IdFrom идентификатор элемента который вызвал событие (эквивалентно $hListView). $iCode код события (при двойном клике в списке он ровняется $NM_DBLCLK). |
||||
------- Отправлено: 17:22, 17-03-2008 | #267 |
Ветеран Сообщения: 825
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:38, 17-03-2008 | #268 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать NikLok,
Цитата:
![]() ![]() Если использовать GUICtrlSendMsg($hListView, $LVM_SETCOLUMNWIDTH, 0, -1) то колонка (первая, это определяет 0 в третьем параметре) выровняется по максимуму (чтобы были видны все символы в айтемах). |
|
------- Отправлено: 18:01, 17-03-2008 | #269 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Цитата NikLok:
![]() Цитата NikLok:
Цитата Creat0R:
![]() Цитата Creat0R:
![]() |
||||
------- Отправлено: 18:04, 17-03-2008 | #270 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[архив - Часть 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 |
|