Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820

Как работать с потоками IStream в Visual Basic 6

16.11.2024, 18:08. Показов 14396. Ответов 206
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Я недавно узнал о таком чуде как потоки IStream, это такие данные в оперативной памяти вашего процесса EXE типа байтовых массивов только круче. Как я это понял лично. Вот мне очень интересно стало поработать именно со стримами. Если у кого-то есть какие-то наработки в этом плане буду рад, если поделитесь.

Из того, что я пока узнал:

Есть API для создания, чтения и записи стримов - это функции SHCreateMemStream, IStream_Write, IStream_Read и IStream_Size. Это конечно очень интересно всё, но я не нашёл функции для позиционирования IStream_Seek (её что не существует?).

Есть возможность управлять стримами через объявления в TLB, однако мне эта тема не интересна, так как я не люблю подключать всякие там TLB.

Есть возможность управлять потоками IStream через специальную функцию DispCallByVtbl

Хотелось бы подробно разобрать эту тему и научиться:

1. Создавать поток IStream
2. Записывать
3. Считывать
4. Позиционировать
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.11.2024, 18:08
Ответы с готовыми решениями:

Как работать с камерой в Visual Basic
Как сделать прогу чтобы в ней отображалось то шо я снимаю и возможно было менять настройки камеры (яркость, гамма, контрасность,...

Как работать в Visual Basic'е с реестром?
Народ, может кто подскажет, как работать в Visual Basic'е с реестром?

Как работать с таблицами Ecxel в Visual Basic?
Как работать с таблицами Ecxel в Visual Basic?

206
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
15.01.2025, 23:57  [ТС]
Студворк — интернет-сервис помощи студентам
Вот что такое pstmTemplate? Толком никакого описания в MSDN просто нет.

Добавлено через 37 секунд
Цитата Сообщение от The trick Посмотреть сообщение
Ты что не видишь какой у тебя параметр ByRef, а какой ByVal?
Это я сразу заметил. Однако в pstmTemplate можно передать стрим. Это сбивает с толку.
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
15.01.2025, 23:59
Цитата Сообщение от HackerVlad Посмотреть сообщение
Вот что такое pstmTemplate? Толком никакого описания в MSDN просто нет.
А это что?
[in, optional] pstmTemplate

Type: IStream*

Reserved.
0
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
16.01.2025, 00:04  [ТС]
Спасибо. Смотри как я думал.
Я думал что я укажу в качестве параметра существующий стрим и в файл сразу запишется существующий стрим. Это была такая моя логика у меня в голове.
А тут другая логика. Тут создаётся абсолютно новый стрим, куда потом ещё придётся вручную копировать клонировать данные. Тут уже в два этапа как бы, и не так как я думал. Хотя тот же результат. Хотя нет, памяти же в два раза больше будет жрать из-за этих клонирований/копирований.

Добавлено через 1 минуту
Короче как я понял нет такой функции которая приняла бы в качетсве параметра уже существующий стрим с готовыми данными и сразу бы создала и записала файл с этими данными...
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
16.01.2025, 00:05
HackerVlad, я код дал никаких клонирований не нужно, сразу пиши в стрим что нужно без промежуточных.
0
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
16.01.2025, 00:08  [ТС]
The trick, да, за это большое спасибо конечно, хотя я собирался код сам писать сейчас)))

Добавлено через 1 минуту
Я про GdipSaveImageToStream тоже думал кстати, если делать те же вещи с помощью GDI API то ещё и в XP будет работать) То что там идёт через WIA которой только от висты)
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
16.01.2025, 00:14
Цитата Сообщение от HackerVlad Посмотреть сообщение
делать те же вещи с помощью GDI API
Какие вещи? GDI/GDI+ есть в XP. Стримы прямого отношения к этому вообще не имеют.
0
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
16.01.2025, 00:18  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Какие вещи?
Сохранение пикчи в байтовый массив и преобразование в PNG например

Добавлено через 53 секунды
Смотри я пытался переписать свой скрипт для сохранения стрима в файл, с помощью функции, не получилось:

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
Option Explicit
Private Declare Function IStream_Size Lib "shlwapi" Alias "#214" (ByVal ptrIStream As Long, ULARGE_INTEGER As Currency) As Long
Private Declare Function SHCreateStreamOnFileEx Lib "shlwapi" (ByVal pszFile As Long, ByVal grfMode As Long, ByVal dwAttributes As Long, ByVal fCreate As Long, ByVal pstmTemplate As IUnknown, ByRef ppstm As IUnknown) As Long
 
Private Const STGM_WRITE As Long = 1
Private Const STGM_CREATE As Long = &H1000
 
Private Sub Command1_Click()
    Dim ADOStream As Object
    Dim IStreamPtr As Long
    
    Set ADOStream = CreateObject("ADODB.Stream")
    IStreamPtr = ObjPtr(ADOStream) + 76 ' Волшебное число для Windows 7
    
    ' Открыть поток в бинарном режиме (аналог SHCreateMemStream)
    ADOStream.Type = 1 ' adTypeBinary
    ADOStream.Open
    
    ' Теперь попробуем что-нибудь записать в поток, например картинку с формы
    Dim pPic As IPicture
    
    Set pPic = Me.Picture
    pPic.SaveAsFile ByVal IStreamPtr, True, 0 ' Записать в поток картинку Picture с формы, сохраняя данные в BMP-формате
    
    ' Теперь попробуем узнать сколько байтов занимает этот поток
    Dim sizeStream As Currency
    
    IStream_Size IStreamPtr, sizeStream
    MsgBox "Поток занимает: " & sizeStream * 10000@ & " байт", vbInformation
    
    ' Этот код будет эквивалентен вызову ADOStream.Size
    MsgBox "Поток занимает: " & ADOStream.Size
    
    If ADOStream.Size > 0 Then
        ' Потом этот поток, можно сохранить в файл на диске например
        Dim NewIStreamPtr As IUnknown
        SHCreateStreamOnFileEx StrPtr(App.Path & "\test.bmp"), STGM_CREATE Or STGM_WRITE, 0, 0, Nothing, NewIStreamPtr
        
        ADOStream.CopyTo NewIStreamPtr ' Тут почему-то ошибка
        
        ' Получить байтовый массив из потока
        Dim bArray() As Byte
        
        ADOStream.Position = 0
        bArray = ADOStream.Read
        
        ' Сохранить на диск
        Dim FileNo As Integer
        
        FileNo = FreeFile
        On Error Resume Next: Kill App.Path & "\test_picture.bmp"
        Open App.Path & "\test_picture.bmp" For Binary As FileNo
            Put #FileNo, , bArray
        Close FileNo
    End If
End Sub
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
16.01.2025, 00:27
HackerVlad, тут вообще не нужен ADODB.Stream. Сразу передавай в SaveAsFile поток от файлового стрима. Кстати через SaveAsFile нельзя записать в png без доп усилий.
0
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
16.01.2025, 00:59  [ТС]
The trick, я это понимаю. Но мне интересно именно почему не работает то что я написал. Я хочу именно понять работу ADODB.Stream

Добавлено через 41 секунду
ADOStream.CopyTo что должно принимать в качестве параметра? и почему не срабатывает я не понимаю

Добавлено через 21 минуту
Вот описание кстати я нашёл: https://learn.microsoft.com/en... method-ado

Добавлено через 38 секунд
Но непонятно мне почему я не могу скопировать через этот метод ADOStream.CopyTo в любой новый поток, я не понимаю этого

Добавлено через 5 минут
The trick, а ещё ты кстати не знаешь как превратить указатель в объект? обратной противоположности функции ObjPtr типа, часто мне бывает надо но не знаю как вообще
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
16.01.2025, 11:32
Цитата Сообщение от HackerVlad Посмотреть сообщение
ADOStream.CopyTo что должно принимать в качестве параметра? и почему не срабатывает я не понимаю
Ну там же написано:
An object variable value that contains a reference to an open Stream object.
А ты туда передаешь IStream


