В этом вопросе отсутствуют некоторые особенности, но вот некоторые ответы.
1 - Программа чтения с экрана автоматически сфокусируется и прочитает первый вид на экране (справа налево, сверху вниз). Это поведение по умолчанию и не должно быть изменено.
2 - В некоторых случаях программа чтения с экрана может выполнять другое действие, когда отображается ваш контент. Например, когда отображается Dialog
, поведение по умолчанию для TalkBack
состоит в том, чтобы объявить заголовок и сосредоточиться на втором виде. Если вы вручную просите читателя сосредоточиться на заголовке, его можно прочитать дважды.
3 - Вы можете определить текст для чтения в вашем XML с помощью android: contentDescription или в вашем коде с помощью view.setContentDescription(textToRead)
Если я не ошибаюсь, рабочим столом является просто ListView, и необходимо будет отправить сообщение LVM_SETITEMPOSITION к дескриптору рабочего стола.
я погуглил немного для некоторого кода c# и не мог найти пример, но я сделал нашел следующую статью. Torry:... получите/установите положения значков на рабочем столе? . Это - код Дельфи, но я нахожу его очень читаемым, и с некоторым P/Invokes Вы будете в состоянии перевести его в c#.
Рабочий стол является просто управлением ListView, и можно получить его дескриптор и отправить сообщения в него для перемещения значков вокруг использования LVM_SETITEMPOSITION.
Получение позиций значка с помощью LVMGETITEMPOS немного более сложно, все же. Необходимо передать указатель на структуру ТОЧКИ как LPARAM. При попытке сделать это, Вы, вероятно, разрушите Проводник. Проблема - Вы, передал его указатель в Вашем адресном пространстве, которое управление интерпретировало как указатель в адресном пространстве Проводника. Ай!
решение, которое я использовал, состоит в том, чтобы ввести DLL в Проводник, обрабатывают и отправляют сообщение оттуда. Тогда у Вас просто должен быть способ вернуть информацию о положении к Вашему процессу.
Я все еще изучаю это и отправлю результат, как только я наконец получаю что-то работа. Я отправляю это, потому что, спасибо косвенно к сообщению Davy, я также нашел классическую реализацию VB:
Значки на рабочем столе Перестановки Используя Межпроцессную Коммуникацию Памяти
и это, вероятно, будет основанием для моего кода.
Я понятия не имею о API, но я знаю, что Ultramon ( http://www.realtimesoft.com/ultramon/ ) включали функцию для сохранения размещения значка (хотя я никогда не использовал его для сохранения местоположения значка, это необходимо для нескольких, контролируют использование). Последняя бета-версия работы безупречно с Vista (за исключением иногда наличия незначительного незначительного сбоя или два, первоначально входя в мою машину через RDP), и конечно, не имела никаких проблем с XP. Я использовал его больше четырех лет теперь.
И я упоминал, что это - лучшая утилита для нескольких, контролируют использование?