NXHelper (костылей много не бывает)

Модераторы: dimbor, Модераторы разделов

Ответить
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

NXHelper

Сообщение Djelf »

Сессий разных накопилось много, тыкать лишний раз - лень, иногда возникает необходимость что-то еще сделать до и после соединения с NXServer, и все это, естественно, для Win32, где с NXClient`ом мало что можно сделать. Идея родилась по этой теме.

А вот и скомпилированный в exe NXHelper на AHK
Helper.jpg

nxhelper_src.zip
(19.22 КБ) 44 скачивания

AHK выбран из-за исключительной простоты кода, его компактности и отсутствия необходимости установки компиляторов, библиотек и т.п.

Падает при запуске в трей. По левой кнопке мыши на иконке запуск сессии в 1 клик. По правой кнопке мыши на иконке более продвинутое меню сессий.
Немного подтормаживает т.к. пытается определить имена запущенных сессий и выделять их цветом, а для этого приходится парсить файлы runlog sshlog и session.
Убирает мусор в каталоге .nx/temp (от устаревших сессий) после этого тормозов значительно меньше. Работает с русскими названиями сессий.
Дополнительные скрипты до и после запуска сессий в процессе обдумывания (лучше месяц неспешно обдумать и сделать за час, чем сделать за час, а потом месяц переделывать).

P.S. АHK используется юникодный с плюшками для иконок и т.п. http://www.autohotkey.net/~Lexikos/AutoHotkey_L/ dll`ка только как хранилище иконок. dll в SRC не вложена.
P.P.S. Предложения/идеи/исправления приветствуются.

nxhelper.zip
(359.04 КБ) 70 скачиваний


UPD1: Определение сессий переписано на поиск в файлах sshlog и session, так работает надежнее.
UPD2: Клиент, рекомендуется брать отсюда т.к. родной клиент не правильно пришет pid процесса nxwin в файл session в результате чего сопоставить имя сессии и pid процесса не представляется возможным.
UPD3: Путем несложных манипуляций с nxclient.cfg NXClient замобилен. Для замобиливания нужно скопировать папку .nx из своего профиля в папку с NXClient (на том же уровне где каталоги bin и share).
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: NXHelper

Сообщение dimbor »

Отличная тулза.
Базовый функционал, обсуждавшийся в личке, работает.

Осталось два вопроса:
1) Не подсвечивает. (Может и найти не может?) Правда служба тем в XP отключена. Из-за этого?
2) Не завершает, хотя вопрос задает.

И предложения:
А не распространить ли манну небесную на обычных смертных? Определить, принадлежит ли текущий юзер группе админов машины/домена вроде как можно. Бесправному расширенное меню по правой кнопке вроде как и не надо, некоторые пункты по крайней мере точно лишние (переименовать/настроить/удалить).

Прошу сильно не ругаться - получив малейшую возможность подать идиотскую идею, считаю, надо отрорваться на все деньги. ;)
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: NXHelper

Сообщение Djelf »

dimbor писал(а):
05.05.2011 03:20
1) Не подсвечивает. (Может и найти не может?) Правда служба тем в XP отключена. Из-за этого?

Поиск имени сессии идет довольно идиотским способом - выуживанием последней строки с "Parameters passed to NX server" из \.nx\temp\XXXX\runlog
Только там можно найти --session=ИмяСесии
Даже модификацией nxservice не получится сделать проще (он тоже имя сессии с которой работает не знает), разве что запускать через модицифированный OpenNX или вообще нарисовать запуск сессии в ahk напрямую без NXClient
Было бы конечно лучше по заголовку окна, но для этого надо модифицировать NXWin.exe
На W7 вроде все ок. Посмотрю... может на XP как-то что-то отличается.

UPD: и на W7 тоже не всегда определятся.... будем пилить....

dimbor писал(а):
05.05.2011 03:20
2) Не завершает, хотя вопрос задает.

См. выше. Если имя сессии не нашлось то и pid к ней не известен...

