Что нового

SysListView321 выделение "многоточием" строки в списке

Vaal

Новичок
Сообщения
9
Репутация
0
проблема такая - кнопки кик и бан срабатывают только если строка выделена "многоточием", в тоже время она может выделена заливкой фона, но роли это не играет

на скриншоте
1й случай - кнопка сработает на строку Server
2й - сработает на test32
3й - не сработает вообще

Код:
ControlListView($title, "", "SysListView321", "Select", $id)

данный код выделяет строку только заливкой фона

можно ли как то сделать выделение "многоточием" через autoit?
в голову приходит только вариант с кликом мышки по координатам, но может есть другой?
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
Пробуйте:

Код:
ControlFocus($title, '', 'SysListView321')
ControlListView($title, '', 'SysListView321', 'Select', $id)
Код:
ControlListView($title, '', 'SysListView321', 'Select', $id)
If $id > 0 Then
	ControlSend($title, '', 'SysListView321', '{up}{down}')
Else
	ControlSend($title, '', 'SysListView321', '{down}{up}')
EndIf
 
Автор
V

Vaal

Новичок
Сообщения
9
Репутация
0
1й вариант - никакого эффекта

2й вариант
выделяет только заливкой фона, выделение "многоточием" остается на той строке которая была выбрана вручную мышкой

причем up down переключают выделение фоном не на соседние элементы(как вручную)
а переключает между строкой $id и той строкой которая была выделена вручную мышкой
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
_GUICtrlListView_SetItemSelected(ControlGetHandle($title, '', 'SysListView321'), $iIndex, 1, 1)
 
Автор
V

Vaal

Новичок
Сообщения
9
Репутация
0
тоже не сработало как нужно
запускаю скрипт, нужного игрока не кикает, программа считает выделенной строкой - ту которую выделил я вручную
нужная строка выделена только фоновой заливкой, ни одна из строк ни выделена "многоточием"
но если щёлкнуть мышкой в лист, но не в строку, а в пустое место, то нужная строка выделяется только "многоточием", но при этом не активны кнопки кик бан

потом попробовал вот так
Код:
_GUICtrlListView_SetItemSelected(ControlGetHandle($title, '', 'SysListView321'), $kickid, 1, 1)
	ControlListView($title, "", "SysListView321", "Select", $kickid)
	ControlClick($title, '', 'Kick')

выделяю вручную строку Server - его кикнуть нельзя, выдает предупреждение т.е. сами кнопки активны
от однократного запуска скрита эффект такой же как и раньше
запускаю два раза подряд, захожу удаленкой
вижу предупреждения что сервер кикнуть нельзя, но нужная строка выделена и заливкой фона и "многоточием", жму вручную кик - опять сообщение что сервер кикнуть нельзя
т.е. визуально выделен игрок которого можно кикнуть, но программа думает что выделен Server
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Vaal
А что мешает использовать checkbox?
Или из принципиальных соображений нужно многоточие?
 
Автор
V

Vaal

Новичок
Сообщения
9
Репутация
0
не совсем понял вопрос
я не могу редактировать приложение которым я пытаюсь управлять с помощью autoIT
т.е. это не моя программа, это интерфейс выделенного сервера игры
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: SysListView321 выделение \"многоточием\" строки в списке

Vaal [?]
т.е. это не моя программа, это интерфейс выделенного сервера игры
Понятно! Я подумал, что это ваша программа. Извиняйте :smile:


Добавлено:
Сообщение автоматически объединено:

Попробуйте, как предложил Yashied, только 3-й параметр выставите ноль:
Код:
_GUICtrlListView_SetItemSelected(ControlGetHandle($title, '', 'SysListView321'), $iIndex, 0, 1)
 
Автор
V

Vaal

Новичок
Сообщения
9
Репутация
0
к сожалению этот вариант тоже не сработал
выделяю строку Server вручную, выключаю удаленку
запускаю скрипт - выделение рамкой из точек уходит на нужную строку
но выделение фоном остается на строке Server и программа отрабатывает её
 
Автор
V

Vaal

Новичок
Сообщения
9
Репутация
0
может есть какие-то идеи почему этот скрипт с
_GUICtrlListView_SetItemSelected
нормально отрабатывает на листе диспетчера задач - т.е. "завершить процесс" применяется к тому элементу списка который был выбран скриптом, и не срабатывает на листе нужного мне приложения http://slil.ru/29445641 там архив с ехешником и ддл для возможности запуска, чтобы интерфейс было видно

сравнил с помощью Resource Hacker значения интерфейса списка

значения из приложения
CONTROL "", 1004, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 236, 15, 272, 131 , 0x00000200

значения из диспетчера задач
CONTROL "Процессы", 1009, "SysListView32", LVS_REPORT | LVS_SINGLESEL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 9, 9, 376, 131
 
Верх