Форум программистов, компьютерный форум, киберфорум
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. Показов 31375. Ответов 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
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,805
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
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,805
11.05.2023, 02:04
Цитата Сообщение от Dragokas Посмотреть сообщение
посмотри, может там проблемы с выравниванием по 8-байтовой границе
Спасибо за совет, но гораздо легче написать лайтовую версию которая открывает ключи реестра по индексам, предполагая, что это правильные кусты реестра, основываясь на своём собственном списке. Дерево можно открывать по индексам очень легко даже при этом не особо зная что там написано в значении ветки дерева. Я думаю так проще всего. По индексам. Без зная текста дерева. Основываясь лишь на преположениях, что список будет совпадать. Думаю с 99% точностью будет работать и в 64 бит тоже. Не нужно по 500 лет голову ломать зато с этим сверхсложностями 64-битной системы.
0
Вернулся
 Аватар для HackerVlad
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,805
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
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,805
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
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,805
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
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
12.05.2023, 18:58
Цитата Сообщение от HackerVlad Посмотреть сообщение
Может потом в будущем ещё одну версию создадим вместе с The Trick где уже будет использоваться реальное чтение ключей для 64-битной версии.
А в чем проблема такого чтения напрямую, без всяких доп программ?
0
Вернулся
 Аватар для HackerVlad
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,805
12.05.2023, 20:48
Цитата Сообщение от The trick Посмотреть сообщение
А в чем проблема такого чтения напрямую, без всяких доп программ?
Не понял вопроса, я же тему для этого создал: Как получить TVM_GETITEM дерева 64-битного процесса
Там 500 всяких проблем для чтения...
0
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
12.05.2023, 20:50
HackerVlad, я имею в виду, почему бы не использовать функции реестра для чтения, а не это все?
0
Вернулся
 Аватар для HackerVlad
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,805
12.05.2023, 20:52
Цитата Сообщение от The trick Посмотреть сообщение
почему бы не использовать функции реестра для чтения
И снова не понял вопроса, я же уже выложил такую версию программы: Готовые решения и полезные коды на Visual Basic 6.0
0
Вернулся
 Аватар для HackerVlad
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,805
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
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,805
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
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,805
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
Ответ Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru