Народ, поделитесь кодом, сохранения картинки из буфера в файл при помощи WinAPI. Желательно на VB.NET. Спасибо.
P.S. Использование средств dotNET'а не предлагать.
Здравствуйте, RendeRR, Вы писали:
RRR>Народ, поделитесь кодом, сохранения картинки из буфера в файл при помощи WinAPI. Желательно на VB.NET. Спасибо.
RRR>P.S. Использование средств dotNET'а не предлагать.
GetClipboardData(CF_BITMAP) вернёт хэндл HBITMAP, а далее посмотри
здесь (Storing an image)
Здравствуйте, Amidlokos, Вы писали:
A>Здравствуйте, RendeRR, Вы писали:
RRR>>Народ, поделитесь кодом, сохранения картинки из буфера в файл при помощи WinAPI. Желательно на VB.NET. Спасибо.
RRR>>P.S. Использование средств dotNET'а не предлагать.
A>GetClipboardData(CF_BITMAP) вернёт хэндл HBITMAP, а далее посмотри здесь (Storing an image)
"китайская грамота" ещё и на С...
Спасибо за участие.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, RendeRR, Вы писали:
RRR>Здравствуйте, Amidlokos, Вы писали:
A>>Здравствуйте, RendeRR, Вы писали:
RRR>>>Народ, поделитесь кодом, сохранения картинки из буфера в файл при помощи WinAPI. Желательно на VB.NET. Спасибо.
RRR>>>P.S. Использование средств dotNET'а не предлагать.
A>>GetClipboardData(CF_BITMAP) вернёт хэндл HBITMAP, а далее посмотри здесь (Storing an image)
RRR> "китайская грамота" ещё и на С...
RRR> Спасибо за участие.
Никаких "китайских грамот", просто в VB я силён никогда не был, а если совсем честно, то и не хочется
Но порядок действий достаточно простой.
1. Есть ещё классическая ВБшная тулза API Viewer? Смело выдирай описания всех функций и констант.
2. Получай значение через GetClipboardData(CF_BITMAP)
3. Дальше разобраться не так и сложно. Единственное что в упор не знаю — манипуляции с указателями на ВБ. См. описание GetObject(). Но суть в том, что для записи простого битмапа достаточно заполнить BITMAPFILEHEADER и BITMAPINFOHEADER и слить их в файл bmp вместе с данными.
4. А уж другие форматы файлов... Всякие JPEG и PNG действительно на ВБ долго мучить.
А вообще это всё лучше спрашивать в форуме VB. Не мог Билли оставить в стороне работу с буфером на VB. Даже помню, что когда-то там вроде был объект Clipboard и можно было одной строкой сохранять битмапы.
Здравствуйте, Amidlokos, Вы писали:
RRR>> "китайская грамота" ещё и на С...
RRR>> Спасибо за участие.
A>Никаких "китайских грамот", просто в VB я силён никогда не был, а если совсем честно, то и не хочется Но порядок действий достаточно простой.
Дык и я 6-ой не знаю...
A>1. Есть ещё классическая ВБшная тулза API Viewer? Смело выдирай описания всех функций и констант.
Есть. Искал. Ещё есть API-Guide, там пример нашёл, правда про текст...
A>2. Получай значение через GetClipboardData(CF_BITMAP)
дописался вот до чего:
Dim Hnd As Long
If IsClipboardFormatAvailable(CF_BITMAP) Then
If OpenClipboard(0) Then
Hnd = GetClipboardData(CF_BITMAP)
CloseClipboard()
End If
End If
И что делать с этим "Hnd"?
A>3. Дальше разобраться не так и сложно. Единственное что в упор не знаю — манипуляции с указателями на ВБ. См. описание GetObject(). Но суть в том, что для записи простого битмапа достаточно заполнить BITMAPFILEHEADER и BITMAPINFOHEADER и слить их в файл bmp вместе с данными.
A>4. А уж другие форматы файлов... Всякие JPEG и PNG действительно на ВБ долго мучить.
Мне бы хотя бы BMP
A>А вообще это всё лучше спрашивать в форуме VB. Не мог Билли оставить в стороне работу с буфером на VB. Даже помню, что когда-то там вроде был объект Clipboard и можно было одной строкой сохранять битмапы.
Ну сейчас добрые модераторы подтянутся и разрулят что куда и как лучше
А про работу с буфером — это и в NET одной строкой делается. Мне бы на WinAPI
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>