Кодерские работы
Было ли у вас такое, что вы скопировали какой либо текст и следом захотели в дополнение к первому тексту, который уже находится в буфере обмена добавить ещё что-то и вставить потом вместе. Так вот пришла идея, была ли вам полезная такая программа?
😐 Так понимаю здесь вы не совсем поняли о чём идёт речь.
Сейчас поясню подробнее.
0️⃣ Представим ситуацию у вас открыта страница в браузере, откуда вы хотите что-то скопировать.
Как делается обычно:
копируете с сайта
- вставляете куда нужно, снова возвращаетесь на сайт и копируете
(так как текста находятся в разных местах страницы), далее вставляете куда необходимо.
Таким образом вам пришлось переключаться между окнами несколько раз, а именно 3 раза.
1️⃣ Про что говорил я:
Копируем с сайта
далее перемещаемся на этом же сайте в нужное место и докопируем (специальной комбинацией)
в итоге в буфере обмена есть:
Затем вставляем куда нужно данный текст и в итоге нет необходимости переключаться между окнами по несколько раз.
💡 Данная идея пришла ко мне случайно и вот решил узнать у вас будет ли такое полезно, а может вообще я не первый 😅 кто до такого додумался и уже есть подобные программные реализации, напишите в комментариях)
Сейчас поясню подробнее.
0️⃣ Представим ситуацию у вас открыта страница в браузере, откуда вы хотите что-то скопировать.
Как делается обычно:
копируете с сайта
текст1
- вставляете куда нужно, снова возвращаетесь на сайт и копируете
текст2
(так как текста находятся в разных местах страницы), далее вставляете куда необходимо.
Таким образом вам пришлось переключаться между окнами несколько раз, а именно 3 раза.
1️⃣ Про что говорил я:
Копируем с сайта
текст1
далее перемещаемся на этом же сайте в нужное место и докопируем (специальной комбинацией)
текст2
в итоге в буфере обмена есть:
текст1+текст2
Затем вставляем куда нужно данный текст и в итоге нет необходимости переключаться между окнами по несколько раз.
💡 Данная идея пришла ко мне случайно и вот решил узнать у вас будет ли такое полезно, а может вообще я не первый 😅 кто до такого додумался и уже есть подобные программные реализации, напишите в комментариях)
👾6
This media is not supported in your browser
VIEW IN TELEGRAM
Ну чтож, вот и готова базовая версия кейлогера.
👀 Надеюсь на видео видно, что пишу текст в телеграме, а он отображается у меня в окне программы. Правда все отображается на английском, но это особой роли не играет, т.к. мне нужно будет отслеживать только нажатие определенных клавиш.
⌨️ С захватом клавишь вне окна приложения разобрался, теперь нужно как-то зафиксировать именно сочетание клавишь и надо засунуть программу в трей.
👀 Надеюсь на видео видно, что пишу текст в телеграме, а он отображается у меня в окне программы. Правда все отображается на английском, но это особой роли не играет, т.к. мне нужно будет отслеживать только нажатие определенных клавиш.
⌨️ С захватом клавишь вне окна приложения разобрался, теперь нужно как-то зафиксировать именно сочетание клавишь и надо засунуть программу в трей.
👾7
Media is too big
VIEW IN TELEGRAM
👨💻 У меня получилось сделать добавление текста к существующему буферу обмена с помощью сочетания клавиш CTRL + C + Shift.
🤔 Все утро просидел чтобы понять как реализовать данную фичу.
🐞 Потому что возникали проблемы с асинхронностью, впервые использовал такую конструкцию как SemaphoreSlim - ограничивает количество потоков, которые могут получить доступ к ресурсу. В моем случае, ресурсом был список с нажатыми клавишами.
🖥️ Теперь предстоит протестировать, добавить пару фишек, привести к нормальному визуальному стилю и смогу выложить на GitHub и конечно поделиться с вами)
🤔 Все утро просидел чтобы понять как реализовать данную фичу.
🐞 Потому что возникали проблемы с асинхронностью, впервые использовал такую конструкцию как SemaphoreSlim - ограничивает количество потоков, которые могут получить доступ к ресурсу. В моем случае, ресурсом был список с нажатыми клавишами.
🖥️ Теперь предстоит протестировать, добавить пару фишек, привести к нормальному визуальному стилю и смогу выложить на GitHub и конечно поделиться с вами)
👾9
👨💻 Вот и готова финальная версия программы CopyMerge (будут баги, буду дорабатывать).
🤓 Думаю объяснять как пользоваться не нужно и так все написано на скриншоте.
Что же есть на данный момент в программе:
✅ Автозапуск, на усмотрение пользователя.
✅ Выбор разделителя 4 вариации (Enter, Space, ". ", ", ")
✅ Ну и самое главное для чего она создавалась возможность дополнять буфер обмена с помощью сочетания клавиш Ctrl + C + Shift.
🧠 Чего нового узнал:
- Добавление программы в автозагрузку, через редактирование реестра.
- Сворачивание программы в трей.
- Отслеживание нажатий клавиш.
- Добавление ссылок и форматирование текста внутри TextBlock.
🛠️ Также чуть позже покажу здесь часть кода с пояснениями, если вам интересно будет.
👨💻 А вот этот проект на GitHub: https://github.com/W1xon/CopyMerge
🤓 Думаю объяснять как пользоваться не нужно и так все написано на скриншоте.
Что же есть на данный момент в программе:
✅ Автозапуск, на усмотрение пользователя.
✅ Выбор разделителя 4 вариации (Enter, Space, ". ", ", ")
✅ Ну и самое главное для чего она создавалась возможность дополнять буфер обмена с помощью сочетания клавиш Ctrl + C + Shift.
🧠 Чего нового узнал:
- Добавление программы в автозагрузку, через редактирование реестра.
- Сворачивание программы в трей.
- Отслеживание нажатий клавиш.
- Добавление ссылок и форматирование текста внутри TextBlock.
🛠️ Также чуть позже покажу здесь часть кода с пояснениями, если вам интересно будет.
👨💻 А вот этот проект на GitHub: https://github.com/W1xon/CopyMerge
👾10
CopyMerge.rar
244.2 KB
А для тех, кто хочет просто скачать, вот архив распакуйте его и будет вам утилитка)
❤🔥7
📰 Новости немного не по тематике канала, но хочу поделиться с вами, все таки праздник.
👥 На фото выше мы с компанией Lemon Gang 🍋 в свой единственный выходной пьем китайский чай 🍵 и едим пасху своего приготовления 🧁.
А ещё из развлечений была игра "Uno Flip" 🃏, в которой у меня пока шанс проиграть выше чем у остальных 😰, но игра ещё не окончена 😏.
👥 На фото выше мы с компанией Lemon Gang 🍋 в свой единственный выходной пьем китайский чай 🍵 и едим пасху своего приготовления 🧁.
А ещё из развлечений была игра "Uno Flip" 🃏, в которой у меня пока шанс проиграть выше чем у остальных 😰, но игра ещё не окончена 😏.
❤🔥9
👋 Добрый вечер, давно не было новостей о разработке, так как было много дел на учебе (экзамен, курсовая) ничего интересного.
🖥️ Но вот я продолжаю работать над проектом "Xtreme Launcher".
♻️ Произошла переработка бокового меню: Объединили "Настройки игры" и "Настройки лаунчера" в один раздел "Настройки", а переключение между прошлыми окнами реализовано с помощью отдельной кнопки внизу страниц.
🎨 Ну а также куда без визуальной новизны.
Добавлены 5 новых тем:
〰️ Codewars 👨💻
〰️ Youtube 📺
〰️ Самокат 🛴
〰️ GitHub 👨💻
〰️ Adrenaline Rush Limited Edition 🍺
⚙️ Также не забыл про обещание показать код с пояснениями, был занят поэтому не было времени сделать это ранее.
🖥️ Но вот я продолжаю работать над проектом "Xtreme Launcher".
♻️ Произошла переработка бокового меню: Объединили "Настройки игры" и "Настройки лаунчера" в один раздел "Настройки", а переключение между прошлыми окнами реализовано с помощью отдельной кнопки внизу страниц.
🎨 Ну а также куда без визуальной новизны.
Добавлены 5 новых тем:
〰️ Codewars 👨💻
〰️ Youtube 📺
〰️ Самокат 🛴
〰️ GitHub 👨💻
〰️ Adrenaline Rush Limited Edition 🍺
⚙️ Также не забыл про обещание показать код с пояснениями, был занят поэтому не было времени сделать это ранее.
🔥7👾2
©️ Вот часть кода Keylogger из моей программы CopyMerge.
🛠️ Есть два метода KeyChecker и KeyBufferClear их логика выполняется в бесконечном цикле асинхронно.
☝️ И они используют один общий ресурс keyBuffer.
⛔ Если делать без Semaphore, то может возникнуть такая ситуация, что обе функции одновременно начнут работать с общим ресурсом. Один будет пытаться его заполнить, а второй очистить и возникнет ошибка.
🚥 Но при использовании Semaphore, мы говорим semaphore.WaitAsync() - подожди пока выполнится другой метод (грубо говоря), а потом делай что нужно. А строчка semaphore.Rease() говорит, что все я выполнился, теперь может выполнятся следующий код.
🗨️ Я попытался сказать максимально просто, чтобы разобраться более подробно прочитайте статью на Metanit: https://metanit.com/sharp/tutorial/11.8.php
#образовач
🛠️ Есть два метода KeyChecker и KeyBufferClear их логика выполняется в бесконечном цикле асинхронно.
☝️ И они используют один общий ресурс keyBuffer.
⛔ Если делать без Semaphore, то может возникнуть такая ситуация, что обе функции одновременно начнут работать с общим ресурсом. Один будет пытаться его заполнить, а второй очистить и возникнет ошибка.
🚥 Но при использовании Semaphore, мы говорим semaphore.WaitAsync() - подожди пока выполнится другой метод (грубо говоря), а потом делай что нужно. А строчка semaphore.Rease() говорит, что все я выполнился, теперь может выполнятся следующий код.
🗨️ Я попытался сказать максимально просто, чтобы разобраться более подробно прочитайте статью на Metanit: https://metanit.com/sharp/tutorial/11.8.php
#образовач
❤🔥4👍2
CopyMerge.rar
492.1 KB
🥱 Раз уж у меня сегодня бессоная ночь, из-за учебы, скриншот того, чем занят ниже (пишите свои догадки что это, а может кто-то знает), то держите.
🆙 Обновленная версия программы.
🆕 Из нововведений обработана такая ситуация, кода пользователь копирует что-то не с помощью стандартного сочетания клавиш, а с помощью мыши через контекстное меню "скопировать" раньше не учел этого и возникали проблемы, сейчас данная ошибка исправлена.
🆙 Обновленная версия программы.
🆕 Из нововведений обработана такая ситуация, кода пользователь копирует что-то не с помощью стандартного сочетания клавиш, а с помощью мыши через контекстное меню "скопировать" раньше не учел этого и возникали проблемы, сейчас данная ошибка исправлена.
❤4👾2
🎨 Пару постов назад я сказал, что сделал 5 новых тем.
🤦♂️ Но оказывается это не так и я сделал 6 тем, одна затерялась, т.к. забыл изменить её положение.
🙈 И она потерялась за другой кнопкой.
🛠️ Сейчас хотел сделать доп. тему, но так как уже есть готовая, то можно заняться другими аспектами проекта.
⚙️ Например добавить больше анимированных деталей в интерфейс.
🤦♂️ Но оказывается это не так и я сделал 6 тем, одна затерялась, т.к. забыл изменить её положение.
🙈 И она потерялась за другой кнопкой.
🛠️ Сейчас хотел сделать доп. тему, но так как уже есть готовая, то можно заняться другими аспектами проекта.
⚙️ Например добавить больше анимированных деталей в интерфейс.
👾5❤3
Что-то определенно пошло не по плану...
👾6
This media is not supported in your browser
VIEW IN TELEGRAM
👋 Что же тут у нас, а это анимированные иконки, пост ранее это вчерашний прогресс в разработке, сегодня уже все намного лучше и иконки стабильно работают и корректно отображаются.
👴 История с этими анимированными иконками началась ещё в том году,
📦 но решили отложить в долгий ящик и вот спустя долгое время и мучения оно заработало.
👨🎨 Пришлось привести иконки к подходящему виду, а именно убрать фон и перекрасить в белый цвет. И дело это не быстрое так как работать приходилось не с обычной картинкой, а с Gif файлом ( это набор картинок).
📚 Со стороны кода перебрал уйму вариантов того, как можно добавить в мод данные иконки.
🛠️ Среди них были: Images, MediaElement, Bitmap.
🤹♂️ Вот жонглируя этими элементами, в основном использовался MediaElement, который всё-таки и не заработал, а выдает баг, как в посте выше.
💡 А решил данную проблему скачав пакет NuGet "WpfAnimatedGif".
🧠 Дальше будет теоретический пост, в котором покажу конкретнее как делал и как получилось сделать так чтобы все работало.
👴 История с этими анимированными иконками началась ещё в том году,
📦 но решили отложить в долгий ящик и вот спустя долгое время и мучения оно заработало.
👨🎨 Пришлось привести иконки к подходящему виду, а именно убрать фон и перекрасить в белый цвет. И дело это не быстрое так как работать приходилось не с обычной картинкой, а с Gif файлом ( это набор картинок).
📚 Со стороны кода перебрал уйму вариантов того, как можно добавить в мод данные иконки.
🛠️ Среди них были: Images, MediaElement, Bitmap.
🤹♂️ Вот жонглируя этими элементами, в основном использовался MediaElement, который всё-таки и не заработал, а выдает баг, как в посте выше.
💡 А решил данную проблему скачав пакет NuGet "WpfAnimatedGif".
🧠 Дальше будет теоретический пост, в котором покажу конкретнее как делал и как получилось сделать так чтобы все работало.
❤4👾3
🧠 Время теории.
Начнем с первого варианта который я пытался реализовать. 🤔
🎥 MediaElement, используется в WPF для воспроизведения медиа файлов.
Главные параметры Source = путь к файлу, LoadedBehavior = поведение для воспроизведения.
🤷♂️ Этот элемент работает для видеороликов, но отказывается корректно отображать .gif файлы, почему так не знаю, возможно имеет свои ограничения.
😕 Затем отчаявшись начал использовать элемент Image, данный элемент отображает gif картинку, но она статичная.
🙌 Поискав ещё инфы о том, как можно запихнуть эти иконки в мой проект и чтобы они нормально работали, я нашел спасение.
🎁 NuGet пакет "WpfAnimatedGif".
🤩 Эта библиотека позволяет расширить возможности Image. Она добавляет свойство ImageBehavior.AnimatedSource (и не только), которое позволяет указать путь к .gif файлу и данный файл будет анимироваться в интерфейсе вашего приложения.
🔗 Также поделюсь ссылкой на данную библиотеку с вами.
https://github.com/XamlAnimatedGif/WpfAnimatedGif?tab=readme-ov-file
Начнем с первого варианта который я пытался реализовать. 🤔
🎥 MediaElement, используется в WPF для воспроизведения медиа файлов.
Главные параметры Source = путь к файлу, LoadedBehavior = поведение для воспроизведения.
🤷♂️ Этот элемент работает для видеороликов, но отказывается корректно отображать .gif файлы, почему так не знаю, возможно имеет свои ограничения.
😕 Затем отчаявшись начал использовать элемент Image, данный элемент отображает gif картинку, но она статичная.
🙌 Поискав ещё инфы о том, как можно запихнуть эти иконки в мой проект и чтобы они нормально работали, я нашел спасение.
🎁 NuGet пакет "WpfAnimatedGif".
🤩 Эта библиотека позволяет расширить возможности Image. Она добавляет свойство ImageBehavior.AnimatedSource (и не только), которое позволяет указать путь к .gif файлу и данный файл будет анимироваться в интерфейсе вашего приложения.
🔗 Также поделюсь ссылкой на данную библиотеку с вами.
https://github.com/XamlAnimatedGif/WpfAnimatedGif?tab=readme-ov-file
👾6
🔥 Настал важный этап в разработке Xtreme Launcher.
🚀 А именно адекватное обновление мода. Вы можете подумать: "Чего? Он же уже сделал обновление.".
🔧 Это была первая версия, но так как в ней был большой недостаток, а именно скачивание всех файлов вместо тех, которые были обновлены.
😖 Чисто теоретически оставить можно, но думаю никто не будет рад каждый раз качать по несколько гигабайт ненужных файлов.
☁️ Ближе к сути, мы сошлись на том, что будем использовать GitHub как основное хранилище файлов модификации. И встал вопрос, а как решить проблему, которую описал выше.
✅ Решение есть - это библиотеки для работы с GitHub, сейчас стоит выбор между LibGit2Sharp и Octokit.net.
🤔 Что же выбрать?
🚀 А именно адекватное обновление мода. Вы можете подумать: "Чего? Он же уже сделал обновление.".
🔧 Это была первая версия, но так как в ней был большой недостаток, а именно скачивание всех файлов вместо тех, которые были обновлены.
😖 Чисто теоретически оставить можно, но думаю никто не будет рад каждый раз качать по несколько гигабайт ненужных файлов.
☁️ Ближе к сути, мы сошлись на том, что будем использовать GitHub как основное хранилище файлов модификации. И встал вопрос, а как решить проблему, которую описал выше.
✅ Решение есть - это библиотеки для работы с GitHub, сейчас стоит выбор между LibGit2Sharp и Octokit.net.
🤔 Что же выбрать?
🤔10