Форум программистов, компьютерный форум, киберфорум
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. Показов 30987. Ответов 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
0 / 0 / 0
Регистрация: 05.06.2020
Сообщений: 3
26.06.2020, 16:25
Студворк — интернет-сервис помощи студентам
Добавлено через 14 минут
The trick, спасибо, это не помогло, та же ошибка. А что означает множитель 123 (CheckSum * 123) ?
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
26.06.2020, 16:38
Цитата Сообщение от LeonID2410 Посмотреть сообщение
The trick, спасибо, это не помогло, та же ошибка. А что означает множитель 123 (CheckSum * 123) ?
Откуда уверенность тогда что в этой строке ошибка?
0
0 / 0 / 0
Регистрация: 05.06.2020
Сообщений: 3
26.06.2020, 16:44
"Откуда уверенность тогда что в этой строке ошибка?"

Строки пронумерованы, обработчик ошибок показывает msgbox - Overflow именно там.
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
26.06.2020, 17:06
LeonID2410, при использовании опций оптимизации о которых я написал данная ошибка не может произойти в этой строке.
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
21.02.2021, 13:45
Pro_grammer, благодарю. А то отттенки различаю, а названий их не знаю
1
 Аватар для Rh2Dark
32 / 32 / 0
Регистрация: 05.11.2020
Сообщений: 102
05.07.2021, 19:47
Цитата Сообщение от The trick Посмотреть сообщение
Внедрение DLL и подключение к ресурсам EXE.
А как к этому отнесется антивирус? Слышал я, что, например Касперский, анализирует поведение екзешника, и если тот часто лазает в чужие процессы, может и взбрыкнуть
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
05.07.2021, 21:32
Rh2Dark, не знаю как отнесется конкретный антивирус. Если АВ блокирует то просто отправляйте им отчет (они безобидные ехешники от вб6 постоянно детектят как вирусы). Обычно такие задачи необходимы для дебага/исследования и в таких случаях можно просто добавить АВ в исключения.
0
 Аватар для Mikle Quits
785 / 308 / 17
Регистрация: 21.01.2023
Сообщений: 529
04.02.2023, 13:21
Цитата Сообщение от The trick Посмотреть сообщение
создавать, открывать, сохранять многоканальные WAVE-PCM файлы
Прямо студия!
Скачал. Пример Generate не видит класс CWaveFile.cls, пересобрал .vbp, заработало.
1
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
04.02.2023, 13:47
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Прямо студия!
Скачал. Пример Generate не видит класс CWaveFile.cls, пересобрал .vbp, заработало.
Спасибо за тест. Исправил - обновил, также обновил константу частоты дискретизации.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
04.02.2023, 17:09  [ТС]
Mikle Quits, The trick, спасибо, очень полезные штукенции.

Цитата Сообщение от The trick Посмотреть сообщение
через этот способ вызова функций по указателю.
Ради информации, такой способ вызова называется делегат.
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
06.02.2023, 18:02  [ТС]
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Так же даёт более качественное распределение. Чтобы понять, о чём я пишу, попробуйте заполнить изображение 256*256 случайными цветами по формуле &HFFFFFF * RND, а потом &HFFFFFF * Rand.
А также можно использовать в качестве вектора инициализации, а Randomize нельзя, т.к. получим каждый раз другие рандомы.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
06.02.2023, 18:05  [ТС]
The trick, кстати, мои 2 сообщения снеси пожалуйста в эту тему, чтобы в полезных кодах не маячили.
0
 Аватар для Mikle Quits
