Využij akce až 80% zdarma při nákupu e-learningu. Více informací .
BF summer
Avatar
matesax
Redaktor
Avatar
matesax:8.9.2012 12:40

Dobrý den,
potřeboval bych uložit jakákoliv data ze schránky jako soubor. Tedy potřeboval bych schránku nějak hlídat (abych nemusel používat timer) - myslím vstup. Popř nějak hlídat události Cut a Copy. Kdyžtak sáhnu po timeru... No a prostě každá nová data ukládat - nejspíše jak jsem psal všechna do souborů a někam si budu dělat poznámky, co byly skutečně soubory a co ne. Děkuji za případné řešení...

 
Odpovědět
8.9.2012 12:40
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět
8.9.2012 14:07
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:8.9.2012 14:27

To jsem již viděl - proto píši sem... Hold to budu muset udělat pro každý typ zvlášť. A spokojil jsem se s přetahováním do programu (schránku jsem tedy vzdal)...

 
Nahoru Odpovědět
8.9.2012 14:27
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:30.9.2012 10:54
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System;

namespace Hiproar
{
    class ClipboardHandler : Form
    {
        IntPtr nextClipboardViewer;

        public ClipboardHandler()
        {
            nextClipboardViewer = (IntPtr)SetClipboardViewer((int)this.Handle);
        }

        [DllImport("User32.dll")]
        protected static extern int SetClipboardViewer(int hWndNewViewer);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool ChangeClipboardChain(IntPtr hWndRemove, IntPtr hWndNewNext);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);

        protected override void WndProc(ref Message m)
        {
            const int contentChange = 0x308, chainChange = 0x030D;

            switch (m.Msg)
            {
                case contentChange:
                    DisplayClipboardData();
                    SendMessage(nextClipboardViewer, m.Msg, m.WParam,  m.LParam);
                    break;

                case chainChange:
                    if (m.WParam == nextClipboardViewer)
                        nextClipboardViewer = m.LParam;
                    else
                        SendMessage(nextClipboardViewer, m.Msg, m.WParam, m.LParam);
                    break;

                default:
                    base.WndProc(ref m);
                    break;
            }
        }

        void DisplayClipboardData()
        {
            System.Windows.Forms.MessageBox.Show(":)");
        }
    }
}

A data jsem dostal přes FileDrop formát... :)

Editováno 30.9.2012 10:56
 
Nahoru Odpovědět
30.9.2012 10:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.