|
oh my god
|
|
| 29.05.2016, 07:52 | |
|
0
|
|
| 29.05.2016, 07:52 | |
|
Ответы с готовыми решениями:
356
Коды на Visual Basic Вывод решения вместо Immediate в textbox (visual basic 6.0) |
|
185 / 36 / 3
Регистрация: 28.05.2015
Сообщений: 149
|
|
| 30.06.2016, 08:02 | |
|
Не так давно мой друг попросил прислать ему программу, которая не позволяла бы пользователям запускать запрещённые приложения. Решил заодно выложить её сюда.
Можно, конечно, было найти что-нибудь в Интернете, но захотелось сделать что-то своё. Написал простенькую программу, которая будет не блокировать, но моментально закрывать запрещённое приложение. Так как друга зовут Сергей, то и код активации такой же - в справке написано. Исходник, естественно, можно изменить. Времени на написание было всего 2 дня - код сыроват, но вполне работоспособен. Тестировал только на Win7 x64. Единственная проблема: здесь используются хуки для перехвата нажатия пароля для активации окна программы, следовательно, во время отслеживания сложно печатать тексты, т.к. иногда нажатия "поглощаются" и буква не печатается - нужно повторно её нажимать. Так как времени у меня было мало эта незначительная проблема осталась и я пока не знаю как её решить, но программа рабочая. Перед использованием желательно прочитать справку, нажав на "?".
4
|
|
|
185 / 36 / 3
Регистрация: 28.05.2015
Сообщений: 149
|
|
| 30.06.2016, 08:20 | |
|
Есть на проекте games.mail.ru игра "Виселица". Именно под неё я и написал небольшую программу. К ней приложен *.txt-словарь. Есть и своя небольшая справка. Интерфейс интуитивно-понятный. Есть подобного рода программы в Интернете, но свою реализацию я считаю лучшей. Тем более, благодаря ей, у меня самый большой процент выигрышей, что видно на скрине.:-) Очень не хотелось выкладывать исходник, но всё же решился.
Пользуйтесь.
0
|
|
|
Модератор
|
|
| 08.07.2016, 10:46 | |
|
TrickSound - класс для работы с аудио.
Привет всем! Этот класс предоставляет простой интерфейс для захвата и воспроизведения звука. Он также не требует никаких дополнительных зависимостей и работает автономно. Объект данного класса генерирует событие NewData когда устройство захвата заполняет внутренний буфер звуковыми данными или устройству воспроизведения требуется очередная порция звуковых данных. Для того чтобы инициализировать воспроизведение вызовите метод InitPlayback, для захвата InitCapture. Затем нужно вызвать StartProcess для того чтобы начать воспроизведение/захват. Я сделал два примера использования этого класса: простой синтезатор и простой диктофон.
1
|
|
|
Модератор
|
||
| 08.07.2016, 11:55 | ||
|
Шифрование EXE файла.
Всем привет! Представляю пример реализации простого шифрования EXE файла на основе файла лицензии. При некорректном файле лицензии EXE не запустится и выдаст сообщение об ошибочной лицензии, большинство кода будет зашифрованным, в ином случае EXE сам расшифровывает свой код и запускается. Как это работает? Во-первых, чтобы была возможность расшифровывать EXE нужно чтобы код расшифровки не шифровался. Для этого в коде используются функции маркеры: BEGIN_OF_NON_ENCRYPTABLE_REGION и END_OF_NON_ENCRYPTABLE_REGION. Код между ними будет нетронут. Во-вторых, для шифрования файла нужно запустить его с параметром crypt:[файл лицензии], к примеру:
В общем процедура шифрования определяет границы исполняемого кода и XOR'ит его с файлом лицензии, который выступает как кольцевой буфер. Потом контрольная сумма оригинальных данных сохраняется в вышеуказанное поле EXE файла. Шифрованный файл сохраняется как [ModuleName]__encrypted.[extension] в той же директории, оригинальный файл не изменяется. Теперь если запустить файл то программа сначала проверит файл лицензии (он должен называться license.lic и лежать в директории EXE) и если попытается расшифровать его, одновременно вычисляя контрольную сумму. Если после полной расшифровки сумма совпадает - файл успешно расшифрован и запускается основной код, в противном случае выводится сообщение об ошибке. Вот пример это код до шифрования: Этот код после: Спасибо за внимание!
8
|
||
|
Модератор
|
|
| 08.07.2016, 12:20 | |
|
Клонирование директории в отдельном потоке.
Нередко возникает необходимость копирования директории с ее структурой в другое место. Для этого идеально подходит метод FileSystemObject::CopyFolder, но во-первых он блокирует вызывающий поток до полного завершения, а также не имеет никаких интерфейсов для получения состояния процесса копирования. Для обхода первого ограничения достаточно всего-лишь вызвать метод в другом потоке, но второе ограничение уже никак не обойти (документированными способами). В качестве пополнения примеров многопоточности для своего кирпича, я решил создать небольшое приложение позволяющее получать расширенную информацию во время копирования директории не блокирующее основной GUI поток. Для межпоточного обмена данными используется APC очередь, с помощью которой доставляется сообщение из потока копирования в главный поток. В качестве уведомления используется интерфейс ICopyFolderNotify, который реализуется необходимым объектом и получает уведомления из другого потока. Пример достаточно сложен, но содержит некоторые особенности работы с многопоточностью на VB6 (ручное копирование переменных между потоками). Для работы нужно либо взять tlb отсюда, либо использовать DLL раскоментровав API vbCreateThread. Пример работает и в IDE и в скомпилированном виде (в IDE запуск в основном потоке). Спасибо за внимание.
3
|
|
|
Модератор
|
|
| 08.07.2016, 12:52 | |
|
Получение миниатюр изображений в отдельном потоке.
Всем привет! Как-то меня попросил один человек сделать ему пример в котором будут извлекаться миниатюры изображений в какое-либо хранилище, и чтобы это не блокировало основной поток. В качестве пополнения базы примеров для своего кирпича я сделал этот пример. В этом примере извлекаются все возможные изображения из указанной директории и создаются превью, которые помещаются в объект потока (IStream). Связь между потоками осуществляется через оконные сообщения, для этого используется мой класс безопасного сабклассинга.
3
|
|
|
|
||||||
| 05.08.2016, 02:10 [ТС] | ||||||
|
Перечисление файлов тома NTFS, используя Master File Table и USN Journal
Поиск файлов на основе этого метода ~ от 10 до 200 раз быстрее, чем стандартный FindFirstFile / FindNextFile, т.к. информация берётся напрямую из MFT (скорость больше зависит от процессора и дописанной Вами логики). Подобный движок используется в программе 'Everything'. Из минусов: - требуются повышенные привилегии. - поддерживаются только тома NTFS (и ReFS). Демо без интерфейса. В примере - вывод в окно отладки всех файлов .lnk на диске C: (исключаются папки и симлинки). Функция FindAllFiles(szDriveLetter, ExcludeMask, ExtMask), где: szDriveLetter - буква диска ExcludeMask - битовая маска исключаемых атрибутов файловых объектов ExtMask - искомое расширение имени файла Как конструируется полный путь к файлу: В журнале USN хранятся только имена файловых объектов и ссылки на родительский каталог. Итого есть 2 способа получить полный путь: 1) создать полное дерево. Минус: - программа скушает очень много памяти. Плюс: - это работает быстрее, если Вашей задачей является обязательное перечисление полных имен ВСЕХ файлов. - можно изменить код таким образом, чтобы отображались удалённые файлы. Полный путь к ним можно будет получить только, имея дерево ссылок. 2) открыв файл и затем через NtQueryInformationFile. Минус: - файл может быть заблокирован. - актуально, только если нужно искать по имени, а в результатах поиска ожидается небольшое кол-во файлов (скажем ~ до 1000). У меня сделано по варианту №2. Результат в переменной sFullPath. Исходник
Возможно, если будет время, распишу в блоге более подробно, как работает и что ещё может эта штука и в каких целях можно её использовать.
4
|
||||||
|
Модератор
|
||||||
| 24.08.2016, 00:16 | ||||||
|
Удаление всех ресурсов после выполнения программы.
Всем привет. Я бы хотел продемонстрировать небольшой проект, который содержит модуль для удаления файлов после завершения работы EXE. Это может быть полезно к примеру для программы которая использует какие-либо библиотеки для своей работы и нужно обеспечить удаление этих компонентов с жесткого диска после выполнения программы. Этот модуль позволяет даже удалить собственный EXE после завершения работы. Принцип работы очень прост, модуль содержит шеллкод написанный на VB6 который внедряется в процесс "зомби" и ждет завершения программы. После завершения программы шеллкод удаляет файлы которые пользователь передал в него, т.е. исключаются какие-либо блокировки со стороны EXE файла, поэтому мы можем все удалять даже сам EXE. После выполнения всех действий шеллкод завершает работу процесса "зомби". Сам модуль:
Этот модуль использует модуль modTrickCallPointers для вызова функций по указателю. В аттаче небольшой пример использования который распаковывает внутренний OCX, а после завершения приложения удаляет его и собственный EXE файл.
8
|
||||||
|
|
||||||
| 25.08.2016, 18:22 [ТС] | ||||||
|
Удаление ресурсов после выполнения программы.
Похожий по своим целям код, работающий по другим принципам. Используется для создания портативных приложений, для которых необходимо автоматически зачищать всё, что было распаковано из своих ресурсов. В приложенном примере после запуска EXE распаковывается MsComCtl.ocx, затем создаётся экземпляр формы, которая использует этот OCX без регистрации (использован SxS манифест). При завершении процесса, создается процесс-клон, куда передается PID оригинального процесса через командную строку. Этот клон следит пока завершится процесс № 1, после чего удаляет OCX и завершается сам. Ограничения метода: - точкой входа должен быть стандартный модуль, либо форма, которая не использует OCX (например, пустая форма, которая запустит форму № 2, а сама станет скрытой). Смысл в том, чтобы в момент запуска процесса, он не использовал ресурсы.
Не по теме:
В коде использован CreateProcess вместо обычной VB-шной функции Shell, т.к. она почему-то виснет на 10,5 сек. (так и не разобрался почему), если кому-то интересно, приложил демку Free_mem3. Free_mem4 - аналог кода выше (на основе CreateProcess). Тестировать только в скомпилированном виде!
3
|
||||||
|
Модератор
|
|
| 14.09.2016, 19:44 | |
|
Загрузчик, шеллкод, без рантайма...
Статья из двух частей которая подробно описывает этапы создания EXE загрузчика на VB6. Это обновление моего предыдущего инсталлятора в котором досконально описывается каждый шаг его работы; также добавлена компрессия файлов. Немного описывается структура PE-файлов (в частности исполняемых). Некоторые недокументированные структуры Windows которые связаны с загрузочными модулями. Также присутствует подробное описание загрузки EXE файла из памяти минуя диск, обработка таблицы импорта, таблицы релокаций. Подробно описываются способы "отучения" VB6 приложений от рантайма что позволит запускать приложения в среде с отсутствующей библиотекой MSVBVM60. Также это поможет писать многопоточные приложения (без всяких дополнительных зависимостей) поскольку они имеют также ограничения на использование рантайма. В дополнение рассказывается о принципах написания шеллкода на VB6 что позволит писать приложение с внедрением кода в другие процессы и там выполнять какие-либо действия. Часть 1. Часть 2.
6
|
|
|
Модератор
|
|
| 28.09.2016, 11:08 | |
|
Trick Advanced Tools.
![]() Всем привет! Представляю вашему вниманию небольшую разработку - Add-in который позволяет в некоторой степени облегчить отладку некоторых программ, а также расширяет возможности компиляции. Все исходные коды прилагаются. Данный Add-in имеет следующие возможности:
Описание и файлы.
4
|
|
|
oh my god
|
||||||
| 30.09.2016, 19:11 | ||||||
|
Здравствуйте друзья !
Спешу поделиться чемто новым И как всегда надёжным и проверенным способом !!! Программа Аккаунты, уверяю ! Всё продуманно учить не придётся ) Итак: Хранение настроек находиться всегда в AppPath\User и тд тоесть норм. ВС сохранит ваши записи (проверял) совместимость со всеми 2000 xp 7,8 (-проверил Обижающихся слушать не буду) Итак: Самая нужная, самая актуальная и правильная версия здесь: Исходняк ...(и изжога для наших дедушек) на сайте раз.. уж.. моей семейке понравилось: ция и итд (сэкрэт) Добавлено через 19 минут Сэкрэкт W#1
1
|
||||||
|
oh my god
|
||||||
| 30.09.2016, 19:18 | ||||||
|
форма:
2
|
||||||
|
|
||
| 01.10.2016, 06:55 | ||
|
И "Пере запуск" надо бы исправить. А то перед Ксюшей неудобно
0
|
||
|
oh my god
|
||||||
| 03.10.2016, 16:24 | ||||||
|
Можно и зашифровать записи, сделать это достаточно легко
с помощью генератора случайных чисел. Дело в том, что если указать для генерации стартовое число то последовательность будет повторяться в моём следуещем примере всё так и сделанно, разумеется я не стану показывать как у меня это реализованно но с большой радостью выложу алгоритм шифрования, на основе выше сказанного в этом алгоритме если изменить константы генераций, то уже никто не сможет это прочесть кроме той программы которая этот файл сохранила Шифрование записей
в блокноте, тоесть в каком виде эта инфа храниться
1
|
||||||
|
|
||
| 03.10.2016, 21:03 | ||
![]() Скажем так, на прочтение такой шифровки потребуется секунд на 20 больше времени, чем не шифрованного текста. Но в любом случае уже лучше, чем ничего!
1
|
||
|
0 / 0 / 0
Регистрация: 05.12.2016
Сообщений: 1
|
||||||
| 05.12.2016, 19:48 | ||||||
|
Больше недели бился над программой вычисления определителя матрицы через разложение по строке на visual basic. Вот результат:
0
|
||||||
| 05.12.2016, 19:48 | |
|
Помогаю со студенческими работами здесь
180
Готовые решения и полезные коды на Visual Basic .NET (Часть-1) Готовые коды для решения лабораторных работ Написать программу решения квадратного уравнения. В Office Visual Basic
Полезные коды для PascalABC.NET Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|