У меня есть оболочка tcl wish в качестве интерпретатора Tcl, где я выполнил команду console hide
. Итак, консоль стала невидимой, но процесс существует в диспетчере задач. Есть ли у них способ снова получить консоль. У нас есть console show
но где его запустить?
Как вернуть оболочку желаний после скрытия консоли
Ответы (2)
У вас есть графический интерфейс Tk, с которым вы можете взаимодействовать? Если это так, один из вариантов - привязать клавишу, чтобы при нажатии в вашем графическом интерфейсе она открывала консоль. Например. если окно графического интерфейса верхнего уровня "." и вы выбираете клавишу F2, добавьте следующее в свой код Tk:
bind . <F2> {console show}
person
Colin Macleod
schedule
14.04.2016
Возможно, это немного жесткий подход, но он работает, если у вас есть TWAPI пакет и PID процесса:
% package require twapi
4.1.27
Теперь давайте получим дескрипторы окна, доступные для PID:
% set w [twapi::get_toplevel_windows -pid 2432]
{197612 HWND} {132106 HWND} {590378 HWND} {132100 HWND} {327716 HWND} {132098 HWND} {132094 HWND} {393624 HWND}
Одно из этих окон должно быть скрытой консолью:
% foreach win $w {
> puts "[twapi::get_window_text $win] Handle: $win"
> }
Konsole Handle: 197612 HWND
TclNotifier Handle: 132106 HWND
wish Handle: 590378 HWND
E Handle: 132100 HWND
M Handle: 327716 HWND
TtkMonitorWindow Handle: 132098 HWND
MSCTFIME UI Handle: 132094 HWND
Default IME Handle: 393624 HWND
Это немецкий виндовс, так что мне подходит Konsole
, давайте еще раз покажем:
% twapi::show_window {197612 HWND}
1
И теперь консоль вернулась, и вы можете ею пользоваться.
person
schlenk
schedule
15.04.2016
Это здорово. Но единственная проблема заключается в том, что после того, как я скрыл консоль в основной оболочке желаний, мне нужно перезапустить новую новую оболочку, чтобы запустить описанный выше процесс, чтобы сделать предыдущую консоль видимой. Можем ли мы снова избавиться от перезапуска новой оболочки?
- person Dcode; 18.04.2016
Если вы можете изменить код, просто используйте код, предложенный в другом ответе @Colin. Этот ответ предполагает, что вы заблокировали себя от процесса и вам нужно вернуть консоль СЕЙЧАС.
- person schlenk; 18.04.2016
оболочка моего желания немного настроена. таким образом, окно верхнего уровня закрывается во время самого запуска. вот почему привязка не работает для меня. Я думаю, что обходной путь заключается в том, чтобы изменить состояние окна верхнего уровня на нормальное, как только скрытие консоли будет выполнено из меню файла желаний.
- person Dcode; 19.04.2016