Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/140: Рейтинг темы: голосов - 140, средняя оценка - 4.53
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16

Тестирование полезных кодов и примеров

15.10.2012, 00:56. Показов 30448. Ответов 301
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если Ваш код из темы Готовые решения и полезные коды на Visual Basic 6.0

неправильно собран или неработоспособен, он будет перенесен сюда.

Для доведения кода в рабочее состояние в порядке обсуждения создайте новую тему
2
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.10.2012, 00:56
Ответы с готовыми решениями:

Тестирование полезных скриптов
В этой теме нужно писать: - о багах в выложенных полезных скриптах (закрепленная тема); - ошибках в кодах, на которые ведут ссылки...

Программное тестирование кодов
Доброго! Часто возникает потребность протестить некоторую программку, обычно небольшую. Т.к. в большинстве случаев это надо сделать быстро,...

Cумма кодов четных символов равна сумме кодов нечетных
Даны два поля edit1 и edit2. и кнопка button1. Нужно чтобы при нажатии на кнопку, проверялось: сумма кодов четных символов была равна сумме...

301
Вернулся
 Аватар для HackerVlad
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
10.05.2023, 14:07
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от The trick Посмотреть сообщение
ошибка из-за того что размер полей структур разный
Так я об этом и говорил, кстати как раз хотел Long поменять на Currency попробовать...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.05.2023, 16:37  [ТС]
HackerVlad, если нужна подсказка, посмотри, может там проблемы с выравниванием по 8-байтовой границе. Я бы при отсутствии вариантов, переписал на C++ проблемную часть, и глянул на организацию памяти.
0
Вернулся
 Аватар для HackerVlad
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
11.05.2023, 02:04
Цитата Сообщение от Dragokas Посмотреть сообщение
посмотри, может там проблемы с выравниванием по 8-байтовой границе
Спасибо за совет, но гораздо легче написать лайтовую версию которая открывает ключи реестра по индексам, предполагая, что это правильные кусты реестра, основываясь на своём собственном списке. Дерево можно открывать по индексам очень легко даже при этом не особо зная что там написано в значении ветки дерева. Я думаю так проще всего. По индексам. Без зная текста дерева. Основываясь лишь на преположениях, что список будет совпадать. Думаю с 99% точностью будет работать и в 64 бит тоже. Не нужно по 500 лет голову ломать зато с этим сверхсложностями 64-битной системы.
0
Вернулся
 Аватар для HackerVlad
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
12.05.2023, 16:03
Цитата Сообщение от PAnT0P Посмотреть сообщение
Класс для работы с реестром
Позволяет работать со следующими типами ключей
REG_SZ
REG_BINARY
REG_DWORD
(в других типах мне не было надобности поэтому не делал)
Также позволяет работать как с x86 так и с x64 ветками из под Win_x64
SetKey - запись ключа в реестр
GetKey - Чтение ключа из реестра
DelKey - удаление ключа из реестра
GetKeys - получение всех ключей из заданной ветки
GetSections - получение всех дочерних веток из заданной ветки
DelSection - удаление ветки со всем содержимым
Хоть это было и давно но всё равно, я вот скачал этот класс для работы с реестром и нашёл две ошибки.
1. Создаётся в списке на одну пустубю строчку больше чем надо
2. Под учётной записью Гость нет прав на чтение реестра, поэтому там надо поменять флаги, когда идёт просто чтение и запись не нужна в реестр

