2016-04-14 8 views
1

Ich habe eine Tcl Wunsch Shell als Tcl-Interpreter, wo ich console hide Befehl ausgeführt. So wurde die Konsole unsichtbar, aber der Prozess ist im Aufgabenmanager vorhanden. Ist ihr Weg, um wieder Konsole zu bekommen. Wir haben console show aber wo soll es laufen?Wie komme ich zurück Wunsch Shell nach Konsole ausblenden

Attaching 8.6 wish shell with hide console option

Antwort

3

Haben Sie eine Tk gui, die Sie mit interagieren können? Wenn dies der Fall ist, besteht eine Option darin, einen Schlüssel zu binden, so dass er, wenn er in Ihrer GUI gedrückt wird, die Konsole öffnet. Z.B. Wenn das Toplevel-GUI-Fenster "." und Sie wählen Taste F2, fügen Sie den folgenden auf Ihre Tk-Code:

bind . <F2> {console show} 
1

vielleicht ein bisschen die schwere Hand Ansatz sein, aber das funktioniert, wenn Sie die TWAPI Paket und die PID des Prozesses haben:

% package require twapi 
4.1.27 

lässt Jetzt bekommen die Fenstergriffe für die PID zur Verfügung:

% set w [twapi::get_toplevel_windows -pid 2432] 
{197612 HWND} {6 HWND} {590378 HWND} {0 HWND} {327716 HWND} {132098 HWND} {132094 HWND} {393624 HWND} 

Eines dieser Fenster sollte die versteckte Konsole sein:

% foreach win $w { 
> puts "[twapi::get_window_text $win] Handle: $win" 
> } 
Konsole Handle: 197612 HWND 
TclNotifier Handle:6 HWND 
wish Handle: 590378 HWND 
E Handle:0 HWND 
M Handle: 327716 HWND 
TtkMonitorWindow Handle: 132098 HWND 
MSCTFIME UI Handle: 132094 HWND 
Default IME Handle: 393624 HWND 

Dies ist ein deutsches Fenster, so dass für mich die Konsole die richtige ist, lässt sie zeigen wieder:

% twapi::show_window {197612 HWND} 
1 

Und nun die Konsole zurück, und Sie können es verwenden.

+0

Das ist cool. Aber das einzige Problem ist, dass ich, sobald ich die Konsole ausblenden auf der Haupt-Wunsch-Shell gemacht habe, die frische neue Shell neu starten muss, um den obigen Prozess auszuführen, um die vorherige Konsole sichtbar zu machen. Können wir die neue Shell wieder neu starten? – Dcode

+0

Wenn Sie den Code ändern können, verwenden Sie einfach den in der anderen Antwort von @Colin vorgeschlagenen Code. Diese Antwort ging davon aus, dass Sie sich selbst aus dem Prozess ausgeschlossen haben und JETZT eine Konsole zurückbekommen müssen. – schlenk

+0

meine Wunschschale ist etwas angepasst. Daher wird das Toplevel-Fenster zum Zeitpunkt des Starts selbst zurückgezogen. Deshalb hat die Bindung für mich nicht funktioniert. Die Arbeit um ich denke, ist es, den Zustand der Toplevel-Fenster auf normal zu ändern, sobald Konsole aus dem Wish-Datei-Menü zu verbergen – Dcode

Verwandte Themen