2008-10-27 15 views
6

Zajmuję się tworzeniem oprogramowania, które musi wiedzieć, kiedy wydarzenie WKLEJ (za pośrednictwem menu kontekstowego lub ctrl + V) ma miejsce (tylko dla plików/katalogów). Mniej więcej coś podobnego dzieje się z TeraCopy lub Copy Handler. Kiedy kopiujesz, a następnie wklejasz, to TeraCopy zajmuje się wklejaniem.
Wiem mniej więcej, jak uchwycić ZDARZENIE KOPIOWANIA, wystarczy ustawić ClipboardViewer i przechwycić wszystkie globalne ZDARZENIA KOPIA (tak naprawdę nazywa się: WM_DRAWCLIPBOARD). Możesz się tego nauczyć tutaj: http://www.radsoftware.com.au/articles/clipboardmonitor.aspx Ale ClipBoardViewer nie zapewnia możliwości wychwycenia WYDŁUŻENIA W PASTE.Jak podłączyć globalne wydarzenie PASTE?

+0

Czy to możliwe, że właśnie wykrywają naciśnięcie klawisza CTRL + V? – mmiika

Odpowiedz

1

Proces zmiany stanu za pomocą "Wklejania" jest specyficzny dla poszczególnych aplikacji, jako że nie istnieje żaden magiczny sposób na sprawdzenie, czy stan aplikacji zmienił się po uzyskaniu dostępu do schowka.

Najlepsze, co możesz zrobić, to sprawdzić, czy aplikacja pobrała dane ze schowka. Ponownie, nie ma możliwości sprawdzenia, co aplikacja zrobiła z tymi danymi. Przypomina to, że ktoś otworzył frontdoor, nie wiedząc, dokąd się udają.

Jeśli chcesz tego spróbować, możesz zrobić coś w rodzaju podpięcia funkcji GetClipboardData. Aby uzyskać informacje o tym, jak umieszczać systemowe haki API, sprawdź próbki w Micrsoft Objazdy - http://research.microsoft.com/sn/detours

-1

Jednak oprogramowanie takie jak Teracopy i Copy Handler wykrywa wklejanie. Potrzebuję prawie tego samego, wykryj, kiedy plik/katalog jest wklejony.

-1

W rzeczywistości, to oprogramowanie działa nie tylko dla ctrl + v, ale także po kliknięciu opcji wklejania w menu kontekstowym (prawy przycisk myszy).