File Release Notes and Changelog
Release Name: 1.10
Notes:
это консольный менеджер
его основная задача - заставить работать несколько консольных
приложений в одном консольном окне, при этом приложения не
подозревают о существовании друг друга.
как пользовать:
1. для начала скопируйте файлы console_server.exe и infis.dll
в один фолдер
2. запустите console_server.exe [имя_файла] (если вы не укажете
имя файла то вместо него будет подставлено cmd.exe)
Замечание: имя_файла будет использоваться в дальнейшем описании
работы программы
3. вы увидите как работает программа имя_файла но... в заголовке
окна вместо текста "заголовок" будет нечто "[1/1] заголовок" - это
один из побочных сервисов программы :)
вероятно у вас возник вопрос: ну что это за х..ня? правильно,
самое вкусное впереди:
4. нажимайте Ctrl,Ctrl+n (нажмите Control, отпустите Control,
нажмите Control+n, причем n - это не цифра, а именно n, буква)
упс... в заголовке появилась надпись типа "[2/2] заголовок2"
вооот, уже интереснее...
данная комбинация создает еще один процесс с именем имя_файла но
в другой консоли, и, соответственно, переключается в эту консоль
5. нажимайте Ctrl,Ctrl+Tab. после этого вы вернетесь в предыдущюю
консоль, при этом вторая консоль будет жить и зравствовать дальше
эта комбинация позволяет прокручивать все консоли, завязанные на
данное консольное окно, по кругу
6. чтобы не мучаться жать Ctrl,Ctrl+Tab если у вас много консолей можно
нажать Alt,Alt+FN (здесь N - это номер функциональной клавиши), тогда
вы перепрыгните прямиком на консоль с номером N (если таковая есть)
7. вы также можете запустить новое приложение в другой консоле, для
этого достаточно в командную строку приложения добавить параметр
"-new_console" (кавычки можно не ставить), при этом приложение
будет создано в новой консоли и параметр "-new_console" до
него не дойдет
чуть не забыл...
8. Ctrl,Ctrl+F12 - вызывает процесс с именем %ComSpec% в новой консоли
9. если дабл-кликнуть мышью в титл окна то окно распахнется на весь екран
10.и еще, для продвинутых: комбинации кнопочек мона перенастроить, для этого
достаточно пихнуть в реестр ключ "SOFTWARE\HoopoePG" (HKLM или HKCU,
если будут оба - то возмется HKCU), и забить туда некоторые значения
типа REG_BINARY.
значения ключей:
"List" - переназначение циклической прокрутки консолей (Ctrl,Ctrl+Tab)
"NewConsole" - переназначение создание новой консоли с параметром
имя_файла, см. выше (Ctrl,Ctrn+n)
"ComSpec" - переназначение создание новой консоли с процессом в %ComSpec%
переменной
"ConsoleN" (N - число от 1 до 12, например "Console1") - переназначение
прямого указания консоли номер N (Alt,Alt+FN)
"VertInc" - увеличение окна по вертикали
"VertDec" - уменьшение окна по вертикали
"HorInc" - увеличение окна по горизонтали
"HorDec" - уменьшение окна по горизонтали
формат записи такой: тип записи - REG_BINARY
последовательность байт: нажатие/отпускаие код_клавиши
например как выглядит последовательность Ctrl,Ctrl+Tab:
01 11 00 11 01 11 01 09
^^^^^ ^^^^^ ^^^^^ ^^^^^
Ctrl Ctrl Ctrl Tab
нажат отпущ нажат нажат
-----------------------------
или как выглядит Alt,Alt+F1:
01 12 00 12 01 12 01 70
^^^^^ ^^^^^
Alt F12
нажат нажат
Замечание: последняя нажатая клавиша в последовательности не передается
приложению, т.е. во второй последовательности приложение получит лишь
ту часть последовательности, которая предшествует последней нажатой кнопке
01 12 00 12 01 12 | 01 70
^^^^^ | ^^^^^
Alt | F12
нажат | нажат
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^
эту часть прилада эта часть будет
увидит обработана сервером
никто ее не получит
при переключении консоли все буфера консольного ввода сбрасываются
и еще, код кнопочки с флажком (которая между альтом и контролом) - 0x5b :)
(намек на вешанье консолей на "флажок+цифра" :) )
с версии 1.7 добавлена поддержка клавишных комбинаций, т.е. можно вставить
такие значения:
07 5b 31 - winkey+1
07 - магическое число (обозначает что это комбинация, а не последовательность)
5b - код win key
31 - код кнопочки 1
вот и все. желаю вам творческих узбеков
Changes:
версия 1.10
1. пофиксен баг - при запуске некоторых прог (поймано на
цигвиновых прогах), если не находятся dll-ки стартующий
процесс нафиг зависал... в текущем варианте происходит
ожидание и, если процесс не реагирует, свитчер забивает
на этот созданный процесс
2. пофиксен баг - если попытаться прочитать infis.dll, тот,
который уже загружен, такая фигня получалась... он сам
себя парсил и себе же точки входа в длл правил....
версия 1.9
1. добовлен новый параметр создания процесса - "-new_console+".
если создается процесс с таким параметром то новый процесс
создается в новой консоле, но создающему процессу возвращаются
реальные данные о создаваемом процессе
2. добавлена обработка функции SetConsoleActiveScreeBuffer
(ретактор FTE пользовал такую штуку). теперь даже если
процесс создает свой буфер вывода и активизирует его то
сервер это почти корректно отображает :)
3. добавлена поддержка изменения размера окна с клавиатуры (по
дефолту Ctrl,Ctrl+стрелки, в reg-файле Winkey+стрелки)
версия 1.8
1. пофиксил серьезный буг - при переключении консоли методом
листания (winkey+q) была вероятность повесить текущую
консоль
2. на некоторых системах мигало несколько курсоров (бага
виндов). теперь курсоры на неактивных консолях принудительно
гасятся... мелочь - а приятно :)
версия 1.7
1. портировал под вынь98/ME (ну и фигня этот масдай...)
работают только Фары, если запущен еще какой-нить
16-ти битный процесс - то все консоли залипают...
2. пофиксены мелкие баги, найденные в процессе портирования
3. добавлена поддержка клавиатурных комбинаций. теперь можно
указывать не только последовательность нажатий/отпусканий
кнопочек, но и комбинации всяких кнопочек. подробнее
смотреть ридми (в конце файла)
версия 1.6
1. добавил поддержку отстрела консоли консольным приложением
(FreeConsole, фар b4 умеет такое делать)
2. пофиксил мелкий баг - если из фара b4 пустить консольную
приладу, которая опрашивает консоль на предмет ввода, то при
создании новой консоли (winkey+w) в некоторых случаях
создавалось две консоли
3. еще немного переделал код внедрения... теперь все махинации
над создаваемым процессом производятся в стеке процесса
(есть вероятность портирования под масдай)
4. переделал механику распахивания окон. теперь переключение
с распахнутого окна на свернутое и обратно (в любых
комбинациях) работает более корректно
версия 1.5
1. пофиксил баг: под XP обработка Ctrl+C велась не
совсем корректно... не все процессы получали Ctrl+C
нотификацию
версия 1.4
1. еб$%^@ый виндовс... нафиг пределал внедрение кода
в создаваемый процесс. теперь все внедрение происходит
в основном потоке программы...
версия 1.3
1. пофиксил багу всплывшую при прикручивании распахивания
окна. теперь при переключении на несуществующую консоль
сервер не падает :)
2. немного переделал внедрение кода в чужой процесс,
теперь если запущенная прога не является консольной то
никакой дополнительной работы с ней не ведется (а раньше
туда все равно внедрялась infis.dll которая просто
тихо-мирно сидела и ничего не делала)
версия 1.2
1. убран ненужный dead-lock (остался от ранней версии
свитчера), в следствии чего разогнался процесс
запуска новых программ из-под свитчера
2. пофиксена мелкая бага: при запуске новой прилады в
новой консоли (с параметром -new_console) из
максимизированного окна дефолтные размеры созданной
консоли становились равными размером максимизированного
окна
3. пофиксена бага связанная с запуском 16-битных прилад.
теперь запускаемый файл не блокируется на взлете, а спокойно
исполняется (при этом сервер напроч замирает, не работает
ни переключение консолей, ни... да ничего не работает...
винды-с)
4. немного поменял большую иконку... (по заявкам телезрителей)
наконец-то решился написать логи...
версия 1.1
1. нафиг переделал создание дочернего процесса, теперь эта
вещь не зависит от переменного окружения
вроде должны уйти баги типа зависания консоли после
окончания процесса
2. явно разделил групповые и процессные сообщения (это
для тех, кто разбирался с сырцами)
3. пофиксил потенциальную багу связанную с переключением
консольной моды (теперь фиксируется только переключение
STD_INPUT_HANDLE потока)