Что нового

Фрагментный поиск через FindItem в ListView

marcsimus

Новичок
Сообщения
2
Репутация
0
Предположим у меня открыт "Мой Компьютер", и мне необходимо узнать номер строки диска C:, но он имеет имя, т.е. NewSystem (C:smile:,
а значит
Код:
ControlListView($MyComWin,"","SysListView321","FindItem","C:")

работать не будет.
При условии того, что имя диска на разных ПК может быть отличное друг от друга, и что локально его узнать нельзя, как возможно реализовать это?
Экспериментировал с масками по типу "*C:*", но не сработало, поиск по форуму не помог.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Re: Фрагментный поиск через FindItem

marcsimus,
Попробуйте _GUICtrlListView_FindInText() и добавьте в название темы, что искать надо в ListView.
 
Автор
M

marcsimus

Новичок
Сообщения
2
Репутация
0
Не понимаю как именно это нужно использовать здесь.. Почитал гайд и опять же ничего не понял.
Какой синтаксис у этой команды и как её вообще использовать?
Мне казалось, что она не для определения номера строки по содержимому.
Прошу разъяснительный пример, ибо по тому, что я находил — ничего не ясно мне.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
$Count = ControlListView('Мой компьютер', '', 'SysListView321', 'GetItemCount')
For $i = 0 To $Count
	$Name = ControlListView('Мой компьютер', '', 'SysListView321', 'GetText', $i)
	If StringInStr($Name, 'C:') Then ExitLoop MsgBox(0, '', $Name)
Next

или:
Код:
#include <GUIListView.au3>
$hWnd = ControlGetHandle('Мой компьютер', '', 'SysListView321')
$Index = _GUICtrlListView_FindInText($hWnd, 'C:')
$Name = _GUICtrlListView_GetItemText($hWnd, $Index)
MsgBox(0, '', $Name)
 
Верх