Цитата Сообщение от HackerVlad Посмотреть сообщение
The trick, а ещё ты кстати не знаешь как превратить указатель в объект? обратной противоположности функции ObjPtr типа, часто мне бывает надо но не знаю как вообще
https://www.vbforums.com/showt... ost5161749
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Declare Function vbaObjSetAddref Lib "MSVBVM60.DLL" _
                         Alias "__vbaObjSetAddref" ( _
                         ByRef dstObject As Any, _
                         ByRef srcObjPtr As Any) As Long
                         
Private Sub Form_Load()
    Dim frm As Form1
    
    Set frm = COMObjectFromPtr(ObjPtr(Me))
    
    frm.Circle (100, 100), 100
    
End Sub
 
' //
' // Get COM object from pointer
' //
Public Function COMObjectFromPtr( _
                ByVal ptr As Long) As IUnknown
    vbaObjSetAddref COMObjectFromPtr, ByVal ptr
End Function
1
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
16.01.2025, 15:09  [ТС]
Короче как я понял ADOStream.CopyTo может копировать только в другой такой же объект ADODB.Stream, но в IStream копировать не хочет совсем вообще, хотя IStream.CopyTo , будет копировать, там какой-то другой CopyTo всё что я понял

Добавлено через 19 минут
The trick, твой пример отличный. Однако некоторые чайники не поймут что что-то вообще произошло, так как любое рисование в моменте загрузки формы Form_Load не отображается без AutoRedraw = True, короче вот будет более наглядный пример:

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
Option Explicit
 
Private Declare Function vbaObjSetAddref Lib "MSVBVM60.DLL" _
                         Alias "__vbaObjSetAddref" ( _
                         ByRef dstObject As Any, _
                         ByRef srcObjPtr As Any) As Long
                         
Private Sub Form_Load()
    Dim frm As Form1
    
    Set frm = COMObjectFromPtr(ObjPtr(Me))
    
    frm.Circle (100, 100), 100
    frm.AutoRedraw = True
End Sub
 
' //
' // Get COM object from pointer
' //
Public Function COMObjectFromPtr( _
                ByVal ptr As Long) As IUnknown
    vbaObjSetAddref COMObjectFromPtr, ByVal ptr
End Function
Добавлено через 22 минуты
Цитата Сообщение от The trick Посмотреть сообщение
An object variable value that contains a reference to an open Stream object.
Да, я проверил, только в другой объект стрима копируется, только в аналогичный ADODB.Stream, какая жалость, что не хочет копировать в IStream

Вот так работает:
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
Option Explicit
'Private Declare Function SHCreateMemStream Lib "shlwapi" Alias "#12" (ByVal pInit As Long, ByVal cbInit As Long) As IUnknown
 
Private Sub Command1_Click()
    Dim ADOStream As Object
    Dim ADOStream2 As Object
    Dim bArray() As Byte
    Dim str As String
    
    Set ADOStream = CreateObject("ADODB.Stream")
    Set ADOStream2 = CreateObject("ADODB.Stream")
    
    ADOStream.Type = 1 ' adTypeBinary
    ADOStream2.Type = 1 ' adTypeBinary
    ADOStream.Open
    ADOStream2.Open
    
    str = "This is a test string"
    bArray = str
    
    ADOStream.Write bArray
    Debug.Print ADOStream.Size, LenB(str) ' compare test
    
    'Dim NewIStream As IUnknown
    
    'Set NewIStream = SHCreateMemStream(0, 0)
    
    ADOStream.Position = 0
    ADOStream.CopyTo ADOStream2
    
    MsgBox ADOStream2.Size