Может кому пригодится, вот мне пришлось внести правки:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Public Function GetSections(ByVal hKey As REG_HKEY, ByVal strPath As String, Optional ByVal x64 As Boolean = False) As String()
    Dim Cnt As Long, sName As String, sData As String, Ret As Long, RetData As Long, nRet As Long, KEY_WOW  As Long
    Dim Sections() As String
    If x64 Then
        KEY_WOW = KEY_WOW64_64KEY
    Else
        KEY_WOW = KEY_WOW64_32KEY
    End If
    
    ' Тут поставил KEY_READ чтобы работало под учётной записью Гость
    If RegOpenKeyEx(hKey, strPath, 0, KEY_READ Or KEY_WOW, Ret) = ERROR_SUCCESS Then
        'Create a buffer
        sName = Space(BUFFER_SIZE)
        nRet = BUFFER_SIZE
        'Enumerate the keys
        While RegEnumKeyEx(Ret, Cnt, sName, nRet, ByVal 0&, vbNullString, ByVal 0&, ByVal 0&) <> ERROR_NO_MORE_ITEMS
            'Show the enumerated key
            If nRet > 0 Then
                ReDim Preserve Sections(Cnt)
                Sections(Cnt) = Left$(sName, nRet)
            End If
            'prepare for the next key
            sName = Space(BUFFER_SIZE)
            nRet = BUFFER_SIZE
            Cnt = Cnt + 1
        Wend
        'close the registry key
        RegCloseKey hKey
    End If
    ReDim Preserve Sections(Cnt - 1) ' Тут поставил -1 чтобы небыло пустой строчки в конце списка
    GetSections = Sections
End Function
Добавлено через 1 минуту
По моему у Драгокаса был ещё такой класс для работы с реестром, может у него лучше написано, но я пока его не нашёл, искать долго...

Добавлено через 13 секунд
Скачал что первое сумел найти...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.05.2023, 16:22  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
По моему у Драгокаса был ещё такой класс для работы с реестром, может у него лучше написано, но я пока его не нашёл, искать долго...
В теме на кибере устарел.
Обновлённый и наиболее отлаженный класс работы с реестром на почти все случаи жизни находится здесь.
(если убрать в начале класса комментарии напротив деклараций, то в целом он самодостаточен, за исключением зависимости от модуля сбороса прав, который можно взять там же или вырезать код, который его юзает.
Если каких-то деклараций всё же не хватает, то они все в модуле Globals.
1
Вернулся
 Аватар для HackerVlad
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
12.05.2023, 16:40
Цитата Сообщение от Dragokas Посмотреть сообщение
находится здесь.
Спасибо, у тебя же работает чтение под учётной записью Гость?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.05.2023, 17:00  [ТС]
Везде, где у Гостя есть на это право, должно работать. Там в каждой функции права доступа выставлены дифференциировано, минимально необходимые, иногда с разными попытками в зависимости от ситуации. С функциями записи по-аккуратнее, ибо если не будет прав доступа, ACL ветки будет нарушен, но не восстановлен, ибо там правило записать любой ценой.

Обновлённый прыжок к ключу, зачёт. Интересный способ. Кстати, корневых ульев всего - 6, а не 5. HKEY_PERFORMANCE_DATA - виртуальный. Во времена Win9x ещё был HKEY_DYN_DATA. Это я не придираюсь, просто для информации.
0
Вернулся
 Аватар для HackerVlad
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
12.05.2023, 17:31
Цитата Сообщение от Dragokas Посмотреть сообщение
HKEY_PERFORMANCE_DATA - виртуальный
По факту его же нету в редакторе реестра? Я знаю, что не придираешься))) Может потом в будущем ещё одну версию создадим вместе с The Trick где уже будет использоваться реальное чтение ключей для 64-битной версии. Но пока это оказалось слишком сложно.

Добавлено через 27 минут
Цитата Сообщение от Dragokas Посмотреть сообщение
Даже тот ключ Run, который у тебя сейчас прописан, он 64-битный, и содержимое отображается от 32-битного ключа.
У меня кстати в Run'е гораздо больше 32-битных параметров, чем в 64-битной версии)))
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.05.2023, 17:47  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
По факту его же нету в редакторе реестра?
По факту его даже физически на диске нету.

