Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 9

Как воспроизвести .mp3 файл на Visual Basic 6.0?

25.07.2015, 19:16. Показов 7733. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При запуске формы мне нужно воспроизвести .mp3 файл.
С форматом .wav я разобрался, вот код:
Visual Basic
1
2
3
4
5
6
Private Sub Form_Load()
Плеер. DeviceType = "WaveAudio"
Плеер. FileName = "D:\Music\nice.wav"
Плеер. Command = "Open"
Плеер. Command = "Play"
End Sub
Что нужно в коде изменить чтобы проигрывался .mp3 файл?
например мне нужно проиграть файл beautiful.mp3, который находится в D:\Music\
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.07.2015, 19:16
Ответы с готовыми решениями:

Как воспроизвести mp3 файл
Как воспроизвести mp3 или другой звуковой файл?

Как воспроизвести mp3 файл?
Всем привет! Как воспроизвести mp3 файл?

Как воспроизвести mp3 файл из ресурсов?
У меня в ресурсах проекта есть mp3 и я его хочу воспроизвести. Как же мне это сделать? И чтобы можно было переносить exe-шник из места в...

39
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
09.04.2023, 12:04
Студворк — интернет-сервис помощи студентам
А ещё вопрос в твоём примере DirectSoundVB6 есть функция DSCreateSoundBufferFromMemory но она не принимает байтовый массив. Короче вопрос как байтовый массив передавать, ну из ресурсов я же файл выдираю, короче как из буфера (байтового массива именно) там запустить воспроизведение MP3. Как из файла там понятно, а вот как из байтового массива - нет.
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
09.04.2023, 12:09
HackerVlad, давай пример прикладывай.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
09.04.2023, 12:22
Цитата Сообщение от The trick Посмотреть сообщение
давай пример прикладывай
Там наверное всё-таки можно просто разбираться нужно с тем, что такое As IDirectSoundBuffer8. Там ведь с TLB идёт. Ладно sndPlaySound и правда проще всего и с буфером, как байтовый массив, очень просто работает. Я думал даже просто упаковывать буфер WAV и распаковывать, потоку как я не знал, что можно каким-то чудом MP3 играть этой функцией.

Добавлено через 2 минуты
И DirectX тоже не у всех стоит наверное... DirectSound пока не буду использовать, лучше по проще вариант...
0
 Аватар для Mikle Quits
762 / 279 / 17
Регистрация: 21.01.2023
Сообщений: 412
09.04.2023, 12:56
Цитата Сообщение от HackerVlad Посмотреть сообщение
DirectX тоже не у всех стоит наверное... DirectSound пока не буду использовать, лучше по проще вариант...
DirectSound8 (а это именно он) есть везде, если не считать Win98 (или Win2k, не уверен) и старее.
1
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
09.04.2023, 12:58
HackerVlad, directsound работает на всех системах. directsound сам смешивает звуки и позволяет независимо проигрывать несколько каналов+эффекты и т.п.

Добавлено через 1 минуту
Прикладывай проект, я вечером гляну. Кстати в винде и запись/конвертирование в mp3 можно без всяких доп зависимостей производить.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
09.04.2023, 13:37
Цитата Сообщение от The trick Посмотреть сообщение
Прикладывай проект
Пожалуйста, но в моём проекте я использую твой класс, потому как я не знаю, как иначе воспроизвести из буфера.
Мне нужно только добиться того чтобы звук не останавливался во время цикла Do Loop и всё.
Вложения
Тип файла: zip clsTrickMP3Player.zip (217.8 Кб, 8 просмотров)
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
09.04.2023, 14:15
Безумно понравился твой пример с танцующей девочкой))))) Прям порадовал)))))))
Очень удивило, что там используется функция PlaySound а не sndPlaySound. Я не знал вообще что есть функция PlaySound просто. Без префикса snd.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
09.04.2023, 14:34
Цитата Сообщение от The trick Посмотреть сообщение
Прикладывай проект
Вот приложил! Посмотри обязательно функция PlaySound не работает с MP3. Только через твой класс и открывает...
Вложения
Тип файла: zip clsTrickMP3Player.zip (218.5 Кб, 16 просмотров)
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
09.04.2023, 22:25
Как обещал, класс CMP3Player.cls:
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
Option Explicit
Option Base 0
 