dimbor писал(а):
05.05.2011 03:20
И предложения:
А не распространить ли манну небесную на обычных смертных? Определить, принадлежит ли текущий юзер группе админов машины/домена вроде как можно. Бесправному расширенное меню по правой кнопке вроде как и не надо, некоторые пункты по крайней мере точно лишние (переименовать/настроить/удалить).

Прошу сильно не ругаться - получив малейшую возможность подать идиотскую идею, считаю, надо отрорваться на все деньги. ;)

Это можно...

А накрутить можно много и на ahk это очень просто. Да и идей целое море: забирать список сессий с учетом имени пользователя с сервера, поднимать OpenVPN до запуска сесии, монтировать шары, можно замобилить NXClient для флэшки и т.п.
Пока основная задача - сделать рабочий каркас хелпера, куда любой сможет что-то прикрутить за вразумительное время.

Боюсь только универсально не получится... но коду то пока... 500 строк, а из них 50% комментарии :laugh:
Спасибо сказали:
TheLT
Сообщения: 83
ОС: Gentoo

Re: NXHelper

Сообщение TheLT »

Тулза просто шикарная, огромное спасибо и респект автору!

UPD:
Потестил на Win7 и на WinXP. Под Win7 подсвечивается и завершается всё, под WinXP, как и было отмечено ув. Dimbor-ом, нет.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: NXHelper

Сообщение Djelf »

TheLT писал(а):
08.05.2011 12:49
Потестил на Win7 и на WinXP. Под Win7 подсвечивается и завершается всё, под WinXP, как и было отмечено ув. Dimbor-ом, нет.

Да, с WinXP есть такая проблема.
Что то странное происходит... каталог правильный, а AHK не видит файлов в каталоге. Переназначение имени каталога "странным" (имя каталога судя по выводу в msgbox остается тем же) способом вроде бы приводит к результату, но этот метод у меня сработал (эта версия пока не выложена), а у Dimbor нет.
Надо рисовать логгер...
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: NXHelper

Сообщение dimbor »

Реплики с галерки:

А если пень эти каталоги?
Если бровзить не мутные логи, а уже известные конфиги config\*.nxs
Любопытный факт состоит в том, что nxwin.exe получает в командной строке параметр -name, который выглядит "user@server:"
Процесс по командной строке найти вроде можно (через NtQueryInformationProcess?)
В уважающем себя nxs есть буквы:

Код: Выделить всё

<option key="User" value="user" />
<option key="Server host" value="server" />

Имя nxs по счастливому совпадению является тем, что мы хотим подсветить, а сам процесс по другому не менее счастливому тем, что можем завершить.
Вариант?

ЗЫ: Пост смог быть написанным, т.к. наконец настроил генту хотя бы в режиме шлюза. (Я не тормоз, а медленный газ! ;) ).
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: NXHelper

Сообщение Djelf »

Не подходит: мы можем иметь разные соединения к одному и тому же серверу, с одинаковым именем пользователя и с одинаковым паролем, но с различным назначением.

