Тут на форуме не раз возникали замечания на тему, что в NeoBook не хватает тех или иных мелких, но иногда полезных функций. Мне думается, что следует попытаться исправить эту ситуацию с помощью плагина, т.к. VB или Java знают далеко не все необукеры, к тому же, на мой взгляд, плагин намного более эффективное средство нежели чем, например, тот же VBS. С учетом последнего вопроса об анимации внешних необушных окон, решил реанимировать свой самый первый плагин, который давно-давно делал. Пока это только пробная (на тестирование) версия. Но если все будет в порядке, то плагин можно будет выложить официально. А пока в архиве (см.прикрепление) находятся две версии плагина (Design и Runtime), зародыш справки, и демка. Вот список функций:
Панель задач zmHideIcon - Скрыть значок приложения на "Панели задач"; zmShowIcon - Показать значок приложения на "Панели задач"; zmHideTaskBar - Скрыть "Панель задач"; zmShowTaskBar - Показать "Панель задач";
Компьютер zmLogOff - Завершение сессии текущего пользователя; zmRebootComputer - Перезагрузить компьютер; zmShutDownComputer - Выключить компьютер. Завершение работы компьютера с выключением питания, если система поддерживает автоуправление питанием;
Диалоги zmColorPicker - Отобразить диалог выбора цвета. Значение выбранного цвета возвращается в формате RGB. Переменные: [zmRed], [zmGreen], [zmBlue]; zmFontPicker - Отобразить диалог выбора шрифта. Атрибуты выбранного шрифта возвращаются в виде переменных: [zmFontColor] - цвет, [zmFontName] - имя, [zmFontSize] - размер, zm[FontStyle] - стиль, [zmFontCharset] - кодировка;
Окна zmFindWindow - Найти окно по заголовку и имени класса. Возвращается: дескриптор (HWND) окна, или "0", если окно не найдено; zmGetWindowHandle - Получить дескриптор (HWND) окна по заголовку; zmGetWindowTitle - Получить имя класса и/или текст заголовка окна; zmSetWindowTitle - Установить новый текст заголовка окна; zmShowWindow - Скрыть/Показать/Свернуть/Развернуть/Закрыть окно; zmSetWindowPos - Установить положение окна; zmSetWindowTransparent - Установить уровень прозрачности окна (Windows 2000 и выше); zmCancelWindowTransparency - Отменить свойство прозрачности окна и сделать его непрозрачным (W2k и выше); zmIsWindow - Определить состояние окна (видимость, свернуто, развернуто, и т.п.); zmEnableWindow - Сделать активным неактивное окно. Активное окно реагирует на события мыши и клавиатуры; zmDisableWindow - Сделать неактивным окно. Неактивное окно не реагирует на события мыши и клавиатуры); zmGetWindowRectangle - Получить положение и размер окна;
Окна NeoBook zmSetCustomWindowPos - Установить положение и размеры внешнего окна (CustomWindow) NeoBook; zmShowCustomWindow - Скрыть/Показать/Свернуть/Развернуть/Закрыть внешнее окно NeoBook; zmIsCustomWindow - Определить состояние внешнего окна NeoBook (видимость, свернуто, развернуто, и т.п.); zmEnableCustomWindow - Сделать активным неактивное внешнее окно NeoBook. Активное окно реагирует на события мыши и клавиатуры; zmDisableCustomWindow - Сделать неактивным внешнее окно NeoBook. Неактивное окно не реагирует на события мыши и клавиатуры; zmSetCustomWindowTransparent - Установить уровень прозрачности внешнего окна NeoBook (W2k и выше); zmCancelCustomWindowTransparency - Отменить свойство прозрачности внешнего окна NeoBook и сделать его непрозрачным (W2k и выше); zmAnimateCustomWindow - Скрыть/Показать с анимационным эффектом внешнее окно (CustomWindow) NeoBook;
Файлы и папки zmFolderSize - Определить размер в байтах указанного каталога (папки);
Настройки плагина zmShowErrors - Показывать сообщения об ошибках;
Пока совсем немного функций, но со временем, по мере надобности, будем его дополнять. Кстати, у "анимации окон" есть некоторые ограничения...
Мне думается, что ближайшей задачей будут некоторые "файловые" функции, отсутствующие в штатном необушном арсенале.
Да, сорри, кажется функция плагина "об ошибках" пока работает вхолостую, т.к. не задействована реально.
Убедительная просьба потестить сие творение на предмет поиска ошибок, и высказать замечания/пожелания.
Добавлено (10 Январь 2010, 10:35) --------------------------------------------- Порадовали много функций
Quote (Peter)
Мне думается, что ближайшей задачей будут некоторые "файловые" функции, высказать замечания/пожелания.
в раздел "Файлы и папки" мона добавить функцию удаления папки(в месте с содержимым) и если не проблемно-поиск в папке нужного файла(имя, маска?!)
Добавлено (10 Январь 2010, 11:12) --------------------------------------------- Нет слов, первый тест и все положительные результаты. Мне как раз нужна была функция размера папки, а метод ВБС частенько входит в ступор Спасибо, отличное начало!
Если ни что не помогает, и ни один вариант не подходит, то прочти наконец хелп... 場合は、どちらかとどちらのオプションも適していませんし、最終的にマニュアルを読んで解決しない... إذا كان هذا لا يساعد سواء ، ولا خيار غير مناسب ، ثم أخيرا قراءة المختصر...
Сообщение отредактировал sp3d - Воскресенье, 10 Январь 2010, 11:09
Ну вот, уже что то! Особенно про окна. Добавь еще поиск чилдренов и замену парентов, можно будет и пофулиганить По крайней мере фича будет весьма интересная.
а что за фича?!
Если ни что не помогает, и ни один вариант не подходит, то прочти наконец хелп... 場合は、どちらかとどちらのオプションも適していませんし、最終的にマニュアルを読んで解決しない... إذا كان هذا لا يساعد سواء ، ولا خيار غير مناسب ، ثم أخيرا قراءة المختصر...
Ну скажем, разместить свой компонент в чужом окне.
прикольно Если ни что не помогает, и ни один вариант не подходит, то прочти наконец хелп... 場合は、どちらかとどちらのオプションも適していませんし、最終的にマニュアルを読んで解決しない... إذا كان هذا لا يساعد سواء ، ولا خيار غير مناسب ، ثم أخيرا قراءة المختصر...
Это чего вы, шалуны, надумали такое? Вроде, взрослые и серьезные мужи... А насчет замены парентов, насколько я понимаю, все участники этого "злодейства" должны быть членами одного процесса. Надо пробовать...
А в плагине косяки ещё есть (это же мой "первенец" ). Я в его исходники, когда откопал, с улыбкой смотрел, кое-что подправил, некоторые вещи вообще переделать требуется. Так-что будем дальше работать.
Предложения взял на заметку. Кстати...
Quote (sp3d)
поиск в папке нужного файла(имя, маска?!)
Это же можно и в самой NB сделать.
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
Это чего вы, шалуны, надумали такое? Вроде, взрослые и серьезные мужи...
Эт не скажи! В натуре, действительно оченна полезная фича, позволяет добавлять в имеющуюся прогу свой функционал, как плагин или надстройка. Обеспечить взаимодействие с чужой прогой это конечно высший пилотаж, и не всякий это сумеет, но иметь свой сервис, ни как не связанный с чужой прогой, но в ее окне очень полезно. Для любознательных, данная технология вовсе не влияет на чужую прогу, просто позволяет в ее окне иметь часть своей проги. Аналогично делают всякие панели и бары (ну почти ). К примеру, в вашей проге есть кнопка нажав на которую выдается звуковой сигнал, ее можно имплантировать в чужую прогу и пищать ею до опупения, из чужого окна
имплантировать в чужую прогу и пищать ею до опупения, из чужого окна
Замечательная идея !!! А вообще, действительно, иметь возможность разместить вызов своей проги в другой проге - интересная возможность!
Первые наблюдения по плагину. Прикольно исчезает, "медленно растворяясь" окошко "О плагине" (Опции => Установка плагина). Я сначала подумал, что это мой комп подвис :))).
Проверял работу по прилагаемому к плагину тестовому файлу в системе WinXP SP3.
В режиме тестовой компиляции Кнопка "А что у нас с заставкой экрана?" выводит окошко "Влючена!!!" (не хватает буквы "к"), хотя заставка у меня отключена. Кнопка "Включить заставку" не включила заставку. Проверял в "свойствах экрана" - заставка по прежнему "нет". Аналогично не сработали кнопки "Включить заставку" и "Запустить заставку". Остальное на первой странице тестового приложения работает. На следующей странице (работы с окнами) выдает ошибку, но возможно потому, что я не выставил класс окна, я не знаю что это такое. Предположил, что возможно дело в тестовой компиляции, поэтому скомпилировал тестовый файл.
После компиляции Перестали работать все функции, в том числе, теперь, и в режиме тестовой компиляции. Выдает одинаковую ошибку, только имена команд разные. Пример ошибки:
Оп! Кажется разобрался почему. После компиляции тестового приложения из NB почему-то исчез плагин zmFunctions. Вероятно это связано с тем, что скомпилировав тестовое приложение я проверил функцию "перезагрузка" и NB был принудительно закрыт плагином, как и другие программы. По всей видимости при таком закрытии установка плагина просто не сохранилась. А может это мой файрволл в первый раз шутканул... Потому, как сообщал мне о попытке запуска изменившегося исполняемого файла (при запуске тестовой компиляции). Установил плагин заново. Теперь кнопка "А что у нас с заставкой?" выдает верный ответ, но включить или запустить заставку плагином по-прежнему не удается. Возможно виной тому отключенные мною какие-то службы, не знаю, предполагаю только. Кстати, есть ли для работы плагина список необходимых служб?
Работа с окнами понравилась, особенно прозрачность и анимация окон! Класс!!! Окна плагин находит, блокирует и освобождает, заголовок окна определяет и меняет, размер папки определяет верно и т.д. Вроде бы как и все остальное работает.
Заново скомпилировал тестовое приложение. Теперь оно работает! Не понимаю, в чем была проблема... Видимо именно в том, что слетел плагин в первый раз. Попробовал перезагрузить NB, с плагином теперь все в порядке, не исчезает.
Плагин опять определил наличие заставки, что неверно, на самом деле заставки нет. После перезапуска NB плагин определяет отсутствие заставки верно и в тестовом, и в скомпилированном режимах. Не знаю, с чем могла быть связана ошибка в первом случае.
При нажатии "сброс прозрачности" слайдер не возвращается в соответствующее положение. Хотя, скорее всего, это и не предусматривалось...
Есть ли смысл в эту библиотеку функций добавить те, что реализованы как zmKeyBoard и zmNet или там есть своя специфика?
я проверил функцию "перезагрузка" и NB был принудительно закрыт плагином, как и другие программы. По всей видимости при таком закрытии установка плагина просто не сохранилась.
Семён Семеныч, ЕСТЕСССССТВЕННО! Настройки-то не сохранилсь, и Neobook забыла, что у неё появился "бесценейший довесок". Перед перезагрузкой компутера, вообще-то принято "сохраняться", и демка об этом, между прочим, ПРЕДУПРЕДИЛА, и предоставила альтернативу. Я вот думаю, а что если сделать в плагине коианды (пустышки естесственно)типа "Format C:\" или "Спалить материнскую плату", и дать на тестирование, найдуться рискОвые? А потом будут ещё возмущаться мол "плагин кривой, не работает!" По заставке экрана... Там все работает так, как и должно работать: если заставка экрана отключена в настройках пользователя, то и запускать просто нечего. А включить заставку может только сам пользователь в "Свойствах экрана". Иными словами, плагин будет работать с заставкой только если она в принципе включена пользователем, о чем имеется запись в соответствующей ветке Реестра, и если там "0", то плагин, хоть умри, заставку не включит/выключит, и не запустит! Нет, технически это сделать, можно, но не дело влезать в пользовательские настройки. Я, например, проги, которые пытаюся хозяйничать в моих "предпочтениях" удаляю моментально и больше никогда не устанавливаю! А вот проверку включен ли скринсейвер, пожалуй можно и модернизировать будет с учетом записи в Реестре, сейчас плагии определяет это по одному критерию, а надо бы по двум.
ОК! Я подумаю, что тут можно придумать. Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
прикольно, если сделать команду-разогнать проц типа: "Ускоритель процессора +7Ггц" и читать отзывы
Если ни что не помогает, и ни один вариант не подходит, то прочти наконец хелп... 場合は、どちらかとどちらのオプションも適していませんし、最終的にマニュアルを読んで解決しない... إذا كان هذا لا يساعد سواء ، ولا خيار غير مناسب ، ثم أخيرا قراءة المختصر...
Сообщение отредактировал sp3d - Понедельник, 11 Январь 2010, 18:16
Перед перезагрузкой компутера, вообще-то принято "сохраняться", и демка об этом, между прочим, ПРЕДУПРЕДИЛА,
Это так, предупредила, у меня не было несохраненных данных, в том обычном смысле, что в проекте я ничего не менял, а плагин посчитал установленным окончательно, раз он работает. Но теперь буду знать! Полезно, однако, тестить плагины!
Quote (Peter)
"Спалить материнскую плату", и дать на тестирование, найдуться рискОвые?
Вне всяких сомнений! Причем не все из них будут тестить на чужом компе!
Quote (Peter)
плагин будет работать с заставкой только если она в принципе включена пользователем
Ага, понятно!
Quote (Peter)
А что это?...
zmKeyBoard (меняет раскладку клавы) и zmNet (проверяет наличие сети и пр.), как я понял, твои проекты (плагины), тоже в работе или я что-то напутал?
Quote (Сергей)
прикольно, если сделать команду-разогнать проц типа: "Ускоритель процессора +7Ггц" и читать отзывы :D
можно я опубликую этот плагин на своем сайте??? Только скажи условия
Пока нет предмета для разговора, плагин в существующем варианте мало пригоден для практического применения, т.к. его надо ещё вылизывать и вылизывать. Честно говоря, расшаривать свои ресурсы (которых почти и нет) я пока не планировал, тем более недоделки. Просьба понять это, и не обижаться. Когда будет нормальная и стабильная версия, тогда и видно будет...
Quote (VadimLevkin)
zmKeyBoard (меняет раскладку клавы) и zmNet (проверяет наличие сети и пр.),
Я уж и забыл про них... Ну, если "клавиатуру" ещё можно запихать в этот плагин, то для работы с сетевыми делами нужно, конечно же, делать самостоятельный плагин.
Quote (VadimLevkin)
Тоже ничего идея!
Чего то расшалились вы все, смотрю... Рашьше (лет 10-15 назад) кошмаром было "Format C:\", а сейчас - "Format D:\". Вот его, пожалуй, и сделаю для начала... VadimLevkin, будешь главным тестером? Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
В апи функции sendmessage postmessage, сенд выполняется сразу и требует возврата результата, тюфу на нее, пост помещает сообщение в очередь сообщений и ответа не требует. Смотри сообщения WM_ (и другие), фигня функция, а сколько может полезностей делать, Аснова винды
то надо подумать. Мысль неплохая... Thanx! Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
Большинство телодвижений винды идет через сообщения, скажем так - она ими живет
Добавлено (12 Январь 2010, 21:52) --------------------------------------------- Это только юзер думает, что клацнув мышом по крестику он закрывает окно, на самом деле это инициирует отправку соответствующего сообщения, и так устроено все остальное.
Если "главным" в смысле "рукоразводителем", чтобы команды, так сказать, давать, то легко!
А ежели сам, то только не "Format D:\" !!!, уж лучше "Format С:\", 100-пудово!!!
Только, чтобы "рукоразводительствовать", мне придется сделать инструкцию к плагину (для печати), чтобы пользователь мог на следующей странице (после того как экран погаснет) прочитать: "А теперь переустановите Windows, поскольку предыдущей командой Вы отформатировали диск с системой" :D. А то, иначе, как-то не по-человечески будет...
Quote (Peter)
"клавиатуру" ещё можно запихать в этот плагин
Тогда, наверное, есть смысл так и сделать. В плагине zmKeyBoard кроме полезнейших (!) команд узнать и поменять раскладку есть замечательная команда <Открыть папку "Мой компьютер" в Проводнике Windows>. Т.е. открыт, так сказать, раздел по работе с папками. И в zmFunctions есть функция возврата размера папки. Как раз в этот раздел!
С уважением, Вадим
Сообщение отредактировал VadimLevkin - Среда, 13 Январь 2010, 00:52
Если "главным" в смысле "рукоразводителем", чтобы команды, так сказать, давать, то легко!
Нет, батенька, так просто не отделаетесь! Именно и непосредственно - ТЕСТЕРОМ! Я уже и сюжет придумал: наподобие "русской рулетки". Сколько там патронов в нагане?... А "инструкцию" будете создавать на основе собственного опыта. И вот ТОГДА!... Тогда станете "рукоразводителем"!
Quote (VadimLevkin)
Т.е. открыт, так сказать, раздел по работе с папками. И в zmFunctions есть функция возврата размера папки. Как раз в этот раздел!
Мне почему-то представляется иное название раздела, например, что-нибудь в духе "проводник". Посмотрим...
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
Я уже и сюжет придумал: наподобие "русской рулетки". Сколько там патронов в нагане?...
Барабан на 7 патронов! Значить надо на Win7 проверять! А у меня XP, не подойдет, если только не переводить ХР как ИКС Патронов :D, ну или как Десять Патронов :D. В общем, шансов не на много больше.
Quote (Peter)
А "инструкцию" будете создавать на основе собственного опыта.
Не, ну на основе собственного опыта какая может быть инструкция? Так, субъективное мнение. Нужна статистика, подтверждения, так сказать! А то буду людям голову морочить
Quote (Peter)
Мне почему-то представляется иное название раздела
Ой, я даже и в мыслях не имел - предлагать название разделам. Устроителю плагина всегда виднее!
С уважением, Вадим
Сообщение отредактировал VadimLevkin - Среда, 13 Январь 2010, 03:37
Peter, Окна Neo Book. При выборе в стандартной команде Neo Book CustomWindow стиль окна FixedPos, окно при команде zmAnimateCustomWindow, открывается ТОЛЬКО в пределах окна проекта При выборе любого другого стиля, все прикрасно открываются за пределами окна. Жаль, то что именно нужно, не получается.
Добавлено (16 Январь 2010, 20:20) --------------------------------------------- Еще, когда в поле "Сохранить результат в переменной" пишешь переменную без [] скобок, скобки автоматически не добавлябтся. Конечно это не столь важно, но по привычке можно не обратить на это внимание
Человек - единственное животное, которое может заниматься сексом по телефону...
Так это в самой NeoBook и задумано, и команда плагина к этому не имеет отношения.
Quote (mishem)
Жаль, то что именно нужно, не получается.
А что именно нужно?
Quote (mishem)
скобки автоматически не добавлябтся
В данном случае это не критично, т.к. этот аргумент передается из проекта в плагин без скобок. Ведь для "сохранить в переменной" нужно имя, а не содержание переменой. Оригинальные (от Neosoft) необушные плагины в этом случае скобки тоже не подставляют. Так-что повода для беспокойства нет.
Можно конечно, сделать и добавление скобок, только это зачем? Лишняя работа...
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
Чтоб окно выдвигалось за окно проекта, и также при перетаскивании основного окна мышкой, вспомогательное окно передвигалось вместе с основным. Стиль окна FixedPos как раз это позволяет, но ...
Quote (Peter)
Так это в самой NeoBook и задумано, и команда плагина к этому не имеет отношения.
А есть возможность что нибудь сделать?
Quote (Peter)
Так-что повода для беспокойства нет.
Да я не беспокоюсь, просто подумал, мож упустил из вида. Лучше перебдеть, чем недобдеть. Человек - единственное животное, которое может заниматься сексом по телефону...
Можно попробовать... Только не прямо сейчас. Хорошо?
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
Чтоб окно выдвигалось за окно проекта, и также при перетаскивании основного окна мышкой, вспомогательное окно передвигалось вместе с основным. Стиль окна FixedPos как раз это позволяет, но ...
да да, и я хочу. чтоб выдвигалось, задвигалось и таскалось. еще там комуто чтото нужно было с клавишами сделать. отслеживать нажатие и отжатие, комбинации нажатия передавать куда-то... помнишь я давал ссылку на платный плаг какогото луиса альберто? глянь его список функций, выбери какие могут понадобиться
Добавлено (18 Январь 2010, 19:35) --------------------------------------------- еще вопрос - внутри customwindow можно делать прозрачные области (как маска окна проекта), или фон будет торчать всегда? например, если нужно отключить оформление окна и сделать свою рамку с закругленными углами?