Public Enum PTR
    [_]
End Enum
 
Private Const MPEGLAYER3_FLAG_PADDING_OFF   As Long = 2
Private Const MPEGLAYER3_FLAG_PADDING_ON    As Long = 1
Private Const WAVE_FORMAT_MPEGLAYER3        As Long = &H55
Private Const MPEGLAYER3_WFX_EXTRA_BYTES    As Long = 12
Private Const MPEGLAYER3_ID_MPEG            As Long = 1
Private Const SND_ASYNC                     As Long = &H1
Private Const SND_MEMORY                    As Long = &H4
 
Private Type MPEGLAYER3WAVEFORMAT
    wFormatTag          As Integer
    nChannels           As Integer
    nSamplesPerSec      As Long
    nAvgBytesPerSec     As Long
    nBlockAlign         As Integer
    wBitsPerSample      As Integer
    cbSize              As Integer
    wID                 As Integer
    fdwFlags            As Long
    nBlockSize          As Integer
    nFramesPerBlock     As Integer
    nCodecDelay         As Integer
End Type
 
Private Type SAFEARRAYBOUND
    cElements           As Long
    lLBound             As Long
End Type
 
Private Type SAFEARRAY1D
    cDims               As Integer
    fFeatures           As Integer
    cbElements          As Long
    cLocks              As Long
    pvData              As Long
    tBounds             As SAFEARRAYBOUND
End Type
 
Private Type TCurrencyBuffer
    c(15)               As Currency
End Type
 
Private Type TMP3Constants
    iBitrate(1, 15)     As Integer
    lSampleRate(2, 3)   As Long
End Type
 
Private Declare Function ArrPtr Lib "msvbvm60" _
                         Alias "VarPtr" ( _
                         ByRef pArr() As Any) As Long
Private Declare Function PutMemPtr Lib "msvbvm60" _
                         Alias "PutMem4" ( _
                         ByRef pDst As Any, _
                         ByRef pValue As Any) As Long
Private Declare Function PutMem4 Lib "msvbvm60" ( _
                         ByRef pDst As Any, _
                         ByVal lValue As Long) As Long
Private Declare Function memcpy Lib "kernel32" _
                         Alias "RtlMoveMemory" ( _
                         ByRef pDestination As Any, _
                         ByRef pSource As Any, _
                         ByVal lLength As Long) As Long
Private Declare Function PlaySound Lib "winmm.dll" _
                         Alias "PlaySoundW" ( _
                         ByRef pszSound As Any, _
                         ByVal hModule As Long, _
                         ByVal dwFlags As Long) As Long
                         
Private m_tMP3Constants As TMP3Constants
Private m_bFile()       As Byte
 
Public Sub Play( _
           ByVal pData As PTR, _
           ByVal lSize As Long)
    Dim tFmt        As MPEGLAYER3WAVEFORMAT
    Dim tBuf        As TCurrencyBuffer
    Dim lFullSize   As Long
    
    If Not GetFormat(pData, lSize, tFmt) Then
        Err.Raise 5, , "Unable to get MP3 format"
    End If
    
    StopPlaying
    
    lFullSize = lSize + 58
    
    ReDim m_bFile(lFullSize - 1)
    
    tBuf.c(0) = 117901.141@
    tBuf.c(1) = 233861439252950.2551@
    tBuf.c(2) = 0.003@
    tBuf.c(6) = 10715247804.416@
    
    memcpy m_bFile(0), tBuf, 58
    memcpy m_bFile(20), tFmt, &H1E
    PutMem4 m_bFile(54), lSize
    PutMem4 m_bFile(4), lFullSize - 8
    memcpy m_bFile(58), ByVal pData, lSize
    
    If PlaySound(m_bFile(0), 0, SND_ASYNC Or SND_MEMORY) = 0 Then
        Err.Raise 7, , "PlaySound failed"
    End If
    
End Sub
 
Public Sub StopPlaying()
    PlaySound ByVal 0&, 0, 0
End Sub
 
Private Function GetFormat( _
                 ByVal pData As PTR, _
                 ByVal lSize As PTR, _
                 ByRef tOut As MPEGLAYER3WAVEFORMAT) As Boolean
    Dim bData()     As Byte
    Dim tSADesc     As SAFEARRAY1D
    Dim lIndex      As Long
    Dim lTagSize    As Long
    Dim lLayer      As Long
    Dim lVersion    As Long
    Dim lBitRate    As Long
    Dim lSampleRate As Long
    Dim lPadding    As Long
    Dim lChannels   As Long
    Dim lFrameSize  As Long
    
    If pData = 0 Then
        Exit Function
    End If
    
    With tSADesc
        .cbElements = 1
        .cDims = 1
        .fFeatures = 1
        .pvData = pData
        .tBounds.cElements = lSize
        PutMemPtr ByVal ArrPtr(bData), ByVal VarPtr(tSADesc)
    End With
                     
    If lSize >= 128 Then
    
        ' // Skip ID3V1 tag
        lIndex = lSize - 128
        
        If bData(lIndex) = &H54 And bData(lIndex + 1) = &H41 And bData(lIndex + 2) = &H47 Then
            lSize = lSize - 128
        End If
        
    End If
    
    
    If lSize >= 10 Then
    
        ' // Skip ID3V2 tags from beginning
        
        If bData(0) = &H49 And bData(1) = &H44 And bData(2) = &H33 Then
            
            ' // Footer present
            If bData(5) And &H10 Then
                lSize = lSize - 10
            End If
        
            lTagSize = bData(6) * &H200000
            lTagSize = lTagSize Or (bData(7) * &H4000&)
            lTagSize = lTagSize Or (bData(8) * &H80&)
            lTagSize = lTagSize Or bData(9)
            lTagSize = lTagSize + 10
            
            lIndex = lTagSize
            lSize = lSize - lTagSize
                
        Else
        
            ' // Skip ID3V2 tags from end
            lIndex = lSize - 10
 
            If bData(lIndex + 2) = &H49 And bData(lIndex + 1) = &H44 And bData(lIndex) = &H33 Then
                
                lSize = lSize - 10
                
                lTagSize = bData(lIndex + 6) * &H200000
                lTagSize = lTagSize Or (bData(lIndex + 7) * &H4000&)
                lTagSize = lTagSize Or (bData(lIndex + 8) * &H80&)
                lTagSize = lTagSize Or bData(lIndex + 9)
                lTagSize = lTagSize + 10
            
                lSize = lSize - lTagSize
                
            End If
            
            lIndex = 0
            
        End If
    
    Else
        lIndex = 0
    End If
    
    If lSize < 4 Then
        Exit Function
    End If
    
    ' // Find a frame sync
    Do
 
        If bData(lIndex) = &HFF And (bData(lIndex + 1) And &HE0) = &HE0 Then
 
            lVersion = (bData(lIndex + 1) And &H18) \ 8
            
            If lVersion = 1 Then
                Exit Function
            End If
            
            lLayer = (bData(lIndex + 1) And &H6) \ 2
            
            If lLayer <> 1 Then
                Exit Function
            End If
            
            If lVersion = 3 Then
                lBitRate = m_tMP3Constants.iBitrate(0, (bData(lIndex + 2) And &HF0) \ &H10)
            Else
                lBitRate = m_tMP3Constants.iBitrate(1, (bData(lIndex + 2) And &HF0) \ &H10)
            End If
 
            If lVersion = 3 Then
                lSampleRate = m_tMP3Constants.lSampleRate(0, (bData(lIndex + 2) And &HC) \ &H4)
            ElseIf lVersion = 2 Then
                lSampleRate = m_tMP3Constants.lSampleRate(1, (bData(lIndex + 2) And &HC) \ &H4)
            Else
                lSampleRate = m_tMP3Constants.lSampleRate(2, (bData(lIndex + 2) And &HC) \ &H4)
            End If
            
            lPadding = (bData(lIndex + 2) And &H2) \ 2
            lChannels = -(((bData(lIndex + 3) And &HC0) \ 64) <> 3) + 1
            
            If lVersion = 3 Then
                lFrameSize = Int(144000 * lBitRate / lSampleRate) + lPadding
            Else
                lFrameSize = Int(72000 * lBitRate / lSampleRate) + lPadding
            End If
 
            With tOut
            
                .wFormatTag = WAVE_FORMAT_MPEGLAYER3
                .cbSize = MPEGLAYER3_WFX_EXTRA_BYTES
                .nChannels = lChannels
                .nAvgBytesPerSec = lBitRate * 125   ' // * 1000 / 8
                .wBitsPerSample = 0
                .nBlockAlign = 1
                .nSamplesPerSec = lSampleRate
                .nFramesPerBlock = 1
                .nCodecDelay = 0
    
                If lPadding Then
                    .fdwFlags = MPEGLAYER3_FLAG_PADDING_ON
                Else
                    .fdwFlags = MPEGLAYER3_FLAG_PADDING_OFF
                End If
 
                .wID = MPEGLAYER3_ID_MPEG
                .nBlockSize = lFrameSize
                
            End With
            
            GetFormat = True
            
            Exit Function
            
        End If
        
        lIndex = lIndex + 1
        lSize = lSize - 1
        
    Loop While lSize >= 4
 
End Function
 
Private Sub Class_Initialize()
    Dim tBuf    As TCurrencyBuffer
    
    tBuf.c(0) = 450377142658.6656@:    tBuf.c(1) = 900743977448.248@:     tBuf.c(2) = 1351114248211.6672@
    tBuf.c(3) = 1801487954948.9248@:   tBuf.c(4) = 2702228496423.3344@:   tBuf.c(5) = 3602975909897.8496@
    tBuf.c(6) = 4503737067267.712@:    tBuf.c(7) = 18941235272.0895@:     tBuf.c(8) = 4735201446.045@
    tBuf.c(9) = 10307921515.2@:        tBuf.c(10) = 13743895348.4@:       tBuf.c(11) = 3435973838.4@
        
    memcpy m_tMP3Constants.iBitrate(0, 1), tBuf.c(0), 96
    
End Sub
 
Private Sub Class_Terminate()
    StopPlaying
End Sub
Вложения
Тип файла: zip mp3frommem.zip (463.0 Кб, 19 просмотров)
2
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
10.04.2023, 00:16
Я смогу своё MP3 воспроизвести????

Добавлено через 2 минуты
Если это возможно зачем тогда был создан класс clsTrickMP3Player
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
10.04.2023, 00:21
Цитата Сообщение от HackerVlad Посмотреть сообщение
Если это возможно зачем тогда был создан класс clsTrickMP3Player
В классе есть другие методы типа перемотки, паузы и т.д. у PlaySound нет такого.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
10.04.2023, 00:27
Цитата Сообщение от The trick Посмотреть сообщение
В классе есть другие методы типа перемотки, паузы и т.д
Но он же зависает при цикле Do Loop у меня программа выполняет действия свзяанные с серьбёзной нагрузкой на процессор и всё сразу звук виснет....

Добавлено через 2 минуты
Но мне всё равно нужен пример для воспргоизведения моего MP3
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
10.04.2023, 01:14
Цитата Сообщение от HackerVlad Посмотреть сообщение
Но мне всё равно нужен пример для воспргоизведения моего MP3
Я же дал уже пример для воспроизведения любого MP3.
1
 Аватар для Mikle Quits
762 / 279 / 17
Регистрация: 21.01.2023
Сообщений: 412
10.04.2023, 08:16
Цитата Сообщение от HackerVlad Посмотреть сообщение
зависает при цикле Do Loop у меня программа выполняет действия свзяанные с серьбёзной нагрузкой на процессор
Подозреваю, что правильная расстановка DoEvents решит эту проблему.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
10.04.2023, 10:31
Но мне всё равно нужен пример для воспргоизведения
Цитата Сообщение от Mikle Quits Посмотреть сообщение
правильная расстановка DoEvents решит эту проблему
Это не всегда работает. Если сильно много всовывать DoEvents то будет значительное падение скорости. У меня DoEvents стоит только один раз в тысячу файлов. Чтобы сильно не замедлялся по скорости процесс поиска.
Короче, даже при таком темпе то всё равно музыка MP3 начинает коверкать звуки, заикатьс,я подвисать...
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
10.04.2023, 10:33
HackerVlad, в том примере что я дал последний CMP3Player там не зависает т.к. воспроизведение работает в другом потоке.
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
10.04.2023, 12:21
Цитата Сообщение от The trick Посмотреть сообщение
не зависает
Спасибо большое, хотел отзыв нажать и баллы поставить, но мне больше уже не дают эту возможность)

Добавлено через 1 час 46 минут
Цитата Сообщение от The trick Посмотреть сообщение
PlaySoundW
Я вот всё время думаю, если воспроизведение из буфера, то зачем использовать PlaySoundW, имя файла мы же не задаём... Может PlaySoundA тут вполне хватит? И ещё вопрос чем отличается sndPlaySound от PlaySound?
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
10.04.2023, 12:48
A функции вызывают W функции отчего они медленнее. sndPlaySound устаревшая, она реализует подмножетво возможностей PlaySound. Так что PlaySoundW самая подходящая.
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
10.04.2023, 13:16
Цитата Сообщение от The trick Посмотреть сообщение
A функции вызывают W функции отчего они медленнее
Я не знал честно, а ещё вопрос. Как мне узнать идёт ли в данный момент воспроизведение. В твоём классе было IsPlaying там хоть и баг был всем известный но легкоисправимый. Не показывало реально идёт ли в настоящее время воспроизведение. Я его сам этот баг фиксил к тебе не обращаясь даже. А вот тут я не знаю с этим PlaySound как проверить идёт ли воспроизведение.

А тут сейчас на ум приходит только, самому вручную измерять время по таймеру что ли)))
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
10.04.2023, 20:01
Цитата Сообщение от HackerVlad Посмотреть сообщение
Как мне узнать идёт ли в данный момент воспроизведение. В твоём классе было IsPlaying там хоть и баг был всем известный но легкоисправимый. Не показывало реально идёт ли в настоящее время воспроизведение. Я его сам этот баг фиксил к тебе не обращаясь даже. А вот тут я не знаю с этим PlaySound как проверить идёт ли воспроизведение.
А тут сейчас на ум приходит только, самому вручную измерять время по таймеру что ли)))
У PlaySound ограниченный функционал. Это только в отдельном потоке синхронно запускать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2023, 20:01
Помогаю со студенческими работами здесь

Как воспроизвести MP3 файл по ссылке?
Здравствуйте! Имеется ссылка на mp3 файл &quot;http://sait.ru/file.mp3&quot;. Нужно сделать, что бы по нажатию на кнопку этот файл...

Как воспроизвести стандартными средствами mp3 файл
Как воспроизвести стандартными средствами mp3 файл в python. Без разных сторонних модулей, просто звук mp3.

Как воспроизвести .mp3 файл в консольном приложении?
Прошу подсказать какую функцию необходимо использовать для проигрывания музыки, желательно чтобы прилагалась библиотека которую нужно...

Как воспроизвести mp3 файл с winmm.dll
Уважаемые посетители уважаемого мною ресурса cyberforum.ru не затруднит ли Вас моя просьба оказать мне помощь? Мне необходимо с помощью...

Как воспроизвести звуковой файл (wav или mp3)
Знаю про PLAY И SOUND,но это пищание со спикера пилит по мозгам , хотелось бы вывод собственно на колонки с файлов.


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru