Что нового

Получить текст из окна

Атос

Новичок
Сообщения
85
Репутация
0
Привет.

Как возможно получить список файлов в классе контрола нужного мне окна?
Допустим, у меня открыт Total Commander, и в нём открыта какая-нибудь папка.
Я пытаюсь получить текст (список файлов) из этого контрола [CLASS:TMyListBox; INSTANCE:1].
Код:
$dd = ControlGetText('Total', '', 'TMyListBox1')
MsgBox(0, '111', $dd)


Не получается.

То же самое пытаюсь получить из проводника.

Код:
$dd = ControlGetText('WINDOWS', '', '[CLASS:SysListView32; INSTANCE:1]')
MsgBox(0, '111', $dd)


Возможно ли это в принципе?
 
Автор
А

Атос

Новичок
Сообщения
85
Репутация
0
InnI, дело в том, что мне нужно решение именно такой задачи, которую я описал в вопросе.

Ведь, мне нужны не только реальные объекты папок, но и всякие вирутальные объекты, типа "Мой компьютер", "Корзина", "Рабочий стол" и др.

Мне нужно именно получать текст из таких классов.
Т.е., надо сделать, чтобы это читалось, типа как StdOut, но и без всяких сторонних костылей, типа @ComSpec.
 

InnI

AutoIT Гуру
Сообщения
4 447
Репутация
1 206
Атос
нужно именно получать текст из таких классов
Ну, если нужно...
Из списков сразу весь текст не получить. Но можно узнать текст конкретного элемента.

из этого контрола [CLASS:TMyListBox; INSTANCE:1]
Код:
_GUICtrlListBox_GetText()


получить из проводника
Для Windows XP (SysListView32)
Код:
ControlListView()
; или
_GUICtrlListView_GetItemText()
 
Автор
А

Атос

Новичок
Сообщения
85
Репутация
0
Работает в проводнике, а в Тотале не хочет.
 
Автор
А

Атос

Новичок
Сообщения
85
Репутация
0
Какая функция работает, эта?

Код:
ControlListView()
 

InnI

AutoIT Гуру
Сообщения
4 447
Репутация
1 206
Атос
Прочитайте ВНИМАТЕЛЬНО мой ответ. Для каждого класса своя функция.
На будущее. В DirectUIHWND (проводник Windows 7) ни одна из перечисленных работать не будет.
 
Автор
А

Атос

Новичок
Сообщения
85
Репутация
0
InnI, а что, начиная с WINDOWS 7 функция _GUICtrlListView_GetItemText работать не будет?
 

InnI

AutoIT Гуру
Сообщения
4 447
Репутация
1 206
В элементах класса SysListView32 - будет работать. В проводнике - нет, т.к. начиная с Win7 там другой контрол.
 
Автор
А

Атос

Новичок
Сообщения
85
Репутация
0
InnI, а как получить список файлов Total Commander из ListView?
Я вообще не могу найти такой класс.
Может он скрыт?
 

InnI

AutoIT Гуру
Сообщения
4 447
Репутация
1 206
Атос [?]
получить список файлов Total Commander
Проверял на версии TC 9.10
Код:
#include <GuiListBox.au3>

$hLB = ControlGetHandle("[class:TTOTAL_CMD]", "", "TMyListBox1")
For $i = 0 To _GUICtrlListBox_GetCount($hLB) - 1
  ConsoleWrite(_GUICtrlListBox_GetText($hLB, $i) & @CRLF)
Next
 
Верх