End Sub
Добавлено через 2 минуты
То есть этот CopyTo какой-то совсем другой CopyTo, не как в интерфейсе IStream хотябы казалось бы одинаково должно быть...

Добавлено через 2 минуты
Короче тогда единственный способ как сохранить данные стрима из ADODB.Stream это преобразование в байтовый массив и ручное сохранение байтового массива в файл на диске, никакие API тут мне не помогут короче.

Добавлено через 1 минуту
API-функция SHCreateStreamOnFileEx оказалась бессильна для сохранения стрима из объекта "ADODB.Stream" и никак не может мне помочь сохранить этот стрим в файл...

Добавлено через 2 минуты
Кстати там есть метод (у объекта ADODB.Stream) LoadFromFile но он работает по другому, никак функция SHCreateStreamOnFileEx...

Добавлено через 2 минуты
Так там всё проще! Там есть SaveToFile оказывается...

Добавлено через 23 секунды
То есть API вообще не надо тогда получается.

Добавлено через 3 минуты
Пхахаххахаха!!!!
Мне надо было написать всего одну строку кода оказывается! А я думал через API каким-то сложными ухищрениями как сохранить в файл...

Добавлено через 10 минут
Какой же я глупый иногда бываю, а, когда не полностью читаю документацию...
0
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
16.01.2025, 15:11  [ТС]
Итак, теперь я добился чего я в идеале и хотел:

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
Option Explicit
Private Declare Function IStream_Size Lib "shlwapi" Alias "#214" (ByVal ptrIStream As Long, ULARGE_INTEGER As Currency) As Long
 
Private Sub Command1_Click()
    Dim ADOStream As Object
    Dim IStreamPtr As Long
    
    Set ADOStream = CreateObject("ADODB.Stream")
    IStreamPtr = ObjPtr(ADOStream) + 76 ' Волшебное число для Windows 7
    
    ' Открыть поток в бинарном режиме (аналог SHCreateMemStream)
    ADOStream.Type = 1 ' adTypeBinary
    ADOStream.Open
    
    ' Теперь попробуем что-нибудь записать в поток, например картинку с формы
    Dim pPic As IPicture
    
    Set pPic = Me.Picture
    pPic.SaveAsFile ByVal IStreamPtr, True, 0 ' Записать в поток картинку Picture с формы, сохраняя данные в BMP-формате
    
    ' Теперь попробуем узнать сколько байтов занимает этот поток
    MsgBox "Поток занимает: " & ADOStream.Size & " байт", vbInformation, "1 способ (ADOStream.Size)"
    
    ' Этот код через API будет эквивалентен вызову ADOStream.Size
    Dim sizeStream As Currency
    
    IStream_Size IStreamPtr, sizeStream
    MsgBox "Поток занимает: " & sizeStream * 10000@ & " байт", vbInformation, "2 способ (API)"
    
    If ADOStream.Size > 0 Then
        ' Потом этот поток, можно сохранить в файл на диске например
        ADOStream.SaveToFile App.Path & "\test_picture.bmp", 2 ' adSaveCreateOverWrite
    End If
End Sub
Вложения
Тип файла: zip ADODB.Stream (2).zip (106.4 Кб, 0 просмотров)
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
16.01.2025, 15:15
HackerVlad, в чем проблема просто вызвать SavePicture?
0
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
16.01.2025, 15:17  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
в чем проблема просто вызвать SavePicture?
Я в PNG перегонять буду потом просто, используя код создания нового объекта WIA
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
16.01.2025, 15:27
HackerVlad, жесть, опять костыли...
0
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
16.01.2025, 15:36  [ТС]
The trick, ну я же костыльщик профессиональный) шучу конечно) на самом деле я просто учусь программировать) разбираю твой же код по косточкам) так что костыльщик - это ты: https://www.vbforums.com/showt... ost5499151
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
16.01.2025, 15:42
Цитата Сообщение от HackerVlad Посмотреть сообщение
разбираю твой же код по косточкам)
Это не мой код, это код из первого поста с нормальным вызовом QueryInterface без всяких магических чисел.
0
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
16.01.2025, 15:58  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Это не мой код
Ну ты бы написал такую функцию через GDI Plus скорее всего
Но тут фишка такая что функция простая для копирования и вставки для любых людей, даже для VBA, чтобы код легко передавался другим людям, без TLB, фалфалон и ты выступаете оба за TLB и раннее связывание но оно не работает в VBA например

