WinAPI + буфер обмена + картинка
От: RendeRR Россия nothing
Дата: 02.10.05 18:56
Оценка:
Народ, поделитесь кодом, сохранения картинки из буфера в файл при помощи WinAPI. Желательно на VB.NET. Спасибо.
P.S. Использование средств dotNET'а не предлагать.
Не знаешь как правильно – делай, как знаешь…
Re: WinAPI + буфер обмена + картинка
От: Amidlokos Россия  
Дата: 02.10.05 19:13
Оценка:
Здравствуйте, RendeRR, Вы писали:

RRR>Народ, поделитесь кодом, сохранения картинки из буфера в файл при помощи WinAPI. Желательно на VB.NET. Спасибо.

RRR>P.S. Использование средств dotNET'а не предлагать.

GetClipboardData(CF_BITMAP) вернёт хэндл HBITMAP, а далее посмотри здесь (Storing an image)
WARNING: expression "to_be || !to_be" is always true
Re[2]: WinAPI + буфер обмена + картинка
От: RendeRR Россия nothing
Дата: 02.10.05 19:24
Оценка:
Здравствуйте, 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>>
Не знаешь как правильно – делай, как знаешь…
Re[3]: WinAPI + буфер обмена + картинка
От: Amidlokos Россия  
Дата: 02.10.05 19:45
Оценка:
Здравствуйте, 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 и можно было одной строкой сохранять битмапы.
WARNING: expression "to_be || !to_be" is always true
Re[4]: WinAPI + буфер обмена + картинка
От: RendeRR Россия nothing
Дата: 02.10.05 20:30
Оценка:
Здравствуйте, 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>>
Не знаешь как правильно – делай, как знаешь…
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.