Öffnen der Windows-Konsolenanwendung in einem neuen Fenster mit der Tastenkombination

369
fuglede

Wenn ich eine Windows 8-Verknüpfung für eine Konsolenanwendung erstelle und eine Tastenkombination setze (vgl. Abbildung unten), wird die Anwendung bei bereits geöffneter Anwendung nicht erneut geöffnet, sondern der Fokus wird in das Fenster verschoben, in dem die Ausführung ausgeführt wird Anwendung.

Dieses Verhalten unterscheidet sich von dem, was passiert, wenn ich einfach die Tastenkombination öffne, ohne die Tastenkombination zu drücken. In diesem Fall wird eine neue Anwendung geöffnet. Wenn Sie jedoch keine Konsolenanwendungen verwenden, wird durch Drücken der Tastenkombination ein neues Fenster geöffnet, selbst wenn eines bereits geöffnet ist.

Gibt es eine Möglichkeit, die Tastenkombinationen für eine Konsolenanwendungsverknüpfung immer dazu zu verwenden, eine neue Anwendung zu öffnen?

Die Lösungen für diese StackOverflow-Frage scheinen zu vermuten, dass die Verwendung start cmd /cder Anwendung zum Ausführen der entsprechenden Anwendung zwar hilfreich sein könnte, aber bei Verknüpfungen scheint das nicht zu funktionieren.

enter image description here

1
Es ist möglich, dass die Tastenkombination von Ihrer Konsolenanwendung abgefangen und stattdessen dort verwendet wird. Klicken Sie auf die Taskleiste oder auf eine andere Stelle außerhalb der App, und drücken Sie zur Bestätigung die Tastenkombination. Ändern Sie auch die Tastenkombination, um sie zu bestätigen. LPChip vor 6 Jahren 1
@LPChip: Danke für den Kommentar. Es wurde versucht, den Fokus auf eine andere Anwendung zu ändern, und die Auswirkung der Verknüpfung wird immer dazu führen, dass die Konsolenanwendung den Fokus erhält. Wenn die Anwendung beispielsweise minimiert ist, wird das Fenster durch Drücken der Tastenkombination wiederhergestellt. Ich habe es mit ein paar anderen Tastenkombinationen versucht, z. B. STRG + ALT + æ und STRG + ALT + TREMA, was dasselbe Verhalten ergibt. fuglede vor 6 Jahren 0
Wenn Sie die Verknüpfung in eine .bat-Anweisung ändern, die `start C: \ ... \ sh.exe` aufruft, wird für jeden Aufruf ein neues Fenster erstellt. Am Ende erscheint jedoch eine neue Standardkonsole, die nicht das gewünschte Verhalten darstellt. fuglede vor 6 Jahren 0
Benötigen Sie wirklich eine Tastenkombination? Wenn nicht, probieren Sie diese Methode aus: Halten Sie nach dem Laden der App die Umschalttaste gedrückt, und klicken Sie in der Taskleiste auf die App. Möglicherweise müssen Sie die App zuerst an die Taskleiste anheften. LPChip vor 6 Jahren 0
Ja, die Idee wäre, einen Workflow nur für die Tastatur zu unterstützen. Die zweitbeste Lösung, die ich finden könnte, wäre, die Anwendung zu PATH hinzuzufügen und sie nur mit Win + R -> name zu starten. Da dies jedoch für Nicht-Konsolenanwendungen funktioniert, hätte ich mir gedacht, dass es in diesem Fall auch irgendwie möglich ist. fuglede vor 6 Jahren 0

1 Antwort auf die Frage

1
Maximus

Wenn Sie diese Verknüpfung verwenden, während die Anwendung bereits geöffnet ist, wird die Anwendung nicht erneut geöffnet, sondern der Fokus wird auf das Fenster mit der laufenden Anwendung geändert.

Wenn Sie in den Verknüpfungseigenschaften einen Hotkey festlegen, wendet Windows diesen Hotkey auf das Fenster ( WM_SETHOTKEY ) an, das die Anwendung erstellt. Das führt natürlich zu beobachtetem Verhalten. Wenn die App bereits gestartet ist, wird die Verknüpfung "vom Anwendungsfenster" verarbeitet und die gestartete Instanz wird nur fokussiert. Wenn Sie jedoch auf die Verknüpfung doppelklicken, verarbeitet Windows den Hotkey nicht.

Wenn Sie jedoch keine Konsolenanwendungen verwenden, wird durch Drücken der Tastenkombination ein neues Fenster geöffnet, selbst wenn eines bereits geöffnet ist.

Dies liegt daran, dass diese Anwendungen die WM_SETHOTKEY- Nachricht ignorieren . Und dies kann als Fehler dieser Anwendungen betrachtet werden.

Die Verwendung start cmd /c ...der Anwendung zum Ausführen der entsprechenden Anwendung ist möglicherweise hilfreich, aber bei Verknüpfungen scheint das nicht zu funktionieren.

Das ist die einfachste Lösung. Warum magst du es nicht?

Sie können die Shell als ausführen

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

Und konfigurieren Sie Farben über die Eigenschaften des Konsolenfensters (keine Verknüpfung). Danach werden Farben auf neue Instanzen angewendet.

Oder versuchen Sie es mit ConEmu. Es gibt viele Optionen, zum Beispiel die Funktion " Standardterminal" .

Vielen Dank. In Bezug auf die Startlösung bin ich kein Fan, da ein neues Fenster ohne die anderen Einstellungen (Puffergröße, Farben, ...) erstellt wird, die als Teil der Verknüpfung festgelegt werden. Gibt es eine Möglichkeit, diese zu behalten? fuglede vor 6 Jahren 0
Antwort aktualisiert Maximus vor 6 Jahren 0
Worauf bezieht sich "your bash" hier (mit dem Hinweis, dass das Ausführen von "sh" dem Ausführen von bash als Nicht-Login-Shell entspricht)? fuglede vor 6 Jahren 0
Es ist nur ein von Ihnen bevorzugter Name der Konsole. Unter diesem "Namen" werden Ihre Farben gespeichert. Maximus vor 6 Jahren 0
Ah, schlau! * Etwas ärgerlich, dass es ein weiteres Fenster erstellt und sofort zerstört, aber es schlägt noch alle Alternativen. fuglede vor 6 Jahren 0
Wenn Sie in den Verknüpfungseigenschaften "Minimiert ausführen" einstellen, blinken diese nicht Maximus vor 6 Jahren 0
Das stimmt, ausgezeichnet! fuglede vor 6 Jahren 0