|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 07.07.2023, 20:04 | |
|
Программа RegEditJumpHacking версия 2.2
В отличии от программы RegJump от Марка Руссиновича, программа не эмулирует нажатие клавиш в дереве regedit'а, а посылает напрямую запросы дереву процесса regedit, через SendMessage. Поэтому скорость доступа к нужному разделу реестра значительно увеличивается. Это в своём роде единственная программа RegJump, которая не эмулирует нажатие клавиш, а написана совсем по другому алгоритму, более правильно. Идея создания программы родилась благодаря testuser2. Данная программа полноценно отвечает на вопрос как управлять деревом другого процесса, не своего. А так же бонусом добавлена фишка встраивания адресной строки внуть редактора реестра, точно так же как это реализовано в десятке. Если программа запущена в скрытом режиме, то программа автоматически завершается, при закрытии редактора реестра (лезть в диспетчер задач и снимать задачу не надо). Команды запуска: любой путь к реестру, например HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wi ndows\CurrentVersion\Run Просто выполните команду запуска: RegEditJumpHacking.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wi ndows\CurrentVersion\Run Ключи: /hide - запустить программу в скрытом режиме /32 - запустить 32-битный regedit (для 32-битных операционных систем не используется) /no_address_bar - не встраивать адресную строку в редактор реестра (например для Windows 10 так как там уже есть адресная строка) /no_focus_in_tree_view - не переводить фокус на дерево редактора реестра, после нажатия клавиши Enter в адресной строке (этот ключ не применяется вместе с /no_address_bar) 07.07.2023 by HackerVlad
4
|
|
| 07.07.2023, 20:04 | |
|
Ответы с готовыми решениями:
354
Коды на Visual Basic Вывод решения вместо Immediate в textbox (visual basic 6.0) |
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 02.08.2023, 00:02 | ||||||
|
Модуль для изменения обоев на рабочем столе
Представляю Вашему вниманию новый модуль для изменения обоев на рабочем столе. Здесь три функции SetWallpaper, ActiveDesktopSetWallpaper и вишенка на торте - SetWallpaperUniversal. Советую пользоваться именно SetWallpaperUniversal так как она будет выигрывать по времени, для jpg картинок будет очень быстро устанавливать обои, плюс поддерживает все графические форматы. Теперь нет необходимости самому конвертировать картинку в BMP а потом её устанавливать!!! Функция SetWallpaper просто устанавливает обои, для XP эта функция поддерживает только BMP, в семёрке как BMP так и JPG, но не поддерживает PNG. Функция ActiveDesktopSetWallpaper устанавливает обои через интерфейс IActiveDesktop с помощью ассемблерной вставки, но код может иногда не работать если у вас другой линкёр (компилятор) но в большинстве случае должен работать, если у вас родной компилятор стандартного Vb6. Думаю проблем никаких не возникнет. Пользуйтесь на здоровье!
4
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 26.09.2023, 15:57 | ||||||
|
PixelingNT - программа для считывания пикселей с экрана (своеобразная экранная лупа)
Я давно ещё придумал и написал для себя эту программку, которая позволяет увеличивать область экрана вокруг курсора мыши в квадрате 16х16 пикселей, увеличивая в 16 раз один пиксель. Это очень удобная утилитка для программистов и веб-дизайнеров. Она позволяет очень легко определить цвет пикселя с экрана. Для программирования для Windows и для программирования для WEB, что для меня тоже очень часто нужно было и экран увеличивать, пиксели смотреть, и получать номер цвета пикселя. Это бывает очень важно при работе с цветами и пикселями. Давным-давно, в 2011 году, я написал для себя эту программу, и она была основана на функции GetPixel, во времена Windows XP, она работала спокойно, но вот сейчас настали другие времена, и в семёрке, для правильной работы, понадобился новый механизм считывания пикселей с экрана, с этим мне помог The trick, спасибо ему. Поэтому недавно я полностью переписал эту программу и решил поделиться со всем миром. Думаю, много кому нужно узнавать цвета пикселей с экрана, это очень-очень удобно. Идеальная утилитка для программистов и веб-дизайнеров. Теперь подгонять пикселя будет очень легко))) Итак возможности программы: 1. Нажатие комбинации клавиш Ctrl+Win позволяет останавливать слежение за экраном, чтобы как бы застопорить картинку в этой экранной лупе, чтобы потом на неё можно было навести мышку и спокойно выковырять нужный цвет. 2. Нажатие левой кнопки мыши копирует в буфер обмена номер цвета в API и в Html-формате. 3. Удержание курсора мыши в нижней области экрана позволяет перетаскивать саму программу, можно тягать её за низ. 4. Двойной щелчок мышью левой кнопкой мыши на низ формы позволяет так же её удобно отпозиционировать в нижний правый угол экрана, но таким образом, чтобы программа не залазила на таскбар. 5. Нажатие комбинации клавиш Ctrl+Win снимает также программу с заморозки с остоновленного режима и программа продолжает дальше следить за экраном вокруг курсора мыши. Но нажимать эту комбинацию клавиш, можно только, если курсор мыши не находится над самой программой (этой лупой такой своеобразной) Стандартная лупа Windows конечно же для таких целей не подходит. Поэтому это программа гораздо лучше, но её можно использовать и не только программистам конечно, а просто если кому-то что-то надо увеличивать на экране. Даю открытый исходный код (я очень добрый):
4
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 02.10.2023, 13:05 | ||||||
|
Список процессов с помощью функции WTSEnumerateProcesses
Давно помню искал в Интернете как пользоваться функцией WTSEnumerateProcesses, ещё пару лет назад, интересовался этой темой, так помню ничего толком не нашёл. Я тогда ещё плохо понимал в API и помню для меня было важно найти готовое решение, но так и не нашёл. Нашёл тогда один код, но он был глючный и постоянно были вылеты из среды IDE VB6, там что-то с CopyMemory намудрили не так. Написал свой код, который не глючит. В Интернете этого кода нигде нет для VB6 поэтому выкладываю. Эта функция кстати раньше была недокументированная вообще, теперь уже есть в MSDN полное описание, поэтому стало легче работать с этой функцией. Функция хороша тем, что сразу высвечивает весь список процессов со всеми PID, со всеми именами EXE, а так же со всеми SID, для лёгкого определения пользователя процесса.
5
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 10.10.2023, 11:53 | ||||||
|
PixelingNT версия 1.1
Новая версия программы PixelingNT. По просьбе иностранца xxdoc осуществил нормальное отображение окна программы в других DPI экрана. При 125% увеличения экрана и при 150% даже теперь работает нормально. Файл манифеста прилагается.
4
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||||||||||
| 22.10.2023, 20:53 | |||||||||||
|
Своя собственная подсказка на VB6
Вы когда-нибудь мечтали о своей собственной подсказке, под курсором мыши? Ваша мечта сбылась!!! Представляю Вашему вниманию свою подсказку, которая в виде формы и на которую можно расположить всё что угодно, хоть календарь (помню кому-то надо было). Я очень долго писал функцию (почти целую неделю) для вычисления размера курсора мыши прежде чем смог создать этот шедевр. И наконец-то мне это удалось! Ура!!! Форма...
Модуль...
4
|
|||||||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 16.11.2023, 00:01 | ||||||
|
Уникодный InputBox
Уникодный InputBox с полной поддержкой уникода и китайских символов для ввода. Написал за пару часов буквально этот модуль, так как понадобилось вводить в текстовое поле InputBox уникодные символы иногда. Например для того чтобы создать папку с уникодным именем. Так же можно менять заголовок диалога InputBox на уникодное имя тоже. И текст сообщение тоже уникодное. Радуйтесь) Единственное что не написал это смену стандартного шрифта на какой-нибудь другой. Но это можно тоже осуществить, если захотеть. Но китайский итак работает.
1
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 16.11.2023, 15:18 | ||||||
|
Уникодный InputBox версия 1.1
В новой версии модуля произведены некоторые улучшения и исправления. Теперь события отлавливаются в самом начале создания окон через EVENT_OBJECT_CREATE, таким образом, стало возможно изначально отловить все окна, и кнопки, и надпись статик в том числе, чтобы потом не искать через FindWindowEx. Изменение текста окон на уникодное теперь находится в WM_SHOWWINDOW самого диалогового окна, это перестановка позволила теперь отображать правильно уникодный заголовок диалогового окна с китайскими иероглифами, даже в классическом стиле окна, не прибегая к DefWindowProcW. Новый код модуля:
2
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 16.11.2023, 18:26 | ||||||
Сообщение было отмечено Catstail как решение
Решение
Модуль для вызова диалога выбора папки версия 2.5
Подходит как для VB6 так и для VBA. Данный модуль имеет широкие возможности. Можно самому указывать во сколько раз увеличивать окно диалога выбора папки. Можно устанавливать начальную папку обзора, не боясь что произойдёт глюк и не сработает прокрутка дерева. Диалог можно центрировать на экране!!!! А это очень удобно!!! Можно в адресной строке вводить папки, при этом если ввести файл, то файл выбираться не будет. Самая главная фишка: своя собственная кнопка "Создать папку". Полная поддержка уникода. Можно скрывать в обзоре папок всё кроме логических разделов жёсткого диска компьютера, всё кроме винчестера. Все остальные папки, такие как сетевое окружение, корзина, которые нам не нужны. Можно задавать файловые маски для папок, чтобы можно было выбирать только те папки которые содержат определённые типы файлов. Можно менять заголовок окна, в том числе с уникодным именем. Можно устанавливать поверх всех окон даже. Полностью прописан ресайз окна идеально-правильно, как надо. Убраны все неровности пикселей майкрософта. Каждый пиксель подогнан идеально-точно, используя правильные математические формулы расчётов расположения окон. Функция BrowseForFolder имеет множество параметров. Приведу здесь только код функции, так как весь модуль не помещается в сообщении. Чтобы увидеть весь модуль, вам придётся скачать ZIP-архив.
5
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||||||||||
| 19.11.2023, 01:51 | |||||||||||
|
Модуль для вызова юникодного InputBox'а версия 2.0
Наконец-таки, я создал новый модуль для вызова юникодного InputBox'а. Теперь InputBox вызывается по совершенно новой технологии, минуя саму функцию InputBox, вызывается всего одной строкой кода, с помощью функции DialogBoxParam. Оказывается можно вызывать диалоговое окно напрямую из ресурсов msvbvm60.dll! Спасибо конечно The Trick'у за подсказки как двигаться в правильном направлении. Мой юникодный InputBox работает даже без манифестов! Код нового модуля:
3
|
|||||||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 01.02.2024, 02:42 | ||||||
|
Модуль для вызова юникодного InputBox'а версия 2.5
Новая, усовершенствованная версия модуля. Теперь диалоговое окно InputBoxW вызывается по в точности таким же координатам, как и оригинальная функция InputBox, пиксель-в-пиксель одинаково. Так как была разгадана формула выравнивания диалогового окна инпутбокса, за что большое спасибо The Trick'у. Так же я добавил возможность позиционировать окно по координатам, так же как и в оригинальной функции, плюс добавил возможность подключения файлов справок и кнопки Help, в диалоговом окне. Новый код модуля:
3
|
||||||
|
758 / 277 / 14
Регистрация: 21.01.2023
Сообщений: 385
|
||||||||||||||||||||||||||
| 29.02.2024, 14:51 | ||||||||||||||||||||||||||
|
Синтез звука струны. Эмуляция физики процесса.
Представим, что струна - это цепочка массивных звеньев, связанных пружинками и закреплённых за два конца. Попробуем вносить в равновесную позицию струны некоторые возмущения и вычислять дальнейшие состояния струны с помощью численного интегрирования. Зададим самые простые законы упругости, когда сила, действующая на звено, пропорциональна смещению этого звена относительно среднеарифметической позиции двух соседей. Так же она пропорциональна силе натяжения струны. При интегрировании скорость - это интеграл ускорения, а ускорение пропорционально силе и обратно пропорционально массе звена. Для оптимизации силу натяжения можно заранее разделить на массу, эти величины постоянны. Зададим массивы для хранения состояний звеньев:
А позиция - это интеграл скорости, считаем так:
k1 совсем немного меньше единицы, скорость звена в каждом тике немного уменьшается. При таком расчёте струна, как и положено, затухает по экспоненте, но её тембр не меняется. Реальная же струна после удара звучит звонко, а дольше, по мере затихания, всё глуше, это от того, что струна, даже не натянутая, обладает упругостью, то есть стремится выпрямиться, и делает это тоже с потерей энергии. Это имитирует коэффициент k2, который немного больше нуля. Во вложении реализация этого алгоритма с небольшими добавлениями: - в массы звеньев вносится рэндомная погрешность, это придаёт звуку неидеальность, живость. Но, если слишком задрать эту поправку, звук станет "колокольным" и может немного фальшивить. - введена вероятность дребезга струны (о лады в случае гитары), как будто струну слишком сильно дёрнули. В небольших кол-вах это тоже придаёт живости. Если мы хотим задавать не силу натяжения и длину струны, а непосредственно ноты, вычислить параметры для конкретной ноты можно так (этой функции нет во вложении): Кликните здесь для просмотра всего текста
Нота "n" задаётся от 0 до 60 (от "ми" контроктавы до "ми" 3-й октавы) Значения по умолчанию kDemp, kHard и kSlap примерно соответствуют обычной гитаре-басгитаре. Меняя kDemp можно добиться звука от жёстких стальных струн через нейлон до "muted" или "pizzicato". Приложенный архив содержит код на VB6 и готовый EXE. Тестовая программа формирует четырёхсекундный фрагмент звука струны по заданным параметрам, воспроизводит этот звук и сохраняет его в WAV файл в текущей папке.
7
|
||||||||||||||||||||||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||||||||||
| 29.04.2024, 23:05 | |||||||||||
|
Модуль для вызова диалога выбора файлов
Написал модуль для вызова стандартного диалога выбора файлов для отображения окошка Открыть или Сохранить. Примечательно, что при открытии файлов можно выбирать сразу несколько файлов. А так же диалоговое окошко отображается в новом красивом стиле и при этом полностью совместима со старым Windows XP. Полностью поддерживает юникодные имена файлов и папок, что очень важно, так как, подавляющее большинство примеров такого кода в интернете не поддерживает юникодные имена, а только ансишные.
Код формы...
5
|
|||||||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||||||||||
| 02.05.2024, 21:31 | |||||||||||
|
Модуль для вызова диалога выбора файлов версия 2.0
Представляю Вашему вниманию новую, усовершенствованную версию модуля для вызова диалога выбора файлов. Версия 2.0 - это значительно улучшенная версия модуля. Этот модуль весь целиком и полностью написал я сам. Строк кода стало значительно меньше. Новые возможности модуля: 1. Теперь стало можно в функции выбирать включать или не включать множественный выбор файлов (AllowMultiSelect) 2. Массив, который наполняется именами файлов, arrFiles теперь для удобства стал необязательным параметром 3. Увеличен буфер nMaxFile до 65535 по максимуму, чтобы можно было выбирать сразу несколько тысяч файлов, но к сожалению сам по себе диалог, имеет внутреннее ограничение на количество выделенных файлов, и прям очень много, тысяч 10 файлов, выделить не получится, но тысячи 2-3 осилит... 4. InitDir теперь необязательный параметр, это папка старта по умолчанию 5. Фильтр масок файлов теперь задаётся через строку (так гораздо удобнее!), в которой идут разделители vbNullChar, а не через массивы как раньше Код модуля (теперь строк стало меньше!!!):
Код формы...
3
|
|||||||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||||||||||||
| 14.05.2024, 18:43 | ||||||||||||||||
|
Модуль вывода текста на форме в юникоде
Я недавно узнал, что есть такая API-функция TextOutW которая позволяет с лёгкостью выводить юникодные надписи на форму. Мне эта функция понравилась больше, чем привычная мне DrawTextW так как она легче в исполнении и не нужно прописывать все координаты региона. Этой функцией можно написать текст всего в одну строку кода вообще, без предварительного заполнения структуры региона. Так вот я решил использовать эту функцию, чтобы сделать замену привычного Print для рисования текста на форме. Я сделал функцию PrintW чтобы теперь ещё и поддерживался юникод! Это очень полезно и часто бывает нужно (в основном в качестве отладки) выводить текст на форме, с поддержкой юникода. Каждый новый вызов функции PrintW переводит строчку на следующею позицию на форме, в зависимости от размера шрифта, тут мне помогает функция GetTextExtentPoint32. Итак вот код модуля с функцией PrintW:
Развернуть код первой формы...
Развернуть код второй формы...
4
|
||||||||||||||||
|
758 / 277 / 14
Регистрация: 21.01.2023
Сообщений: 385
|
|
| 29.05.2024, 11:51 | |
|
Быстрый поиск простых чисел.
Используя одно ядро среднестатистического современного процессора, программа находит все простые числа до 2 000 000 000 менее, чем за 2 секунды, решения быстрее я пока не встречал. Программа использует модернизированный вариант метода "Решето Эратосфена". В программе создаётся маска на 15015 чисел. 15015 - это 3*5*7*11*13. Здесь нет множителя "2", почему? Потому, что мы ищем числа только среди нечётных. Таким образом мы проходим по натуральным числам шагами по 30030, но сразу с пропуском чётных чисел. Байтовый массив Mask() содержит нули на месте простых чисел и единицы на месте остальных. На каждом следующем шаге мы задаём в переменной Base базу, от которой отмечаем простые числа в массиве Out(). Сначала Base = 1, потом 30031 и т. д. В массив Out() копируется массив Mask(), таким образом мы сразу отмечаем заведомо НЕ простые числа, потом оставшиеся числа проверяются на делимость на простые числа от 17 до Sqr(Base + 30030). Все не прошедшие проверку считаем простыми. Приложенная программа может сохранять найденные числа в виде бинарного файла, это уже немного дольше.
1
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 01.06.2024, 18:21 | ||||||
|
Функция которая подсчитывает количество определённых символов либо подстрок в одной большой строке:
1
|
||||||
|
Модератор
|
||||||
| 27.06.2024, 23:00 | ||||||
|
Патчинг кодогенерации __vbaSetSystemError
Как известно любая API функция объявленная через Declare генерирует вызов функции __vbaSetSystemError которая задает свойство Err.LastDllError. Иногда может быть полезно избежать генерацию этого кода для производительности либо других целей. Для того чтобы сделать это необходимо пропатчить функцию кодогенератора EXMGR::ProcessSystemError:
4
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 15.07.2024, 10:26 | ||||||
|
Модуль для изменения обоев на рабочем столе версия 3.5
Новый модуль для изменения обоев на рабочем столе. Добавлена функция GetWallpaper для получения пути и имени файла к обоям на рабочем столе, а так же самое главное волшебство - плавное красивое появление картинки на рабочем столе, при её изменении, с fade-эффектом! Ну это только для семёрки, скорее всего. Так как в десятке нет красивостей... Главное это один раз вызвать функцию EnableActiveDesktop и обои на рабочем столе после этого всегда будут появляться с плавным красивым переходом с fade-эффектом! Но для того чтобы этот эффект был виден придётся использовать функцию ActiveDesktopSetWallpaper которая, к сожалению, по времени работает чуть медленнее... Но всё же! Главное - это красота ![]()
1
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 30.10.2024, 17:09 | |
|
Модуль для проигрывания WAV-файла из ресурсов
Имеется возможность проигрывать WAV-файлы из ресурсов своего EXE с помощью стандартных средств VB6, для этого спользуется функция LoadResWaveVB. А так же имеется возможность проигрывать WAV-файлы из ресурсов абсолютно любых файлов, где бы они не находились, с помощью функции LoadResWaveAPI. Полностью поддерживает юникодные имена файлов. Дописал сегодня этот модуль благодаря подсказки Argus19.
4
|
|
| 30.10.2024, 17:09 | |
|
Помогаю со студенческими работами здесь
340
Готовые решения и полезные коды на Visual Basic .NET (Часть-1) Готовые коды для решения лабораторных работ Написать программу решения квадратного уравнения. В Office Visual Basic
Полезные коды для PascalABC.NET Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|