- Tell application для windows
- Глава 12. Пути к файлам, папкам и приложениям
- Tell application для windows
- Речь, голосовая связь и беседа в Windows 10 Speech, voice, and conversation in Windows 10
- Документация по определенным платформам Platform-specific documentation
- Примеры Samples
- Видео Videos
- Другие источники Other resources
Tell application для windows
Глава 12. Пути к файлам, папкам и приложениям
Давайте посмотрим как организованы папки и файлы на вашем жестком диске. Если вы откроете окно Finder в виде колонок, оно будет выглядеть примерно так:
Тут жесткий диск, который содержит папки, приложения и файлы (на рисунке выше файлы и приложения не показаны). Все эти элементы организованы в виде иерархической структуры. Это позволяет нам определять размещение файла (или папки, или приложения) через путь. Давайте посмотрим как такой путь выглядит [1].
Вот что поле результата покажет, если я выберу мою папку Documents: «alias «5un5hine:Users:ik:Document5:»
Вы можете видеть путь, который в основном пишется так:
Проследите этот путь на картинке выше (снимок окна Finder) до папки «Documents». Затем, переведите свое внимание на картинку с полем Result. Обратите внимание, что в путях символ двоеточия используется как разделители. Вот почему символ двоеточия не допустим в именах файлов и папок. Попробуйте создать на рабочем столе новую папку и дать ей имя содержащее двоеточие. Наконец, вы можете увидеть, как путь оканчивается двоеточием, которое показывает, что путь относиться к папке.
Используем путь, чтобы приказать Finder’у открыть папку [2].
Как вы сможете увидеть, когда запустите сценарий [2] (не забудьте заменить «ik» на ваш собственное имя в системе), AppleScript будет весьма снисходителен, и не важно укажите ли вы двоеточие в конце пути или нет. Однако, пожалуйста, обратите внимание, что имя жесткого диска должно быть написано строго с учетом регистра. Ай-ай-ай, Apple!
Моя папка «Documents» содержит файл AppleWorks под именем «report». Давайте откроем этот файл [3].
Первое замечание к этому оператору [3.2], он определяет файл («file»), не папку («folder»), потому что мы обращаемся к файлу. Второе замечание, в конце имени пути в имени файла должно быть определено расширение файла. Здесь расширение «cwk», производное от оригинального имени AppleWorks, которое раньше было ClarisWorks.
В Mac OS X расширение файла скрыто по умолчанию. Вы можете найти расширение, выбрав файл и нажав Command-i, чтобы увидеть паспорт этого файла.
Вместо этого, вы можете предпочесть, чтобы расширения файлов были видимыми всегда. Чтобы это сделать, установите соответствующие параметры Finder. Выберите элемент меню «Finder» программы «Finder». В появившемся меню выберите «Preferences» (Параметры).
В окне, которое появится, выберите раздел «Advanced» (Дополнительно) поставьте галочку в чек-боксе «Show all file extensions» (Показывать расширения всех файлов).
Если вы хотите сохранить путь к файлу «report.cwk» в переменной, вы можете сделать это так [4]
Однако, если запустить данный сценарий, результат не будет в таком же формате как вы видели выше. Теперь, он будет выглядеть так:
«document file «report.cwk» of folder «Documents» of folder «ik» of folder «Users» of startup disk of application «Finder»
Такой стиль немного сложнее для чтения, особенно с длинными путями, и хуже всего то, что этот формат распознает только Finder. Вам может больше понравиться, или даже понадобиться, более абстрактное представление пути, использующее двоеточия. Чтобы заставить Finder вернуть его в таком виде, используйте команду «a reference to» (дать ссылку на) [5].
file «Macintosh HD:Users:ik:Documents:reporLcwk» of application «Finder»
Обратите внимание, поле результата говорит, что мы имеем (файл). Пожалуйста, запустите сценарий [6] и выберите тот же файл report.cwk.
Теперь результат будет выглядеть вот так: «alias «Macintosh HD:Users:ik:Documents: report.cwk»
Оно содержит «alias», вместо «file»! Чтобы объяснить различие в AppleScript, давайте сначала обсудим, что такое псевдоним (alias), к которому вы уже привыкли в работе с Finder.
Предположим, что я создал псевдоним на моем рабочем столе на файл «report.cwk», который находится в моей папке «Documents». Если я перемещу файл «report.cwk» из папки «Documents» в другое место, двойной щелчок по псевдониму будет всё так же открывать этот файл. Замечательно! Я могу даже переименовать исходный файл «report.cwk» во что-нибудь другое, например в «funny_story.cwk». Это потому что псевдоним не хранит информацию о размещении (и имени) файла «report.cwk», такую как:
а хранит особый вид идентификатора. Finder обслуживает базу данных этих идентификаторов вместе с текущим месторасположением соответствующих файлов (а также папок, и приложений). Так что, если я перемещу файл «report.cwk», его уникальный идентификатор остается тем же, но Finder внесет изменения во внутреннюю базу данных, отражающие новое местоположение файла. Когда я дважды щелкаю на псевдониме, содержащийся в нем идентификатор используется Finder’ом для поиска файла, соответствующего этому идентификатору, и после Finder открывает нужный файл.
Чтобы создать сценарий, который не прервется в случае, если файл (или папка), на который файл ссылается, был удален или переименован, наш сценарий должен содержать идентификатор (ID) файла (или папки), вместо «жестко-заданного» пути. AppleScript позволяет это сделать [7].
Очень важное замечание по сценарию [7], который ссылается на оригинальный файл, находящийся в папке «Documents», а не на какой-нибудь созданный пользователем псевдоним этого файла, подобный тому, что я предполагал создать на моем рабочем столе. В операторе сценария [7] ключевое слово «alias» показывающее что, после компиляции (т.е. проверка синтаксиса), сценарий запомнит идентификатор файла и, во время исполнения, не будет спрашивать Finder о файле, указанным с помощью пути, а будет основываться на идентификаторе.
Если вы запустите сценарий [7] и проверите результат в поле результата, то увидите следующее:
alias «Macintosh HD:Users:ik:Documents: re port, сwk»
Вы не увидите сам идентификатор. Однако, слово «alias» впереди пути подскажет вам, что сценарий внутри себя работает с идентификатором, а не с «жестко-заданным» путем. Теперь, когда сценарий был скомпилирован, переместите файл «report.cwk» в другое место и запустите сценарий еще раз. Я перенес файл в папку «Miscellaneous» внутри моей папки «Documents». Даже если сам сценарий, и в особенности путь в сценарии [7], не изменяли, результат будет таким
alias «Macintosh HD:Users:ik:Documents:Miscellaneous:report.cwk»
Попытайтесь самостоятельно (еще раз повторю, ваш путь будет выглядеть по другому, потому что ваш логин скорее всего не ik и возможно потому что вы используете другие имена папок)! Если вы сохраните сценарий как скомпилированный сценарий (compiled script) или как программу (AppleScript application), идентификатор сохранится, и в следующий раз, когда вы запустите сценарий, он будет выполнен безупречно даже если вы переместили или переименовали исходный файл. Пусть для вас не будет сюрпризом то, что в сценарии произойдет сбой, если файл удалить.
Подведем итоги. У вас есть два способа, чтобы обращаться с путями в сценарии. Вы можете либо указывать местонахождение файла (жестко задавать, используя file «path here»), либо использовать ключевое слово «alias», чтобы сделать сценарий нечувствительным к перемещениям и переименованиям файла/папки/приложения после компиляции сценария.
Не смотря на то, что часто используется способ с «alias», во время компиляции сценария файл, на который вы ссылаетесь, должен быть там, где вы указали. А также, вы не сможете передать сценарий кому-нибудь еще в виде приложения AppleScript, потому что даже если файл с таким же именем присутствует в аналогичном месте на компьютере этого человека, файл все-равно будет иметь другой идентификатор.
Примечание по сценарию [7]. Лично я был приятно удивлен тем, что всё это работает без блока обращения Finder. Все-таки внутренняя база данных хранящая идентификаторы и местоположения файлов управляется приложением Finder. Потому что только Finder может предоставить нам такую информацию, и AppleScript (компонент MacOS X) знает это, AppleScript по-видимому спрашивает Finder об идентификаторе закулисно или обращается к базе данных напрямую. Это поведение все-таки исключение. Например, открытие файла с использованием пути требует блока обращения (см. сценарий [3]). Это потому что не только Finder может открыть некоторый файл, но также программа, которая этот файл создала, и возможно другая программа тоже. Например, изображение в формате JPEG, может быть открыто программами PhotoShop, Preview и Safary. Блок обращения необходим для точного указания программы, которой будет открываться файл.
Теперь, когда мы знаем как адресовать файлы и папки, мы можем перемещать их всюду или копировать их [8].
Tell application для windows
To set the Desktop window display to the arrangement you have set up, the following script performs a series of 12 commands that open and manipulate the two windows:
tell application «Finder» to close every window
tell application «Finder» to open home
tell application «Finder» to set toolbar visible of the front Finder window to true
tell application «Finder» to set the sidebar width of the front Finder window to 135
tell application «Finder» to set the current view of the front Finder window to column view
tell application «Finder» to set the bounds of the front Finder window to <36, 116, 511, 674>
tell application «Finder» to open folder «Documents» of home
tell application «Finder» to set toolbar visible of the front Finder window to false
tell application «Finder» to set statusbar visible of the front Finder window to true
tell application «Finder» to set the current view of the front Finder window to flow view
tell application «Finder» to set the bounds of the front Finder window to <528, 116, 1016, 674>
tell application «Finder» to select the last Finder window
Don’t bother entering this script in Script Editor. As you see, it is rather long, is very dense, and would take some effort to type into Script Editor. There’s an easier way to compose your scripts.
Notice that the script is a series of tell statements targeting the same application, namely, the Finder.
Instead of writing a group of 12 tell statements , each beginning with tell application «Finder» to , we’ll shorten the time it takes to write the script and make it easier to read by enclosing the commands within a single tell block .
A tell block is used to target multiple actions at a single scriptable object, in this case the Finder application, which makes scripts easier to understand. You’ll always want to use a tell block in your scripts when addressing more than one action at one scriptable object.
A tell block begins with the verb tell followed by a reference to a target object. The various actions to be performed by or to that object are then listed, each on its own line. After all the actions have been entered, the tell block ends with the closing statement end tell . All actions inside the tell block target the object referenced in the first line of the tell block .
Enter, compile, and run the following script as shown, except you may optionally substitute the window bounds values you previously wrote down.
The individual script statements have been placed inside of a tell block targeting the Finder application.
tell application «Finder»
close every window
open home
set toolbar visible of the front Finder window to true
set the sidebar width of the front Finder window to 135
set the current view of the front Finder window to column view
set the bounds of the front Finder window to <36, 116, 511, 674>
open folder «Documents» of home
set toolbar visible of the front Finder window to false
set the current view of the front Finder window to flow view
set the bounds of front Finder window to <528, 116, 1016, 674>
select the last Finder window
end tell
You should now see two Finder windows placed side by side on the Desktop, one in column view, the other in flow view, with your home directory the active window and your Documents folder displayed in the other window. Instant Desktop organization!
We’ll do more with this script in a moment, but first let’s return to the subject of tell blocks . A tell block is a much cleaner, more concise, and easier to read than a series of separate tell statements . Compare the previous script to the same script written as a series of tell statements (top of this page).
It is not only easier to write the script using a tell block , but you can clearly see the relationship between scriptable objects and the commands that target them, because of the indentations automatically placed in the script text by Script Editor when you compile the script. It’s very easy to see where a section of a script targeting a specific object begins ( tell ) and ends ( end tell ).
In summary, tell blocks are easy to use if you remember these simple rules:
- If you begin a tell block , you must end a tell block with an end tell statement.
- Commands within a tell block target the object addressed in the tell block ’s opening statement.
Next we’ll examine to improve and save the Desktop Cleanup script.
Речь, голосовая связь и беседа в Windows 10 Speech, voice, and conversation in Windows 10
Речь может быть эффективным, естественным и приятным способом взаимодействия с приложениями Windows, дополнения или даже замены традиционных интерфейсов взаимодействия на основе мыши, клавиатуры, сенсорного ввода, контроллера или жестов. Speech can be an effective, natural, and enjoyable way for people to interact with your Windows applications, complementing, or even replacing, traditional interaction experiences based on mouse, keyboard, touch, controller, or gestures.
Функции на основе речи, такие как распознавание речи, Диктовка, синтез речи (также известные как преобразование текста в речь или TTS), и диалоговые речевые помощники (например, Кортана или Алекса) могут предоставлять доступ к доступным и инклюзивным пользователям, что позволяет пользователям использовать ваши приложения, когда другие устройства ввода могут оказаться недостаточными. Speech-based features such as speech recognition, dictation, speech synthesis (also known as text-to-speech or TTS), and conversational voice assistants (such as Cortana or Alexa) can provide accessible and inclusive user experiences that enable people to use your applications when other input devices might not suffice.
На этой странице содержатся сведения о том, как различные платформы разработки Windows обеспечивают распознавание речи, синтез речи и поддержку сообщений для разработчиков, создающих приложения Windows. This page provides information on how the various Windows development frameworks provide speech recognition, speech synthesis, and conversation support for developers building Windows applications.
Документация по определенным платформам Platform-specific documentation
Универсальная платформа Windows (UWP) Universal Windows Platform (UWP)
Создавайте приложения с поддержкой речи на современной платформе для приложений и игр Windows 10, на любом устройстве Windows (включая ПК, телефоны, Xbox One, HoloLens и др.) и публикуйте их в Microsoft Store. Build speech-enabled apps on the modern platform for Windows 10 applications and games, on any Windows device (including PCs, phones, Xbox One, HoloLens, and more), and publish them to the Microsoft Store.
Voice Commands кортаны Cortana voice commands
(не поддерживается в Windows 10, возможно, 2020 обновление и более поздние версии) (not supported in Windows 10 May 2020 Update and newer)
Платформа Win32 Win32 platform
Разрабатывайте приложения с поддержкой речи для настольных систем и Windows Server с помощью средств, сведений и примеров модулей и приложений, предоставляемых здесь. Develop speech-enabled applications for Windows desktop and Windows Server using the tools, information, and sample engines and applications provided here.
.NET Framework .NET Framework
Разрабатывайте приложения и средства со специальными возможностями на установленной платформе для управляемых приложений Windows с помощью модели пользовательского интерфейса XAML и .NET Framework. Develop accessible apps and tools on the established platform for managed Windows applications with a XAML UI model and the .NET Framework.
Службы распознавания речи Azure Azure speech services
Интегрируйте речевую обработку в приложения и службы. Integrate speech processing into apps and services.
Устаревшие функции Legacy features
Устаревшие, устаревшие и (или) неподдерживаемые версии технологий Microsoft Speech и CONVERSATION. Legacy, deprecated, and/or unsupported versions of Microsoft speech and conversation technology.
В рамках нашей цели, чтобы преобразовать современные возможности повышения производительности путем встраивания Кортаны в Microsoft 365, мы отменяем платформу разработчика для кортаны Skills Kit и все навыки, основанные на этой платформе. As part of our goal to transform the modern productivity experiences by embedding Cortana deeply into Microsoft 365, we are retiring the Cortana Skills Kit developer platform and all skills built on this platform.
Примеры Samples
Загрузите и запустите полные примеры Windows, демонстрирующие различные компоненты и функции специальных возможностей. Download and run full Windows samples that demonstrate various accessibility features and functionality.
Новый браузер образцов (заменяет коллекцию кода MSDN). The new samples browser (replaces the MSDN Code Gallery).
В этих примерах демонстрируются функциональные возможности и модель программирования для Windows и Windows Server. These samples demonstrate the functionality and programming model for Windows and Windows Server.
В этих примерах демонстрируются шаблоны использования API для универсальной платформы Windows (UWP) в пакете средств разработки программного обеспечения (SDK) для Windows 10. These samples demonstrate the API usage patterns for the Universal Windows Platform (UWP) in the Windows Software Development Kit (SDK) for Windows 10.
В этом приложении демонстрируются различные элементы управления Xaml, поддерживаемые в системе Fluent Design. This app demonstrates the various Xaml controls supported in the Fluent Design System.
Видео Videos
Различные видеоматериалы, посвященные созданию приложений Windows, которые включают речевое взаимодействие. Various videos covering how to build Windows applications that incorporate speech interactions.
Подробная информация о платформе кортаны и речи Cortana and Speech Platform In Depth
Расширяемость кортаны в универсальных приложениях Windows Cortana Extensibility in Universal Windows Apps
Другие источники Other resources
Блоги и новости Blogs and news
Новейшее из мира Microsoft Speech. The latest from the world of Microsoft speech.
Сообщество и поддержка Community and support
Где разработчики и пользователи Windows могут встретиться и изучать вместе. Where Windows developers and users meet and learn together.