P.S. NXClient NXHelper`ом замобилил, проверяю... логгер в процессе... исходники не спрятаны...

dimbor писал(а):
11.05.2011 19:03
наконец настроил генту

Генту, теоретически, должна быть самой быстрой системой... Может стоит сделать отдельную тему - скорость перепроведения чего то, ну скажем ТиС демо (ибо демо тогда у всех будет одинаковое) на разном железе и дистрибутивах? Обработку для теста могу нарисовать... где то она у меня даже была, разыскать надо...
Попугаями, иногда, мерятся не вредно :D
Спасибо сказали:
TheLT
Сообщения: 83
ОС: Gentoo

Re: NXHelper

Сообщение TheLT »

(Djelf) писал(а):Генту, теоретически, должна быть самой быстрой системой... Может стоит сделать отдельную тему - скорость перепроведения чего то, ну скажем ТиС демо (ибо демо тогда у всех будет одинаковое) на разном железе и дистрибутивах? Обработку для теста могу нарисовать... где то она у меня даже была, разыскать надо...
Попугаями, иногда, мерятся не вредно :D


Вернувшись не так давно к NX-ам, я перепробовал "пятёрку лидеров" т.е Ubuntu 10.04/10.10, Debian Squeeze, Альт и Gentoo. Если честно, все бинарные дистры оставили ужасное впечатление. Но у генты свои проблемы, особенно в части отсутствия нормальных установочных пакетов для вайна и для nx/freenx.

Но по скорости работы он сильно уделывает дебиан в плане интерактивного отклика.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: NXHelper

Сообщение Djelf »

NXClient замобилен.
Для замобиливания нужно скопировать папку .nx из своего профиля в папку с NXClient (на том же уровне где каталоги bin и share).
После этого все имена сессий берутся из подпапки .nx, логи nxclient и кэш графики там же.
Без папки .nx - работа в обычном режиме.

На моей тестовой машине с WinXP сессии определяются и помечаются в обоих режимах работы.
Спасибо сказали:
TheLT
Сообщения: 83
ОС: Gentoo

Re: NXHelper

Сообщение TheLT »

Спасибо за инфу! Потестим!
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: NXHelper

Сообщение dimbor »

Djelf писал(а):
11.05.2011 23:53
Не подходит: мы можем иметь разные соединения к одному и тому же серверу, с одинаковым именем пользователя и с одинаковым паролем, но с различным назначением.

И десительно, слона-то и не заметил. :(

Djelf писал(а):
11.05.2011 23:53
Может стоит сделать отдельную тему - скорость перепроведения чего то, ну скажем ТиС демо (ибо демо тогда у всех будет одинаковое) на разном железе и дистрибутивах? Обработку для теста могу нарисовать... где то она у меня даже была, разыскать надо...
Попугаями, иногда, мерятся не вредно :D

Отличная мысель! Неделю-две разберусь с оной системой и буду готов публиковать данные по генту vs альт.

Djelf писал(а):
12.05.2011 14:18
На моей тестовой машине с WinXP сессии определяются и помечаются в обоих режимах работы.

Увы, все то же. .nx скопировал, потом даже переместил. ЧЯДНТ?
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: NXHelper

Сообщение Djelf »

dimbor писал(а):
14.05.2011 02:52
Увы, все то же. .nx скопировал, потом даже переместил. ЧЯДНТ?

А у тебя создание коротких имен 8.3 случаем не отключено?
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: NXHelper

Сообщение dimbor »

Сори, отходил тут в офлайн...

Djelf писал(а):
14.05.2011 11:26
А у тебя создание коротких имен 8.3 случаем не отключено?

Действительно отключено из SSD-шного жлобства. Не лечится?
Хотя все 8.3 пути в nxclient.cfg и пр. продолжили работать после отключения, чему был удивлен.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: NXHelper

Сообщение Djelf »

dimbor писал(а):
17.05.2011 03:05
Действительно отключено из SSD-шного жлобства. Не лечится?

Возможно... как то и лечится.... надо посмотреть...

dimbor писал(а):
17.05.2011 03:05
Хотя все 8.3 пути в nxclient.cfg и пр. продолжили работать после отключения, чему был удивлен.

http://support.microsoft.com/kb/121007
Примечание. Изменение параметра реестра NtfsDisable8dot3NameCreation влияет только на вновь созданные файлы, папки и профили. На уже существующие файлы это изменение не распространяется.

Поэтому вариантов целая куча... например

Удаляем клиент, отключаем 8.3
устанавливаем nxclient-3.4.0-10.exe в стандартную папку для этого клиента "NX Client for Windows" - клиент работает.
устанавливаем NXClientCE-3.4.0-10.r14.4.exe в стандартную папку для этого клиента "NXClientCE" - клиент работает.
устанавливаем NXClientCE-3.4.0-10.r14.4.exe в стандартную папку "NX Client for Windows" - [b]клиент не работает[/b (Cannot initialise display service)].
Работает... в смысле запускается, полных длительных тестов не делал.
Спасибо сказали:
Ответить