Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.192.95.161] |
|
Сообщ.
#1
,
|
|
|
Добрый день.
Прошу помощи. Смысл в чем - пишу аналог Putty Connection Manager. Putty - это терминал для подключения по телнету и ssh. Putty Connection Manager - приложение которое запускает несколько экземпляров терминала Putty у себя в окне. Сам он не нравится по нескольким причинам. Вопрос в чем - как правильно запустить стороннее приложение, что бы оно отобразилось например в TTabSheet моей формы и убрать бордюр. Запускаю, устанавливаю парентом TTabSheet. Все хорошо - но, никак не получается убрать WS_BORDER и WS_CAPTION. Если делаю WS_POPUP - получается окно без бордюра, но проблема со скролом. Перепробовал кучу всего - понимаю, что что то делаю не так. Еще когда парентом делаю свой TTabSheet, окно нормально отображается в пределах TTabSheet, но когда оно активно, основная форма почему то неактивна становится. Чую тут где то собака порылась. Получается нормально отобразить, только если нажать в самом putty fullscreen. Тогда он разворачивается как надо. Вот как это выглядит в Putty Connection Manager Прикреплённая картинка
Вот что получается у меня. Прикреплённая картинка
Может кто подскажет умную мысль. |
Сообщ.
#2
,
|
|
|
Цитата sat_art @ Putty Connection Manager - приложение которое запускает несколько экземпляров терминала Putty у себя в окне. sat_art, а этот Мanager точно запускает именно putty ? --- Есть ещё такой вариант - используем не сам putty, а plink из putty-набора. Это клиент командной стороки. Plink можно запускать с перехватом ввода/вывода без показа консольного окна. И тогда рисуй что и как хочешь в своих окошках. Типовые (для тебя) операции с сервером можно будет вообще выполнять одним щелчком мыши, поскольку можно будет автоматизировать выдачу серии запросов (с контролем ответов). |
Сообщ.
#3
,
|
|
|
ЫукпШ точно PuTTY.
Я думал над вариантом plink - но городить свое окно терминала с разбором входящих символов намного сложнее. Да - это уже и приложение немного другого уровня получается, которое наворачивай и наворачивай. Но так там и до организации ssh недалеко, и нафиг тогда вообще тот PuTTY. |
Сообщ.
#4
,
|
|
|
Цитата sat_art @ Вопрос в чем - как правильно запустить стороннее приложение, что бы оно отобразилось например в TTabSheet моей формы и убрать бордюр. sat_art, можно посмотреть исходники Putty Connection Manager. Вот ещё ссылка 1, 2 - там по исходнику комментарий: ... // убрать рамку окна SetWindowLong(appHandle, GWL_STYLE, WS_VISIBLE); ... |
Сообщ.
#5
,
|
|
|
ЫукпШСпасибо.
Исходников я не нашел. А по ссылке - все это давно перепробовал, все получается кроме убрать рамку. Уже смотрю в сторону CreatePseudoConsole. Добавлено После SetWindowLongPtr(hwnd, GWL_STYLE,WS_VISIBLE) GetWindowLongPtr(hwnd, GWL_STYLE) дает 0x10E40000 - WS_VISIBLE|WS_BORDER|WS_DLGFRAME|WS_VSCROLL|WS_SIZEBOX Если по одному пытаться выключить - не выключается WS_BORDER и WS_DLGFRAME. Добавлено Тонкая рамка вокруг окна пропадает. А вот заголовок окна нет. |
Сообщ.
#6
,
|
|
|
Исходники Putty Connection Manager
Это можно обнаружить отсюда ----- Вот, посмотри - у этого автора всё получилось: Попробуй не Tab - контрол, а просто "панель". Как на этой картинке. |
Сообщ.
#7
,
|
|
|
Цитата ЫукпШ @ Попробуй не Tab - контрол, а просто "панель". Как на этой картинке Пробовал даже просто в форму - нет. |
Сообщ.
#8
,
|
|
|
Вот получилось
SetWindowPos(hwnd, HWND_TOP, 0, 0, Width, Height, SWP_FRAMECHANGED); SetWindowLongPtr(hwnd, GWL_STYLE,WS_VISIBLE|WS_MAXIMIZE|WS_VSCROLL); Вроде и до этого так же пробовал. Х.З. короче. Теперь у меня свой Putty Connection Manager - назовем его Putty Multiple Connection. ЫукпШ спасибо за помощь. |