Цитата Сообщение от HackerVlad Посмотреть сообщение
Может потом в будущем ещё одну версию создадим вместе с The Trick где уже будет использоваться реальное чтение ключей для 64-битной версии. Но пока это оказалось слишком сложно.
Сложна часть с ассемблером. А указатель на функцию ты бы мог и сам найти с твоими то уменями. В этом уроке можно найти полезные ссылки по теме. Для начала можно поэкспериментировать с целевом x32 приложением.
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
12.05.2023, 18:58
Цитата Сообщение от HackerVlad Посмотреть сообщение
Может потом в будущем ещё одну версию создадим вместе с The Trick где уже будет использоваться реальное чтение ключей для 64-битной версии.
А в чем проблема такого чтения напрямую, без всяких доп программ?
0
Вернулся
 Аватар для HackerVlad
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
12.05.2023, 20:48
Цитата Сообщение от The trick Посмотреть сообщение
А в чем проблема такого чтения напрямую, без всяких доп программ?
Не понял вопроса, я же тему для этого создал: Как получить TVM_GETITEM дерева 64-битного процесса
Там 500 всяких проблем для чтения...
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
12.05.2023, 20:50
HackerVlad, я имею в виду, почему бы не использовать функции реестра для чтения, а не это все?
0
Вернулся
 Аватар для HackerVlad
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
12.05.2023, 20:52
Цитата Сообщение от The trick Посмотреть сообщение
почему бы не использовать функции реестра для чтения
И снова не понял вопроса, я же уже выложил такую версию программы: Готовые решения и полезные коды на Visual Basic 6.0
0
Вернулся
 Аватар для HackerVlad
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
08.07.2023, 18:35
Цитата Сообщение от Dragokas Посмотреть сообщение
Сложна часть с ассемблером.
Оказалось всё и без ассемблера вроде как справились)))) Готовые решения и полезные коды на Visual Basic 6.0
0
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 65
03.03.2024, 16:23
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Нота "n" задаётся от 0 до 60 (от "ми" контроктавы до "ми" 3-й октавы)
Значения по умолчанию kDemp, kHard и kSlap примерно соответствуют обычной гитаре-бас. Меняя kDemp можно добиться звука от жёстких стальных струн через нейлон до "muted" или "pizzicato".
Безусловно - интересно. (талантливо)
Есть вопросы (или просьба). Меня ноты не интересуют, а вот придание звукам - определённых вариантов звучания - как раз. По ходу этой темы уже много наводок, эта - самое то. Хотя, вариантов звучаний, возможно, будет меньше синтезатора. Но мне на этом этапе более чем достаточно.
1 Вопрос. Вместо ноты мне надо на переработку вводить расчётное цифровое значение. Я буду вводить его из FB. Хотя VB похож, но много букв, сложно прочитать смысл программы. Здесь, как укр -й язык - много знакомого, но не очень понятно ) (уровень то дилетанта).
2. Параметры задаются программой. С ехе понятно - программа создала звук - получил Wav. Потом пользуйся. У меня же планируется: в программе считается мелодия (комбинация, расчитанная (не с расставлением из Data) по закону, по привязке к схеме), как бы преобразуется (например вашей программой или её переработкой) в Wav.
3. записывается. 4. Слушаю что просил.
Далее можно дорабатывать во Фрути Лоопс (например). Естественно, если эксперимент будет удачным, можно будет обсуждать вопрос об инструменте с этими функциями.

Добавлено через 15 минут
Mikle Quits, Посмотрел код. Вроде сложностей не увидел в понимании. Будут, надеюсь, разберусь, конкретный Бейсик. Еще буду искать возможности её подстройки под свои задачи. Не ползунковая установка параметров а в программе,
Надеюсь, вы тоже её не забросите. Здорово иметь под рукой изделие, с которым можно работать в коде.
А со своей темой как нибудь более подробно познакомлю, может и посотрудничаем.
0
Вернулся
 Аватар для HackerVlad
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
03.03.2024, 22:30
volchv, здесь же запрещены обсуждения в этой теме, куда только смотрят модераторы... для этого есть отдельная тема...
0
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 65
04.03.2024, 02:38
HackerVlad, volchv, здесь же запрещены обсуждения в этой теме, куда только смотрят модераторы... для этого есть отдельная тема...
Готов принести извинения. Попытаюсь чуть оправдаться. Эту тему я поднимал в других местах форума. Слабо реагировали. Был отсыл к языкоым, программным решениям, которые мне не знакомы. Обсуждение (скорее - советы) в раиках единственного языка, который ограниченно знаю. Я не прграммист, бейсиком плльзуюсь нерегулярно, по ходу решения некоторых врпросов в затронутой здесь теме, другие инструменты нериемлемы. По возрасту, переучиваться нет времени. И да, приношу извинения.
0
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
30.04.2024, 22:24
Цитата Сообщение от HackerVlad Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Function MyGetLpStr(St1 As String) As String
Dim i As Variant
i = InStr(1, St1, vbNullChar)
If IsNull(i) Then
  MyGetLpStr = ""
  St1 = ""
  Exit Function
ElseIf i = 0 Then
  MyGetLpStr = St1
  St1 = ""
  Exit Function
Else
  MyGetLpStr = Left$(St1, i - 1)
  St1 = Right$(St1, Len(St1) - i)
  Exit Function
End If
End Function
Зачем тут трижды Exit Function,
хотя он ни разу не нужен?
Или это стиль "мастера" такой, не хакерам не понять!
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
01.05.2024, 10:50  [ТС]
SergioJek, а вас не смутило, что функция объявлена юникодная, при том OPENFILENAME используется ансишная
Ну и так, до кучи, 64-битные пути здесь не поддерживаются.

Здесь нормальная реализация:
GetOpenFileName (без поддержки 64-бит путей, XP+)
Modern File Open Dialog (с поддержкой 64-бит путей, Vista+)
0
Вернулся
 Аватар для HackerVlad
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
01.05.2024, 17:32
Цитата Сообщение от SergioJek Посмотреть сообщение
Зачем тут трижды Exit Function,
хотя он ни разу не нужен?
Или это стиль "мастера" такой, не хакерам не понять!
Пхахаххахаха насмешил конечно, да это я содрал готовый код и лень было его переделывать просто, да и в этой теме запрещены обсуждения кстати, для этого есть отдельная тема

Добавлено через 7 минут
Цитата Сообщение от Dragokas Посмотреть сообщение
объявлена юникодная, при том OPENFILENAME используется ансишная
На самом деле структура такая же, здесь всё нормально, я решил оставить As String и не переделывать на As Long так как так гораздо проще получается, код не нужно сильно переделывать, это нормальное решение

Добавлено через 9 минут
Dragokas, у тебя в твоих примерах так вообще нет никаких объявлений, не модуль а фуфло

Добавлено через 27 минут
Dragokas, Вот здесь у тебя очень простой пример мне понравился: Не правильно воспринимается путь Comdlg32.dll Как раз с объявлениями и полностью работает как надо.

Однако хочу заметить, что переписывать структуру на As Long на самом деле совсем не обязательно, вопреки всеобщему мнению можно оставлять As String так как это гораздо проще будет тебе же самому потом работать - не нужно будет всякий раз писать указатели и объявлять ещё дополнительные переменные, не нужно всякий раз писать StrPtr. Это очень удобно, мой вариант удобнее гораздо по количеству кода будет меньше лучше и удобнее. Только объявление API надо As Long в моём варианте и скармливать VarPtr и всё. У меня моя реализация мне больше нравится по юникодности. А так на самом деле работает одинаково конечно. Не знаю зачем надсмехались над моим кодом вообще.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.05.2024, 17:32
Помогаю со студенческими работами здесь

Парочка полезных видеоуроков по C++
323e1ffiYjw AEA7GmPli5Y OH7g2lfsYEU Может какой-нибудь следующий &quot;учитель&quot; посмотрит и передумает делать свои уроки :)

Удаленное тестирование приложение/Пересылка на тестирование
Если кто-то написал приложение под андроид и захочет показать другому человеку, то достаточно отослать apk. А как обстоит с этим дело в...

Unit -тестирование или автоматизированное тестирование
Доброго времени суток. Я программирую «для себя» второй год, на выходе получаются разного рода приложения от постоянно подающих с...

Не Большой Набор Полезных Функций
Функция проверки на наличие не запрещенных символов в поле, где ? - запрещенные символы Function Check_BadSymbols(sStr As String) As...

USBasp - пара возможно полезных плюшек.
Уважаемые коллеги! Возможно то, что я опишу - баян с бородищей. Готов принять справедливую критику. Но вдруг кому-то поможет. Держу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
280
Ответ Создать тему
Новые блоги и статьи
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru