Проблемы, связанные с записью и запуском макроса

Далее представлен список проблем, которые могут возникнуть при записи или выполнении макросов в Visual Studio.

Проблемы, связанные с записью макроса

Во время записи макроса среда отслеживает изменение элементов и нажатие кнопок и на основании этих данных создает макрокод. Однако можно записать не каждый элемент пользовательского интерфейса или событие. Запись макроса ограничена следующими элементами:

  • редакторы текста/кода, например, редактор кода Visual Studio;

  • команды и пункты меню Visual Studio; По умолчанию Visual Studio записывает вызов команд по имени, если эти команды в свою очередь не создают кода для модели автоматизации, связанной с конкретной особенностью UI;

  • общие окна инструментов представлений в виде дерева, например окна обозревателя решений;

  • диалоговое окно "Добавление элемента";

  • диалоговые окна "Найти и заменить";

  • общие события, связанные с окнами, такие как активация или закрытие окна.

Если во время записи макроса пришлось оперировать элементом среды, для которого генерация макрокода не происходит, и это было выполнено без стандартной команды среды (например, редактирование поля ввода в диалоговом окне), в записанном макросе возникнет пропуск и, следовательно, он не будет работать так, как ожидалось.

В этом случае можно вручную отредактировать макрос и, в большинстве случаев, добавить необходимый код самостоятельно. Дополнительные сведения о том, как это сделать, см. в разделе Практическое руководство. Изменение и программное создание макросов.

Во время записи макроса некоторые команды недоступны, например быстрый поиск (ISearch) и пользовательская модель записывающего проекта и записывающего модуля.

При записи макроса в редакторе кода или текстовом редакторе щелчки мыши или другие события, связанные с мышью, не записываются.

Примечание

В настоящее время макросы VS не поддерживают формы Windows Forms.

Проблемы, связанные с выполнением макроса

  • Если родительский проект макроса не может быть построен, например из-за ошибок в другом макросе этого проекта, макрос выполнить нельзя.

    Макросы сохраняют значения своих переменных между своими выполнениями, но не между сеансами интегрированной среды разработки (IDE). Например, если макрос увеличивает значение счетчика при каждом своем выполнении, это значение будет сохранено между вызовами макроса, но будет утеряно при закрытии IDE Visual Studio.

  • Если макрос выполняется в обозревателе макросов, среда принимает последнее активированное окно за последнее окно, открытое непосредственно перед открытием обозревателя макросов, и запускает макрос так, как будто это окно находится в фокусе. Это исключает возникновение проблем при непреднамеренном попадании в фокус окна самого обозревателя макросов во время выполнения макроса.

См. также

Ссылки

Окно "Обозреватель макросов"

Основные понятия

Автоматизация повторяющихся действий с помощью макросов

Проблемы, связанные с безопасностью макросов и общим доступом