785 / 308 / 17
Регистрация: 21.01.2023
Сообщений: 529
08.02.2023, 18:48
The trick
Решение "Простой секвенсор - драм-машина.": Готовые решения и полезные коды на Visual Basic 6.0
Скачал, при открытии проекта в Win7-64 жалуется на отсутствие comctl32.ocx, в System32 такой файл есть, при попытке его подключить в компонентах IDE зависает.
Загрузился в конфигурации WinXP, так же жалуется на отсутствие comctl32.ocx, но через меню этот компонент подключается. Однако при запуске не находит sldTempo.
SP6 установлен.
1
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
08.02.2023, 18:53
Mikle Quits, попробуй этот проект. Открывается? Это из-за более новой версии comctl32.ocx. Если заработает - то я обновлю.
Вложения
Тип файла: zip Sequencer.zip (600.2 Кб, 12 просмотров)
1
 Аватар для Mikle Quits
785 / 308 / 17
Регистрация: 21.01.2023
Сообщений: 529
08.02.2023, 19:03
Да, этот вариант работает.
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.02.2023, 19:16  [ТС]
Готовые решения и полезные коды на Visual Basic 6.0

Цитата Сообщение от HackerVlad Посмотреть сообщение
Полезная программа ClipboardPath исправляющая неверную кодировку русского текста в буфере обмена
Цитата Сообщение от HackerVlad Посмотреть сообщение
Хоть программа и основана на работе таймера каждую секунду, она не сильно нагружает процессор, я проверял через программу Process Hacker. При больших объёмах информации внутри буфера нагрузка ЦП всего 0.1. При любом маленьком тексте в буфере так вообще никакой нагрузки на процессор.
Таймер - это не очень хорошо, воспользуйтесь хуком:

Модуль формы:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Form_Load()
    Call HookSet(Me.hwnd)
End Sub
 
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Call HookClear
End Sub
 
Public Sub Callback_ClipboardChange()
    CheckClipboard
End Sub
 
Public Sub CheckClipboard()
    Dim sClip As String
    sClip = GetClipboardW(me.hwnd)
    debug.? sClip
End Sub
Обычный модуль:

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Option Explicit
 
