1

Если я создаю ярлык Windows 8 для консольного приложения и задаю клавишу быстрого доступа (см. Снимок экрана ниже), то использование этого ярлыка, когда приложение уже открыто, больше не будет открывать приложение, а скорее переключит фокус на окно, содержащее запущенный приложение.

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

Итак, есть ли способ сделать так, чтобы сочетания клавиш для консольного приложения всегда открывали новое приложение?

Решения этого вопроса StackOverflow, по- видимому, предполагают, что использование start cmd /c для запуска соответствующего приложения может быть полезным, но в случае с ярлыками это не помогает.

1 ответ1

1

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

Когда вы устанавливаете горячую клавишу в свойствах ярлыка, Windows применяет эту горячую клавишу к окну (WM_SETHOTKEY), которое создает приложение. Конечно, это ведет к наблюдаемому поведению. Если приложение уже запущено - ярлык обрабатывается "окном приложения", а запущенный экземпляр просто фокусируется. Но при двойном нажатии на ярлык - Windows не обрабатывает горячие клавиши.

С другой стороны, для неконсольных приложений нажатие клавиш быстрого вызова откроет новое окно, даже если оно уже открыто.

Это потому, что эти приложения игнорируют сообщение WM_SETHOTKEY . И это может рассматриваться как ошибка этих приложений.

использование start cmd /c ... для запуска соответствующего приложения может быть полезным, но в случае с ярлыками это не помогает.

Это самое простое решение. Почему тебе не нравится это?

Вы можете запустить оболочку как

start "your bash" cmd /c sh.exe"

И настроить цвета через свойства окна консоли (не ярлык). После этого цвета будут применяться к новым экземплярам.

Или вы можете попробовать ConEmu. Есть много вариантов, например, функция терминала по умолчанию .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .