Есть ли способ изящно закрыть работающее приложение через меню / панели инструментов Visual Studio? - PullRequest
0 голосов
/ 11 мая 2018

Есть ли способ изящно закрыть работающее приложение (например, ввести сообщение WM_CLOSE) с помощью команд меню / панели инструментов Visual Studio (я использую 2013)?

Очевидно, это не сработает, если вы остановились на точке останова, если только вы не продолжите.

Я спрашиваю, потому что мое приложение часто не отображается (покрыто другим приложением), пока я отлаживаю и, возможно, не после того, как продолжаю. Использование «Stop Debugging» немедленно останавливает приложение, насколько я понимаю. Таким образом, HttpListener, который я использую, например, не останавливается и не закрывается красиво. Чтобы снова подключиться в другом сеансе, необходимо прыгнуть через браузер через пяльцы.

Я подумал об использовании чего-то вроде AutoHotkey. Есть ли решения вне меню Инструменты-Внешние инструменты?

Даже если внешние инструменты - единственный способ сделать это, я не нашел способа получить исполняемый файл в качестве аргумента. Я могу приблизиться к $ (BinDir), но он основан на активном файле.

1 Ответ

0 голосов
/ 11 мая 2018

Вот неуклюжее решение, использующее внешние инструменты Visual Studio для файла bat, который вызывает скрипт AutoHotkey (AHK).Было бы лучше, если бы вы могли надежно получить путь к исполняемому двоичному файлу:

Ограничения:

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

Инструменты меню Visual Studio Инструменты-Внешние инструменты ...:
Заголовок: Close Program
Команда: <path to bat file>
Аргументы: $(BinDir)$(TargetName).vshost$(TargetExt)

Файл летучих мышей

@echo off
"<Path to AHK script>" %1

AutoHock

Path := A_Args[1]
WinClose, ahk_exe %Path%
...