Private Declare Function SetWindowSubclass Lib "comctl32" Alias "#410" (ByVal hwnd As Long, ByVal pfnSubclass As Long, ByVal uIdSubclass As Long, Optional ByVal dwRefData As Long) As Long
Private Declare Function GetWindowSubclass Lib "comctl32" Alias "#411" (ByVal hwnd As Long, ByVal pfnSubclass As Long, ByVal uIdSubclass As Long, pdwRefData As Long) As Long
Private Declare Function RemoveWindowSubclass Lib "comctl32" Alias "#412" (ByVal hwnd As Long, ByVal pfnSubclass As Long, ByVal uIdSubclass As Long) As Long
Private Declare Function DefSubclassProc Lib "comctl32" Alias "#413" (ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetClipboardViewer Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ChangeClipboardChain Lib "user32" (ByVal hwnd As Long, ByVal hWndNext As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function OpenClipboard Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function IsClipboardFormatAvailable Lib "user32.dll" (ByVal Format As Long) As Long
Private Declare Function GetClipboardData Lib "user32.dll" (ByVal wFormat As Long) As Long
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
Private Declare Function GlobalAlloc Lib "kernel32.dll" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalLock Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalSize Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function lstrcpyn Lib "kernel32.dll" Alias "lstrcpynW" (ByVal lpString1 As Long, ByVal lpString2 As Long, ByVal iMaxLength As Long) As Long
 
Private m_hWnd As Long
Private h_NextClipBoardViewer As Long
Private m_iSubclassed As Long
 
Private Const WM_DRAWCLIPBOARD As Long = &H308&
Private Const WM_CHANGECBCHAIN As Long = &H30D&
Private Const WM_CLIPBOARDUPDATE As Long = &H31D&
Private Const WM_DESTROYCLIPBOARD As Long = &H307&
Private Const WM_NCDESTROY As Long = &H82
Private Const WM_UAHDESTROYWINDOW As Long = &H90&
Private Const CF_UNICODETEXT    As Long = 13&
 
 
Public Sub HookSet(hWindow As Long)
    If m_iSubclassed = 0 Then
        m_hWnd = hWindow
        m_iSubclassed = SetWindowSubclass(m_hWnd, AddressOf WndProc, 0&)
        h_NextClipBoardViewer = SetClipboardViewer(m_hWnd)
    End If
End Sub
 
Public Sub HookClear()
    If m_iSubclassed Then
        RemoveWindowSubclass m_hWnd, AddressOf WndProc, 0&: m_iSubclassed = 0
        ChangeClipboardChain m_hWnd, h_NextClipBoardViewer
        m_hWnd = 0
    End If
End Sub
 
Private Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal uIdSubclass As Long, ByVal dwRefData As Long) As Long
    
    Dim bProcessed As Boolean
    'Debug.Print "msg: " & uMsg
    
    Select Case uMsg
    
        Case WM_NCDESTROY, WM_UAHDESTROYWINDOW
            HookClear
            
        Case WM_DRAWCLIPBOARD
            SendMessage h_NextClipBoardViewer, uMsg, wParam, lParam
            Form1.Callback_ClipboardChange
            bProcessed = True
        
        Case WM_CLIPBOARDUPDATE
            SendMessage h_NextClipBoardViewer, uMsg, wParam, lParam
            Form1.Callback_ClipboardChange
            bProcessed = True
        
        Case WM_CHANGECBCHAIN
           If wParam = h_NextClipBoardViewer Then
                h_NextClipBoardViewer = lParam
           Else
               SendMessage h_NextClipBoardViewer, uMsg, wParam, lParam
           End If
           bProcessed = True
    End Select
    
    If Not bProcessed Then
        WndProc = DefSubclassProc(hwnd, uMsg, wParam, lParam)
    End If
End Function
 
Public Function GetClipboardW(hWindow As Long) As String
    Dim hMem As Long
    Dim Ptr  As Long
    Dim Size As Long
    Dim txt  As String
    If OpenClipboard(hWindow) Then
        If IsClipboardFormatAvailable(CF_UNICODETEXT) Then
            hMem = GetClipboardData(CF_UNICODETEXT)
            If hMem Then
                Size = GlobalSize(hMem)
                If Size Then
                    txt = Space$(Size \ 2 - 1)
                    Ptr = GlobalLock(hMem)
                    lstrcpyn ByVal StrPtr(txt), ByVal Ptr, Size
                    GlobalUnlock hMem
                    GetClipboardW = txt
                End If
            End If
        End If
        CloseClipboard
    End If
End Function
Также из предложений, неплохо бы вашу программу разместить как фоновое приложение в виде значка в области уведомлений.
Пример кода можете взять, например отсюда:
https://github.com/dragokas/hi... ysTray.frm
1
 Аватар для Mikle Quits
785 / 308 / 17
Регистрация: 21.01.2023
Сообщений: 529
15.02.2023, 19:26
Цитата Сообщение от HackerVlad Посмотреть сообщение
Полезная программа ClipboardPath исправляющая неверную кодировку русского текста в буфере обмена
Мне, чтобы копипастить VB6 код в браузер, приходилось открывать код блокнотом, и тогда ошибок не было. Я раньше и не знал, что это зависит от раскладки, проще переключить раскладку на "Рус", чем лезть в блокнот, но всё равно программа полезная.
1
dive
 Аватар для I can
4990 / 4743 / 850
Регистрация: 13.04.2015
Сообщений: 9,977
15.02.2023, 19:27
Цитата Сообщение от HackerVlad Посмотреть сообщение
Не понимаю только почему люди раньше не написали эту программу
Может людей такая проблема не интересует? Например меня точно.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.02.2023, 19:55  [ТС]
Лично я раньше решал эту проблему, как и все люди-мародёры подменой порчей системных файлов .nls
1
dive
 Аватар для I can
4990 / 4743 / 850
Регистрация: 13.04.2015
Сообщений: 9,977
15.02.2023, 20:04
Цитата Сообщение от Dragokas Посмотреть сообщение
проблему
А как понять, что такая проблема есть? Что я делаю не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2023, 20:04

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
180
Ответ Создать тему
Новые блоги и статьи
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru