Ejemplo n.º 1
0
        public static void SetClipboardImage(Bitmap image)
        {
            using (MemoryStream pngMemStream = new MemoryStream())
            {
                image.Save(pngMemStream, ImageFormat.Png);

                uint id = ClipboardApi.RegisterClipboardFormatW("PNG");

                List <ClipboardEntry> entries = new List <ClipboardEntry>();
                entries.Add(CreateDIBV5Image(image));
                entries.Add(new ClipboardEntry(id, pngMemStream.ToArray()));
                entries.Add(CreateDIBImage(image));

                SetClipboard(entries);
            }
        }
Ejemplo n.º 2
0
        public static bool SetClipboard(ClipboardEntry entry)
        {
            if (!ClipboardApi.OpenClipboard(IntPtr.Zero) || !ClipboardApi.EmptyClipboard())
            {
                return(false);
            }
            IntPtr handle = Marshal.AllocHGlobal(entry.data.Length);

            Marshal.Copy(entry.data, 0, handle, entry.data.Length);
            if (!ClipboardApi.SetClipboardData(entry.id, handle))
            {
                Marshal.FreeHGlobal(handle);
                return(false);
            }
            ClipboardApi.CloseClipboard();
            return(true);
        }