Взаимодействие с диалогами в VS2010 с помощью Macro Recorder (использование Visual Studio Macro Recorder для автоматического ввода нажатий клавиш)
В одном из моих других вопросов я спросил о ярлыке для включения определенной функции в IDE VS2010. Похоже, что единственный способ добиться этого - использовать Macro Recorder, который я, к сожалению, никогда не использовал (так как он выглядит довольно мощно!).
Простой способ сделать мой макрос - запустить рекордер с помощью сочетания клавиш CTRL + SHIFT + R, затем перейти к "Отладка -> Исключения", отметьте все нужные поля, нажмите "ОК" и затем остановите рекордер. К сожалению, все, что я вижу, это то, что он открывает окно исключений, и не более того.
Я подумал, что если Macro Recorder не записывает события мыши, то, конечно, он должен записывать события клавиатуры, но я тоже ошибался в этом. После редактирования моего TemporaryMacro я увидел, что единственное, что он делает, это
DTE.ExecuteCommand("Debug.Exceptions")
Что я действительно хочу сделать, так это добавить метод, который может вводить нажатия клавиш, такие как DOWN, ALT + T и ENTER.
Я погуглил как сумасшедший, прошел MSDN и проверил здесь на SO. Мне стыдно сказать, что я не смог найти в DTE никакой информации об объекте, которая позволяла бы мне отправлять нажатия клавиш! Надеюсь, кто-то здесь будет знать, как это сделать!
Это самая близкая вещь, которую я нашел к документу, касающемуся автоматизации нажатия клавиш: http://msdn.microsoft.com/en-us/library/8h31zbch.aspx
Изменить: я понял, как отправлять нажатия клавиш, но как вы можете отправить их во всплывающие диалоги???
Вот код, который я попробовал:
Public Module RecordingModule
Sub TemporaryMacro()
DTE.ExecuteCommand("Debug.Exceptions")
System.Windows.Forms.SendKeys.SendWait("+{TAB}")
System.Windows.Forms.SendKeys.SendWait("{DOWN}")
System.Windows.Forms.SendKeys.SendWait("%T")
System.Windows.Forms.SendKeys.SendWait("{ENTER}")
End Sub
End Module
Я не мог заставить его работать, поэтому я попытался отладить, и тогда я понял, что происходит - SendWait
не вызывается до тех пор, пока диалог не будет закрыт.
Так кто-нибудь знает, как использовать Macro Recorder для взаимодействия с всплывающими диалогами с помощью клавиатурных команд?
2 ответа
Взгляните на мою попытку: ссылка на решение Я использовал таймер отправки клавиш в диалог...
Я не думаю, что вы можете отправить нажатия клавиш в диалоговом окне.
Я бы рекомендовал вам взглянуть на AutoHotKey, оттуда вы можете определить взаимодействия с диалоговыми окнами. Он работает вне Visual Studio, так что вы, вероятно, найдете для него еще много применений.