Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Вот, блин, проболтался, и теперь сам уже жалею. Плагин этот будет специализированный и не по "системе", так-что на счет "регулярок" и т.п. все вопросы отпадают.. Кстати, на базе этого компонента уже имеются два плагина (один эсперальты), но оба кривые, вот и пришла идея развить тему, и сделать по-нормальному. Но, поживем-увидим, пока все благополучно. И сейчас вся проблема в том, что постоянно приходят новые идеи и решения.
Delphi это не VBS, в котором "наконец-то кое-как заработало и слава Богу!". Последнее для AS3856.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
ещё один приём- в командной строке netstat -a или netstat -an -далее парсить полученные данные- получаем где бродит студент в поисках ответа
Добавлено (09 Июля 2017, 14:43) ---------------------------------------------
ЦитатаAS3856 ()
Последнее для AS3856.
Обнаружил случайно хелп на русс.яз. по плагиностроительству,сегодня открыл(раньше то читал только англ версию)многое становится понятнее , время нужно для полного осмысления - ну и начать заниматься )
Добавлено (09 Июля 2017, 14:45) --------------------------------------------- и всё ж vbs подкупает простотой, но маловато функционала...
Что ж ты такой упертый. Ну гоняй в цикле 300 строк
Это я-то упертый? Вот если бы ты сказал 3000 строк, то тогда можно было бы порассуждать о скорости обработки, а 300 строк для необушного цикла (даже с учетом того, что он скоростью не блещет) - семечки. Да и еще эту регулярку нужно уметь правильно составлять, вот Вадим и потратит на изучение этого неделю, выйграет(?) секунду, а потом благополучно забудет. В NB же правильный цикл сварганить - 5 минут.
И я всегда настаивал (и буду настаивать) на использовании именно необушных скриптов, там, где это возможно, потому-что только так (а не иначе) можно заставить работать голову и чему-то научиться в программировании.
ЦитатаAS3856 ()
ну и начать заниматься
Давно пора. Только надо учитывать, что SDK это не учебник по изготовлению плагинов (и тем-более по Delphi), а всего-лишь - документация, описывающая интерфейс для общения плагина с NB. Ну еще пара примеров "для ясности(" и все.
Добавлено (09 Июля 2017, 16:01) ---------------------------------------------
ЦитатаAS3856 ()
и всё ж vbs подкупает простотой, но маловато функционала...
Давно известна такая поговорка - "Любишь кататься, люби и саночки возить". Ничто не дается просто-так и "на раз-два", и за все нужно платить. К тому же, приступая к Delphi нужно приготовиться к несоизмеримо бОльшему объему печатной работы, про мышку можно будет почти забыть (по сути она нужна только для того, чтобы переключаться между вкладками редактора кода, и "бросать на форму компоненты", ну там какой-то код скопипастить, и все). Но, это совсем не страшно, и быстро привыкаешь.
А что касаемо функционала, так в сравнение с Delphi, у VBS (как и у любого другого скриптового языка), не будет большим преувеличением сказать, его практически нет! Начнете изучать Delphi, то поймете и прочувствуете, не в перый же день, конечно, но прочувствуете.
Вот потому-то меня и умиляют эти "современные технологии" (как в той же NAB), и пользователи, считающие, что к ним в руки попал "настоящий инструмент".
Хотя, справедливости ради нужно заметить, что каждой задаче - свой инструмент. Ведь та же NB тоже не совсем уж "безрукая", и кое-что могет, и вполне достойно.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Если надо запретить уход на другие сайты- то может прописать запрет в hosts - файле
Жестко, конечно :). Да и компьютеры под учетной записью студента (или по причине антивируса) скорее всего не дадут изменить этот файл, как не дают инсталлировать программное обеспечение. Мой антивирус настроен так, что не даст изменить его. А свою прогу я просто копирую на комп, а после экзамена удаляю.
ЦитатаPeter ()
Ошибка. У необушного броузера есть событие Before Navigate.
Не ошибка, просто я по-другому сделал. Именно там, в справке, я и почерпнул саму идею сделать такую прогу :).
ЦитатаPeter ()
Зачем проверять "белый список", когда можно сразу "черный" ?....
Потому, что в белом всего лишь 15 позиций, при этом они наиболее вероятны и они разрешены, а в черном списке 315 позиций и они запрещены. Зачем включать цикл, если можно одним условием проверить сначала по белому списку. И если проверяемое окно из белого списка, то по черному просто не включается проверка. Зачем зря молотить циклом.
ЦитатаPeter ()
И в чем сейчас загвоздка?
Остался вопрос - возможно ли обойтись без цикла. Предложение Андрея и mishem`a воспользоваться регуляркой как раз направлено на решение этого вопроса, если я правильно понял.
ЦитатаAS3856 ()
Будут вечно изучать эту страницу.. :D
ЦитатаPeter ()
Вот, блин, проболтался, и теперь сам уже жалею.
Теперь ждать будем, как из печки пирога!
ЦитатаPeter ()
И сейчас вся проблема в том, что постоянно приходят новые идеи и решения.
Лучшее враг хорошего, как говорят. Иногда это правда.
Цитатаmishem ()
Скинь мне черный список.
Отправил!!
Добавлено (09 Июля 2017, 16:47) ---------------------------------------------
ЦитатаAS3856 ()
ещё один приём- в командной строке netstat -a или netstat -an -далее парсить полученные данные- получаем где бродит студент в поисках ответа
Не ошибка, просто я по-другому сделал. Именно там, в справке, я и почерпнул саму идею сделать такую прогу :).
И про таймер тоже там почерпнул? Гм... Вадим, без обид только, но в программировании использовать таймер там, где есть соответствующее событие (объекта) это не просто дурной тон, а вообще непонимание и незнание основ программирования. Впрочем, каждый сам себе режиссер....
ЦитатаВадим ()
Зачем зря молотить циклом.
Ага, а таймером, значит, молотить можно. Ладно, остаюсь в недоумении и умолкаю....
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Я говорил вполне серьезно, т.к. это - ОСНОВЫ!!! Вадим, чтобы было понятнее. NB использует тот же самый принцип ООП, что и Delphi (можно даже сказать что NB это Delphi "в миниатюре"). Инструменты (объекты) в NB похожи на аналогичные объекты (как на экземпляры класса) Delphi. А каждого объекта существуют собственные свойства, методы и события, и они - "три кита", на которых базируется работа с объектами. Возьмем, к примеру, необушный ListBox Свойства объекта ListBox определяют его внешний вид, поведение (например, шрифт, цвет, рамка и т.п.), методы объекта (в NB команды) определяют действия, которые способен выполнять объект (у необушного ListBox например, ListBoxAddItem), и события объекта (в NB вкладка Actions для объекта), например, Selection Changed, Double Click, и т.д. Вот всем этим "хозяйством" и нужно учиться управлять и использовать его по максимуму. Для того все это и дадено.
ЦитатаВадим ()
Есть способ без таймера мониторить какое окно в системе сверху?
В NB нет. Единственное, что можно "мониторить" без таймера, так это является ли необушное окно активным или нет. Для этого существуют (опять-таки!) события (теперь уже окна проекта) Activate и Deactivate, и можно попытаться (в зависимости от задачи) приспособить их. Можно даже задействовать и событие Idle Event
Но в тот раз я говорил вот про это:
ЦитатаВадим ()
Постоянно, с интервалом таймера, запускается подпрограмма, которая проверяет - есть ли нужный домен в адресной строке.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Вот всем этим "хозяйством" и нужно учиться управлять и использовать его по максимуму. Для того все это и дадено.
Стараюсь!
ЦитатаPeter ()
Но в тот раз я говорил вот про это:
Я понял, поэтому и последовал твоему совету. Согласен, зачем по таймеру обрабатывать то, что можно вообще предотвратить, воспользовавшись событием браузера. Я просто упустил эту замечательную возможность. Спасибо, Пётр!! Я правда ценю все подсказки и советы! И всё рациональное стараюсь немедленно применить. В меру сил, конечно. Вот регулярки тема не самая простая, но нужная. Изучу обязательно, но и времени потребуется значительное количество... Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Забыл... Это не идеал. Хочешь сделать хорошо, сделай сам. Это просто на скорую руку, пока кушал. , что бы показать сам смысл что можно сделать.
Добавлено (09 Июля 2017, 20:49) ---------------------------------------------
ЦитатаВадим ()
И всё рациональное стараюсь немедленно применить.
Не надо так. Голова своя должна быть. Нужно взвесить все за и против, и выбрать наиболее правильное решение.
Мы подсказываем не видя всего проекта. По этому не факт, что подсказка может быть наиболее оптимальным решением. Ну это я так, что б преукрасить. Конечно же наши подсказки самые правильные и лучшие. Не хочешь читать хелп?
Добавлено (09 Июля 2017, 21:43) --------------------------------------------- Что то сейчас вспомнил. Я еще не учел C:\Windows. \W это тоже метасимвол. Нужно во первых StrReplace "[Data]" "+" "\+" "[Data]" "" поместить в начало сразу после открытия файла, но не обязательно. А эту команду обязательно добавить в начало сразу после открытия файла StrReplace "[Data]" "\" "\\" "[Data]" ""
Добавлено (09 Июля 2017, 21:48) ---------------------------------------------
Вадим, - может пригодится? -Функция звкрытия всех окон проводника(если открыты) и закрытие IE(браузер в проекте продолжает работать)-вобщем никто несможет прочитать вставленную флешку,или полазить несанкционированно по папкам.
Функция закрытия всех окон проводника(если открыты) и закрытие IE
Прикольно, спасибо! После закрытия проекта NeoBook запрет автоматически снимается?
mishem, почему-то Notepad++ и русский текст не ищет.
Ещё, вопрос. Есть ли какие-то ограничения на число символов подставляемых в качестве параметра для регулярки (длину регулярного выражения) в данном плагине?
Прикольно, спасибо! После закрытия проекта NeoBook запрет автоматически снимается?
Немного не так- функция закрывает все открытые окна- Т.е . запускаешь- она закрывает-можешь оопять открыть окно или два или три(неважно)-опять выполняешь функцию-опять всё закрывает Если в проекте делать- то повесить в цикле. Могу кончно прописать чтоб постоянно она была в цикле-если это надо-сделаю(но лучше ненадо) Можно отдельным скриптом это написать - при запуске проекта извлекать скрипт и запускать(вот тогда можно в скрипте прописать бесконечный цикл и проект необука небудет загружен(многопоточность)-тогда никто несможет запускать окна.Ну о останавливать этот скрипт уже другим скриптом-тоже непроблема.
Добавлено (10 Июля 2017, 10:55) --------------------------------------------- Запрета как такового НЕТ.Просто закрытие окон
Вот в архиве 2 vbs-скрипта. CloseExplorer.vbs - если запустить-будет в цикле постоянно закрывать все открытые окна и IE, невозможно открыть папки ,просмотр дисков и т.д. В работе невидим.Незапускать просто так из папки-сначала на раб стол-и иметь рядом скрипт для остановки этого скрипта-иначе потребуется перезагрузка или залезать в диспетчер задач и там снимать задачу. End_VBS.vbs - скрипт "убивает все запущенные скрипты"-вобщем это остановка для первого скрипта Теперь если в проекте извечь CloseExplorer.vbs и запустить- никто несможет открывать папки и т.д., для остановки -извлечь End_VBS.vbs - и запустить При этом необук незагружен циклом. -Вобщем - может пригодится наверно...
И потестируй. Будет находить что то лишнее или нет? Если будет находить лишнее, тогда и будем думать. А если и так пойдет, то не вижу смысла свою голову ломать.
А вообще советую хотя бы попытаться вникнуть в общие понятия синтаксиса регулярки, и сможешь сам составлять для своих нужд.
Спасибо, Андрей!! Тебе уже можно (и, наверное, нужно) отдельную тему сделать "Библиотека функций для NeoBook (от AS3856)", как у Дембеля здесь. А то разбросаны по форуму. И можно там добавлять/обновлять их, изменяя версию "библиотеки".
mishem, работает!!! Поднял команду замены символов переноса строки выше и теперь ищет и Notepad++, и русские слова!
Цитатаmishem ()
советую хотя бы попытаться вникнуть
Обязательно попытаюсь! Теперь, с работающим примером это сделать на порядок легче будет! Спасибо огромное за введение в новую тему!!!
Пример неплохо бы в студию(в смысле на форуме) где-то отдельно расположить.Многим облегчит понимание ..
Это можно. Но, тогда уж, с подробными комментариями (в пределах разумного, само-собой).
Да и просто одного примера будет маловато, надо бы статейку-урок забацать по теме регулярок, а то, например, я в них как заяц в арифметике. Лично мне они не нужны совсем, но кому-то весьма и весьма пригодятся.
ЦитатаВадим ()
mishem, работает!!!
Вадим, а вот теперь чисто практически скинь пример для решения ТВОЕЙ задачи (из 300 пунктов) в варианте необушного цикла и регулярки. Очень любопытно оценить "выйгрыш" в скорости. Ставки делать будем?
Добавлено (11 Июля 2017, 00:15) ---------------------------------------------
ЦитатаAS3856 ()
Хочу плагин сделать- пока готовлюсь
Это похвально! Но чего там готовиться-то? Глаза боятся, руки - делают!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
чисто практически скинь пример для решения ТВОЕЙ задачи (из 300 пунктов) в варианте необушного цикла и регулярки. Очень любопытно оценить "выйгрыш" в скорости.
Теперь, с работающим примером это сделать на порядок легче будет!
Легче не будет.
ЦитатаPeter ()
надо бы статейку-урок забацать по теме регулярок,
Их в интернете полно, даже целые книги. Грубо говоря, ты предлагаешь для нб новую справку написать. Как и везде, желание нужно.
Peter, а регулярки используются везде, даже в твоем плагине.
Цитата
Маска - маска имен файлов (без путей) или расширений файлов.
Например: NeoBook.exe или *.txt.
NeoBook.exe и *.txt и есть регулярка. Со свои синтаксисом.
Плагин Ганса сделан на основе этого компонента. И весь синтаксис построения регулярок там подробно расписан.
Нужно просто понимать, что регулярное выражение ищет не сразу целое предложение, а поиск происходит посимвольно. Берется первый метасимвол регулярки. Ищется. Если не найден, поиск прекращается, если найден, берется второй и ищется на сколько я понимаю уже комбинация из первого и второго и т.д.
Кстати большинство популярных шаблонов регулярных выражений можно найти в сети.
Добавлено (11 Июля 2017, 11:43) --------------------------------------------- Кстати вот эта комбинация не правильная. [^"\wА-я]ключ[^"\wА-я]
Чтобы найти целое слово, нам нужно что бы перед или после него находился пробел или начало, или конец строки. ^ - начало строки \s - любой пробельный символ $- конец строки
^|\sключ\s|$
Но почему то не находятся все слова ключ если они записаны подряд. ключ ключ ключ ключ ключ Находятся только первое и второе, остальные почему то игнорируются.
Чтобы расширить возможность поиска, нужно в начале регулярки добавить некоторые модификаторы. i - искать не зависимо от регистра. Найдет ключ и Ключ, без него найдет только ключ m- текст будет считаться многострочным, иначе восприниматься как одна строка. Метасимволы ^ и $ будут совпадать не только в начале и конце текста, но и в начале и в конце всех имеющихся в тексте строк. r - будет искать кириллицу
(?imr)^|\sключ\s|$
Добавлено (11 Июля 2017, 11:57) --------------------------------------------- Кстати здесь тоже ошибка. ^|\sключ\s|$ Если начнем анализировать, то получается так. ^ ищет начало строки. Начало строки есть всегда. Оно будет найдено. Дальше идет символ | -"или". Раз начало строки найдено, все остальное дальше игнорируется.
Значит нам нужно заключить ^|\s в группу (), а так же и \s|$
(^|\s)ключ(\s|$) Анализируем, ищется группа где у нас или начало строки, или пробел, табуляция и т.д. любой пробельный символ.
Как мы из вышесказанногопоняли, начало текста или строки есть всегда. Регекс ее найдет. Дальше | - "или" игнорируется до круглой скобки ). Берется символ "к" и ищется в сочетании с началом строки. Если такой комбинации нет, регекс возвращается к символу | и начинает искать пробел. После опять берется символ "к" и ищется уже вместе с прбелом который должен находится перед символом "к". Если найден, берется символ "л", и т.д. пока не дойдет до следующей группы (\s|$). Ну и т.д. Надеюсь понятно.
Во всех грамотных программах программисты используют регулярки.
Peter, а регулярки используются везде, даже в твоем плагине.
В своих плагинах я не использовал никогда никакие регулярки, и все делал сам и "с нуля" (процентов на 90%), и если и есть какой чужой код, то он всегда переработан (просто взята идея) под собственные нужды. Вот потому меня и раздражает эсперальта. И все это пример того, что Delphi многогранен, и одну и туже задачу можно решать разными способами, а не по принципу скриптовых языков - заработало и слава Богу.
Цитатаmishem ()
NeoBook.exe и *.txt и есть регулярка. Со свои синтаксисом.
Если так подходить, то любое поисковое слово можно считать регуляркой.
Это я все к тому, что и не думал ни о каких "регулярках", а просто делал и все.
Цитатаmishem ()
Плагин Ганса сделан на основе этого компонента. И весь синтаксис построения регулярок там подробно расписан.
Цитата
Они съэкономят Вам многие часы ненужного кодирования, а в некоторых случаях будут и быстрее работать, чем вручную закодированные проверки.
На счет экономии времени возможно, а вот насчет "быстрее" очень и очень сильно сомневаюсь, скорее наоборот, и все зависит от того, как эти "ручные проверки" кодировать. Правильно построенная "специализированная" проверка всегда будет быстрее "универсальной". Хотя, при нынешних "мощах" компутеров разница в скорости будет практически неощутимой.
Добавлено (11 Июля 2017, 18:49) ---------------------------------------------
Цитатаmishem ()
Во всех грамотных программах программисты используют регулярки.
Например?
Сейчас посмотрел код компонента.... Обычное стандартное кодирование методом перебора и сравнения, ничего выдающегося. Разве что проделана относительно большоя по объему печатая работа (что действительно может сэкономить время, час-два) Вот если б он использовал ассемблер, то может и было бы быстрее, а так....
ЦитатаPeter ()
скорее наоборот, и все зависит от того, как эти "ручные проверки" кодировать.
Чудес на свете не бывает...
И сейчас могу точно сказать, что никогда не стану использовать этот компонент (даже представить не могу где и как его можно применить в Delphi), проще самому написАть "ручную" проверку под каждый конкретный случай, чем разбираться с этим скриптовым "синтаксисом". Хотя, если компонент сделан, то может и найдет кто ему применение.
Но, для NB это может(?) стать неплохим подспорьем, Правда утверждать, что это - незаменимая вещь (даже в NB), все же преувеличение. А насчет "грамотных программ" тем более!
mishem, кстати, как ты думаешь в моих плагинах анализируется "входная информация"? zmFunctions не в счет, т.к. там все примитивно и наивно. А она передается в плагин как PChar, потом преобразуется в строку, а потом....
Думаешь я строки сравниваю? Неа!
Думаешь все текстовые параметры, отображающиеся в окнах помощников-редакторах кода (в т.ч. и названия команд плагина) как текстовые в плагине тоже текстовые? Неа!
И в "грамотных программах", кстати, тоже так же. Так-что этот компонент если и может кому понадобиться, так при специализированной обработке теста (при условии, что самому программеру лень писАть свой код), другого применения ему просто не найти по определению
Не надо "опускать" Delphi (или С++) до уровня скриптовых языков!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться