|
|
|
| 18.05.2015, 10:16 [ТС] | |
|
Расчет хешей:
http://www.frez.co.uk/free/vb6code
4
|
|
| 18.05.2015, 10:16 | |
|
Ответы с готовыми решениями:
360
Коды на Visual Basic Вывод решения вместо Immediate в textbox (visual basic 6.0) |
|
Заблокирован
|
||||||
| 21.06.2015, 18:20 | ||||||
|
Фрейм, который дружит с манифестом
Разработал фрэйм который полностью имитирует оригинальный Но при этом дружит с манифестом, не вызывает глюков как в режиме проектирования, так и в режиме выполнения Целиком код модуля UserControl
Картинки ! В архиве тэстовый проект
0
|
||||||
|
|
|
| 29.06.2015, 13:07 [ТС] | |
|
Функция sTrimU (аналог Trim для обрезания произвольных букв)
1 аргумент - строка, из которой будут вырезаны символы слева и справа. 2 аргумент - символ или набор символов, которые нужно урезать. Trim$, обрезка пробелов, табуляций и прочего
1
|
|
|
|
||||||
| 29.06.2015, 20:19 [ТС] | ||||||
|
Получение списка процессов / информации о потоках процессов
Показывает: - имя процесса, - путь к образу, - PID - да и любые другие данные полей структуры SYSTEM_PROCESS_INFORMATION Данному коду не нужны права Администратора. Используется функция NtQuerySystemInformation. Тем не менее, для получения полного пути к образу нужны повышенные привилегии, чтобы открыть процессы, запущенные с правами выше предоставленных группе "Ограниченный пользователь". Путь получаем разными функциями в зависимости от версии ОС: - Windows XP - GetModuleFileNameEx, - а для x64 битных процессов - GetProcessImageFileName с преобразованием имен в стиле объектов ядра (\Device\HarddiskVolumeX) в стиль имен разделов диска. - Windows Vista и выше - QueryFullProcessImageName, если ошибка, то функциями, описанными выше. Для процессов, открытых от LOCAL SERVICES, путь не всегда будет получен по причине отказа в доступе для открытия процесса на чтение. Диспетчер задач такие данные берет скорее всего из таблицы хендлов smss.exe (как например, это делается в "Process manipulator" (взял у одного китайца, м.б. кому то будет интересно посмотреть (в учебных целях), код прилагаю / не проверял) ). В коде также предоставляются привилегии отладчика. Process List Кликните здесь для просмотра всего текста
4
|
||||||
|
|
||
| 30.06.2015, 23:58 [ТС] | ||
|
Класс получения информации об ОС:
Внимание! Обновлённая версия здесь.
Operating System Version Targeting your application for Windows
4
|
||
|
Супер-модератор
|
|
| 01.07.2015, 08:47 | |
|
Dragokas, у меня была проблема админских прав (в инсталляторе для доступа к реестру). Я решил ее так:
- пытаюсь создать ключ в реестре - удалось - идем дальше - нет - сообщение о недостатке прав.
0
|
|
|
|
|||||||||||
| 01.07.2015, 15:25 [ТС] | |||||||||||
|
Catstail, инсталлятор самодельный?
Тогда, я думаю, если требуется запись в куст HKLM, более кратким решением будет просто добавить манифест с правами requireAdministrator. Система перед запуском инсталлятора сама сообщит о недостатке прав. Для добавления манифеста к программе на VB6 можно воспользоваться 2 способами: 1) Добавить файл манифеста в ресурсы приложения в самом проекте. Для этого нажать "Tools" -> Resource Editor, предпоследняя иконка "Add custom resource", выбрать файл манифеста. Двойной клик по ресурсу в появившемся дереве. Указать: тип: #24, ID: 1. Язык - не важно. 2) пропатчить готовый EXE-файл. Сделать это весьма просто с помощью программы Manifest By The Trick. 1-й способ имеет преимущества в плане - не нужно постоянно пропатчивать свой проект при выпуске новой версии программы. 2-й способ имеет +, если нужно добавить/заменить манифест в чужом приложении. Детальнее о манифестах и программе Manifest By The Trick: Кликните здесь для просмотра всего текста
Я выпустил форк v.1.3. Возможно, The Trick, захочет обновить и у себя в блоге. Список изменений
Список изменений: ' ver. 1.3 fork: ' Добавлена замена файла манифеста вне зависимости от языка уже присутствующего ресурса ' Автоматически исправляется название кодировки в заголовке текста манифеста ' Автоматически добавляется заголовок в манифест, если он отсутствовал ' Производится выравнивание манифеста по 4-байтовой границе ' Если файл содержал атрибут "Только для чтения", он будет снят ' Добавлена иконка ' ver. 1.2 fork: ' Файл манифеста перекодируется в UTF-8 (Спасибо The Trick) ' Добавлено меню "Open manifest file" ' Добавлены образцы файлов манифеста ' ver. 1.1 fork: ' 1. Добавлено чтение манифеста по-умолчанию из файла "manifest.txt" ' 2. Добавлено меню "Save to default manifest" ' 3. Добавлен тихий режим (ключ командной строки -silent). ' 4. Добавлена возможность работы через командную строку. ' 5. Удалено создание резервных копий файла, который патчится. Как пользоваться: 1) Подготовьте файл манифеста (в архиве уже есть несколько готовых). 2) Запустите Manifested.exe. Нажмите File -> Path... Выберите нужный EXE-файл, нажмите ОК. Все готово. По умолчанию, программа открывает файл манифеста, который лежит рядом с ней под именем manifest.txt Файл должен быть в кодировке ANSI !!! (программа сама сделает нужное конвертирование) Также поддерживается запуск из командной строки:
Зачастую манифесты используются: 1) для изменения привилегий, с которыми запускается приложение (например, отображение диалогового окна UAC, для запуска программы сразу с повышенными привилегиями.) 2) для добавления совместимости приложения с операционными системами поколения Windows Vista и выше (ID каждой ОС должен быть отдельно прописан в файле манифеста). См. пример в этой теме. Точнее говоря, программа сообщает системе, что она с ней совместима. Остальное - на совести ее автора. Также без этого, функция GetVersionEx будет неправильно возвращать версию ОС на системах от Windows 8.1 и новее. 3) Активации новых стилей визуального оформления кнопок/диалогов/и пр... (программа может не запустится в Windows XP ! - потребуется инициализация через InitCommonControlsEx) Этот набор функций будет зависеть от того, как Вы составите текст файла манифеста. Более подробно, что такое и зачем нужен манифест. Немного о составлении манифеста. 1. <requestedExecutionLevel> Уровень прав, который затребуется при старте приложения, делится на 3 вида: - asInvoker - запуск с текущими правами - HighestAvailable - запросит повышенные привилегии, но если пользователь ими не обладает, то запустится в ограниченной среде - RequireAdministrator - всегда затребует повышенные привилегии. Если получить их не удалось, программа не запустится. 2. Файл должен быть выровнен по 4-байтовой границе. Это означает, что размер файла (в байтах) должен быть кратен 4 (делится нацело). Для этого можно просто добавить недостающее кол-во пробелов в конец файла. Пример файла манифеста:
3
|
|||||||||||
|
|
||||||||||||
| 02.07.2015, 23:52 [ТС] | ||||||||||||
|
Класс для работы с реестром Windows
Описание функционала: Кликните здесь для просмотра всего текста
Все функции юникодные. Поскольку класс писался для обратной совместимости с проектом HiJackThis, аргументы всех функций приведены в единый стандарт и поддерживают гибридный способ указания улья: 1) 1-й аргумент - хендл (константа) улья, либо: 2) 1-й аргумент - число 0, а 2-й на выбор: - полное имя улья в виде строки - сокращенное имя улья в виде строки Последний аргумент всех функций опционален - управляет реестровым редиректором: - true - включить редиректор. - false - не включать (по-умолчанию, редиректор отключен). Небольшое демо использования части функций: Кликните здесь для просмотра всего текста
Устарело. Обновления забирать отсюда (не Stand-alone).
3
|
||||||||||||
|
|
||||||
| 10.07.2015, 13:29 [ТС] | ||||||
|
Класс StringBuilder - ускорение операций конкатенации строк
Автор: VolteFace fork ver v1.2 by Dragokas Этот класс позволит значительно увеличить скорость, если Вам нужно множество раз объединять кусок текста к одной и той же переменной. Всего в нем присутствуют такие методы: Append(ByRef str As String) - Дополнить строку Clear() - Очистить строку ToString() As String - Получить текущую строку StringData(ByRef value As String) - заменить строку на указанную Insert(ByVal index As Long, ByRef str As String) - вставить фразу в указанную позицию строки (при вставке текст не заменяется) Overwrite(ByVal index As Long, ByRef str As String) - вставить фразу поверх указанной позиции (текст будет заменен наложенным). Remove(ByVal index As Long, ByVal Length As Long) - удалить указанный участок строки Length() - вернуть длину текущей строки Класс я немного модифицировал, переименовав пару методов и заменив во всех методах способ передачи аргумента по ссылке (в оригинале было - по значению). Так будет еще быстрее. Когда строка более не нужна, освободите память, занятую переменной, уничтожив экземпляр класса. Пример:
Также обратите внимание, что при инициализации класс сразу выделяет под переменную 1 МБ памяти. Не используйте необдуманно, или ограничьте внутри класса константу CHUNK_SIZE. Скачать последнюю версию класса можно отсюда.
4
|
||||||
|
Модератор
|
|
| 27.07.2015, 14:55 | |
|
Direct3D9 библиотека типов для VB6.
Всем привет. Уже довольно давно занимаюсь созданием библиотеки типов Direct3D9 и вспомогательных функций D3DX для VB6. Итак в архиве содержится библиотека типов "DirectX 9 for Visual Basic 6.0 type library by The trick" (dx9vb.tlb) содержащая описание следующих интерфейсов:
Также в архиве содержится несколько модулей написанных на VB6:
Также в архиве содержится несколько тестовых примеров работы. Скачать.
3
|
|
|
Модератор
|
|
| 27.07.2015, 14:56 | |
|
DirectSound библиотека типов для VB6.
Параллельно с Direct3D9 я делал библиотеку типов и модуль с вспомогательными функциями для DirectSound. В архиве библиотека типов dsvb.tlb и модуль DS_Functions.bas. В дальнейшем добавлю модуль класса для поддержки асинхронных уведомлений, пока можно пользоваться этим. В модуле DS_Functions содержатся следующие функции:
TLB также особо сильно не тестировалась, поэтому что-то может не работать. Если что-то не работает пишите сюда. Скачать.
2
|
|
|
|
||||||||||||
| 05.09.2015, 16:21 [ТС] | ||||||||||||
|
Преобразование даты из Unix-стиля в локальное время в формате Date
На примере получения времени установки ОС.
Лайт-версия функции
Демо + альтернативный способ.
1
|
||||||||||||
|
|
||||||||||||||||
| 08.11.2015, 18:47 [ТС] | ||||||||||||||||
|
Проверка легитимности электронной цифровой подписи Authenticode у PE EXE/
проверка наличия WHQL подписи у драйвера Давненько хотел запилить статейку на эту тему, но за отсутствием времени выкладываю демку, которая есть. Код неплохо закомментирован, так что для желающих изучить не составит труда. В сети гуляет множество примеров с дичайшими ошибками. Мною был взят за основу пример на C++ от AD13, автора Rootkit Releaver, затем существенно дополнен и исправлен. Здесь нет кода для извлечения имени подписанта сертификата и timestamp, но я планирую это сделать в вер. № 2. Вызывать нужно эту функцию:
Простейший пример использования с выводом результата в отладочную консоль:
Небольшой ликбез
Флаги (параметр 2) можно комбинировать через OR:
SV_DoNotUseHashChecking - по умолчанию происходит проверка по хешу. Если ОС уже проверяла эту подпись, то на второй раз проверка будет проводиться чуть быстрее. Этот флаг отключает такое кеширование. SV_DisableCatalogVerify - если проверяете только внутреннюю (embedded) подпись, то проверку по каталогу можно отключить. SV_isDriver - указывайте его, если проверяете драйвер на предмет подписи WHQL. ======================================== =============== Дополнительные плюшки: 1) В код проверки заложено доп. кеширование, основанное на Scripting.Dictionary или можно подключить класс хеш-таблиц от Кривоуса Анатолия (на Ваш выбор). Это означает, что если Вы уже проверяли этой функцией какой-то путь, то функция просто вернет результат прошлой проверки, не вызывая больше никаких API. 2) Также в отличие от утилит Руссиновича и пр., здесь реализован обход одной из узвимостей, приводящей к фризу всего механизма проверки ЭЦП по каталогу. Если это обнаружено, дальнейшая проверка будет осуществлена только по внутренней (embedded) подписи. 3) Результат проверки определяется по коду возврата функции WinVerifyTrust. По нему же определяется расширенное описание ошибки, наиболее популярные из которых я постарался внести в свою функцию. Способа получить текстовое описание автоматически нет. Заостряю внимание, что это не исчерпывающий список. ======================================== =============== На счет двух демок. 1) Запускается батником VerifyByList.cmd Он формирует список путей всех *.exe и *.sys файлов в каталоге %SystemDrive%\* Затем вызывает для каждого из них функцию проверки ЭЦП. Результат проверки будет поделен на несколько файлов: - report_sign_signed.txt - report_sign_not_signed.txt - report_sign_bad.txt - report_sign_error.txt 2) Вторая демка запускается из IDE (form_load), вывод в консоль отладки. Прежде чем ее запускать, зайдите в папку bin и распакуйте в нее *.exe файлы. (пароль: virus). Будь осторожны: не запускайте эти exe-файлы. Я не гарантирую их безопасность. Они только для демки (там разные вариации ЭЦП).
1
|
||||||||||||||||
|
Супер-модератор
|
||||||
| 08.11.2015, 21:29 | ||||||
|
Делюсь кодом. RLE-сжатие двоичных файлов:
Кликните здесь для просмотра всего текста
Код, разумеется, можно улучшить.
4
|
||||||
|
|
|||||||||||
| 12.11.2015, 01:19 [ТС] | |||||||||||
|
Windows Scheduled Tasks Enumerator/Killer
(Перечисление задач Планировщика заданий + функция удаления) Совместимость: Vista+ для VB6/VBScript. Зависимость: нужна запущенная служба "Планировщик заданий". Выводит все, в т.ч. задания от Майкрософт (они расположены в подкаталогах). GUI не писал. Вывод - в окно отладки.
например: \Adobe Flash Player Updater На счет создания задач (в т.ч. на VBS) есть много примеров на MSDN, поэтому интереснее было написать именно перечислитель. Здесь используется много интерфейсов с наследованием одного от другого, связи между которыми довольно плохо документированы в оф. доках. Достаточно только взглянуть на этот внушительный список, чтобы испугаться -)). В планах - совместимость с XP + ручной парсер xml / killer ключей (реестр) для случаев, когда нужно работать с задачами при отключенной службе. На текущий момент есть 2 версии интерфейсов:
Шпаргалка по наследованию и переходам между интерфейсами:
Как удалить задание. ITaskFolder::GetTask(Path) - > DeleteTask(Name) Остановить задание. if IRegisteredTask::State = 4 (Running) ---- IRegisteredTask::Stop Общее описание. Командная строка задания: Task Service -> GetFolder (\) -> ITaskFolder::GetFolders -> GetTasks -> IRegisteredTask:: Definition -> ITaskDefinition::Actions -> IAction -> (by type...), example: IExecAction:: path, Arguments, WorkingDirectory TypeLib reference to \taskschd.dll Задачи по своей сути могут подразделяться на такие виды по роду деятельности: - запуск программы (в т.ч. с аргументами). - отправка email - вызов окна (msgbox) - вызов IComHandlerAction (грубо говоря, разные функции библиотек) Код
1
|
|||||||||||
|
186 / 37 / 3
Регистрация: 28.05.2015
Сообщений: 149
|
|
| 25.12.2015, 10:20 | |
|
Всем привет!
Написал небольшое приложение, выясняющее насколько случайна случайность. Чисто для исследовательских целей.Вот ссылка на ролик(http://www.youtube.com/watch?v=O6s-pllW3dc), который сподвиг меня написать эту программу. Там говорится про случайности при создании адреса для ролика на YouTube. В общем вот сам проект на VB6 с программой. Доработал для эксперимента.
2
|
|
|
Модератор
|
|
| 11.01.2016, 17:04 | |
|
Inline assembler.
Всем привет. Я сделал Add-in который позволяет напрямую использовать ассемблер в VB6. Add-in содержит встроенный редактор ассемблерного кода в котором мы можем переопределять код процедур VB6. Это работает и в IDE и в скомпилированном виде. При компиляции ассемблерный код линкуется к EXE, как будто это стандартные функции, без всяких выделений буфера и копирования опкодов. Ссылка.
6
|
|
|
oh my god
|
||||||
| 13.01.2016, 05:54 | ||||||
|
Разбиение файлов
Программа может разбить любой файл, на любое количество частей После разбития файла, каждая часть имеет номер и расширение prt (PART) Имеется возможность собирать всё обратно в один файл Также файлы можно удалить после сборки И также родительский файл можно удалить (кроме системных файлов) К примеру в папке у меня иконка и медийный файл Wav, я им поставил Атрибут системные, и они удаляться не будут код для формы: Кликните здесь для просмотра всего текста
Архив с исходниками (162 кб.)
3
|
||||||
|
Модератор
|
|
| 28.01.2016, 12:08 | |
|
Компьютер сочиняет музыку.
Всем привет. Как-то давно я делал виртуального композитора для создания 8-бит музыки, но в итоге забросил это дело. Я даже писал об этом и выкладывал демки. На днях я немного доработал его + добавил свои синтезаторы (вот и вот) в него + банки пресетов к ним. Кстати там же можете добавлять новые пресеты и сохранять их. Конечно музыкой это назвать нельзя (из-за кривого алгоритма, который я разработал давно, когда еще и музыку толком сам не умел делать и программировать не умел), но поиграться можно. Для создания нового трека нужно придумать имя трека и ввести его в поле Name, если поле ничего не содержит оно заполнится произвольным числом. На основе имени создается трек (вычисляется хэш и это значение используется в качестве зерна псевдослучайного генератора), т.е. имя будет однозначно идентифицировать трек. Поле Tempo задает темп. Правой кнопкой мыши по треку - открывает окно синтезатора трека, можно менять параметры тем самым изменяя звучание. Левой кнопкой по паттерну - просмотреть паттерн. Никаких поверок нет, так что не нужно туда вводить неправильные значения иначе программа "рухнет". Также программа может зависнуть (опять-таки из-за кривого алгоритма) при создании трека. Удачи! Скачать.
7
|
|
| 28.01.2016, 12:08 | |
|
Готовые решения и полезные коды на Visual Basic .NET (Часть-1) Готовые коды для решения лабораторных работ Написать программу решения квадратного уравнения. В Office Visual Basic
Полезные коды для PascalABC.NET Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|