Добавлено через 8 минут
Цитата Сообщение от The trick Посмотреть сообщение
в чем проблема просто вызвать SavePicture?
Ну это кстати очень хороший аналог SavePicture так как это поддерживает юникод, в отличие от простого SavePicture...

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
Option Explicit
Private Declare Function IStream_Size Lib "shlwapi" Alias "#214" (ByVal ptrIStream As Long, ULARGE_INTEGER As Currency) As Long
 
Private Sub Command1_Click()
    Dim ADOStream As Object
    Dim IStreamPtr As Long
    
    Set ADOStream = CreateObject("ADODB.Stream")
    IStreamPtr = ObjPtr(ADOStream) + 76 ' Волшебное число для Windows 7
    
    ' Открыть поток в бинарном режиме (аналог SHCreateMemStream)
    ADOStream.Type = 1 ' adTypeBinary
    ADOStream.Open
    
    ' Теперь попробуем что-нибудь записать в поток, например картинку с формы
    Dim pPic As IPicture
    
    Set pPic = Me.Picture
    pPic.SaveAsFile ByVal IStreamPtr, True, 0 ' Записать в поток картинку Picture с формы, сохраняя данные в BMP-формате
    
    ' Теперь попробуем узнать сколько байтов занимает этот поток
    MsgBox "Поток занимает: " & ADOStream.Size & " байт", vbInformation, "1 способ (ADOStream.Size)"
    
    ' Этот код через API будет эквивалентен вызову ADOStream.Size
    Dim sizeStream As Currency
    
    IStream_Size IStreamPtr, sizeStream
    MsgBox "Поток занимает: " & sizeStream * 10000@ & " байт", vbInformation, "2 способ (API)"
    
    If ADOStream.Size > 0 Then
        ' Потом этот поток, можно сохранить в файл на диске например, здесь работает даже юникод
        ADOStream.SaveToFile App.Path & "\test_picture " & ChrW(&H88E7) & ".bmp", 2 ' adSaveCreateOverWrite
        
        SavePicture Me.Picture, App.Path & "\test_picture " & ChrW(&H88E7) & ".bmp" ' А ваша хвалёная SavePicture не поддерживает юникод
    End If
End Sub
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
16.01.2025, 16:02
TLB и GDI+ вообще не связаны.
0
Вернулся
 Аватар для HackerVlad
1778 / 673 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
16.01.2025, 16:04  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
TLB и GDI+ вообще не связаны.
Я знаю) Для потоков IStream ты же предпочитаешь TLB, а я нет, я предпочитаю отказываться от TLB
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.01.2025, 16:04

Можно ли научится работать ASP.NET на основе Visual Basic
Всем доброго времени суток. Немножко владею навыками создавть и писать программы на VS 2010 на основе Visual Basic-a, можно ли научится...

Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net ?
Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net

Вычисление значений функции двух переменных в Visual Basic - Visual Basic
Помогите пожалуйста! В среде VB написать программу вычисления значений функции двух переменных. Ориентировочный вид окна программы и...

Как быстро работать с комбинациями стилей текста(жирный, курсив, жирный + курсив и т. д.) в Visual Basic?
Здравствуйте. Я учусь в университете, нам задали написать текстовый редактор. Я использую RichTextBox и мне нужно, чтобы я по нажатию...

Как работать с потоками?
Как создать поток? Как его стартануть? В какой он библиотеке? И вообще, как он называется? Когда гуглю, находится много информации про...


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru