ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
    • Wykłady IT
  • Firma

Automatyczne kopiowanie tekstów do schowka

Napisane przez Igor Brzeżek on 15 czerwca 2026
Napisane w: Programowanie.

Contents
  1. Automatyczne kopiowanie zaznaczonego tekstu do schowka (Windows i Linux)
  2. Do czego służy autocopy?
  3. Jak to działa – mechanizm wewnętrzny
  4. Wersja Windows
  5. Wersja Linux (X11)
  6. Wymagania
  7. Wersja Windows
  8. Wersja Linux (X11)
  9. Instalacja i uruchomienie
  10. Windows – kompilacja
  11. Linux – kompilacja
  12. Opcje wiersza poleceń – szczegółowy opis
  13. Tryby wyświetlania
  14. Wyzwalanie kliknięciem
  15. Klawisze modyfikujące
  16. Konfiguracja czasowa
  17. Zarządzanie buforem (TUI)
  18. Logowanie i pliki
  19. Pomoc i informacje
  20. Sterowanie w trybie TUI
  21. Przykłady użycia
  22. Windows
  23. Linux
  24. Różnice między wersją Windows a Linux
  25. Bezpieczeństwo
  26. Podsumowanie

Automatyczne kopiowanie zaznaczonego tekstu do schowka (Windows i Linux)

autocopy to lekki program napisany w ANSI C, który automatyzuje kopiowanie zaznaczonego myszą tekstu do schowka systemowego. Dostępny jest w dwóch wersjach – dla systemu Windows (z wykorzystaniem Win32 API) oraz dla Linuxa z serwerem X11. Program eliminuje potrzebę ręcznego naciskania Ctrl+C – sam wykrywa moment zakończenia zaznaczania tekstu i symuluje kopiowanie.

GitHub: github.com/IgorBrzezek/autocopy

Do czego służy autocopy?

autocopy rozwiązuje problem mechanicznego, powtarzalnego kopiowania tekstu. Każdy, kto pracuje z dużą ilością danych, cytatów, kodu źródłowego czy dokumentacji, wie, ile czasu zajmuje ciągłe zaznaczanie i naciskanie Ctrl+C. autocopy robi to automatycznie:

  • Praca z dokumentacją – zaznaczasz fragment tekstu, a on już jest w schowku.
  • Kopiowanie kodu – przeglądasz kod źródłowy, zaznaczasz fragment i od razu możesz go wkleić.
  • Analiza danych – zbierasz informacje z roznych źródeł bez odrywania rąk od myszy.
  • Edukacja i badania – gromadzisz cytaty i fragmenty bez zbędnych kliknięć.

Jak to działa – mechanizm wewnętrzny

Wersja Windows

Program instaluje w systemie niskopoziomowy hak myszy (WH_MOUSE_LL), który monitoruje zdarzenia zwolnienia przycisku myszy (WM_LBUTTONUP) w całym systemie:

  1. Wykrywanie: monitoruje zwolnienie lewego przycisku myszy we wszystkich oknach.
  2. Walidacja: sprawdza, czy aktywne okno NIE należy do samego autocopy (zabezpieczenie).
  3. Wykonanie: po 200 ms opóźnienia (na przetworzenie przez system) symuluje naciśnięcie Ctrl+C.
  4. Odczyt schowka: jeśli włączono tryb TUI, logowanie lub wyświetlanie tekstu, program odczytuje zawartość schowka.

Dodatkowo instalowany jest hak klawiatury (WH_KEYBOARD_LL) do obsługi Ctrl+Z (wyjście), strzałek (nawigacja w TUI) oraz Ctrl+Enter (kopiowanie zaznaczonej pozycji w TUI).

Kontrola instancji odbywa się przez nazwany mutex o nazwie AutoCopy2_Instance_Mutex_Igor, co zapobiega uruchomieniu wielu kopii programu (flaga --force to omija).

Wersja Linux (X11)

Wersja linuksowa wykorzystuje rozszerzenie XRecord do monitorowania zdarzeń myszy i klawiatury w całym systemie X11:

  1. Rejestracja: tworzy kontekst XRecord do przechwytywania zdarzeń przycisków myszy i klawiszy modyfikujących od wszystkich klientów X.
  2. Wykrywanie kliknięć: monitoruje ButtonRelease dla przycisku 1 (lewy).
  3. Walidacja modyfikatorów: sprawdza stan klawiszy Alt i Ctrl przez XQueryPointer.
  4. Wykonanie: po 200 ms opóźnienia symuluje Ctrl+C przez XTest (XTestFakeKeyEvent).
  5. Odczyt schowka: pobiera tekst przez mechanizm X Selection (CLIPBOARD).

Wersja Linux posiada rownież wątek obsługi schowka, który pozwala na kopiowanie tekstu z powrotem do schowka systemowego (funkcja w trybie TUI).

Wymagania

Wersja Windows

  • System operacyjny: Windows XP SP3 i nowsze z obsługą Win32 API.
  • Architektura: x86 lub x64.
  • Kompilacja: MinGW-w64 (GCC dla Windows).
  • Zero zależności runtime – binarka zawiera wszystkie wymagane biblioteki przy kompilacji z flagą -static.

Wersja Linux (X11)

  • System operacyjny: dowolna dystrybucja Linux z serwerem X11.
  • Kompilacja: GCC z bibliotekami X11, XTest, XFixes, XRecord, pthread.
  • Debug: libxcb, libXau, libXdmcp (dla linkowania statycznego).

Instalacja i uruchomienie

Windows – kompilacja

Pobierz kod źródłowy i skompiluj kompilatorem MinGW-w64:

gcc autocopy.c -o autocopy.exe -lkernel32 -luser32 -lgdi32 -Wall -O2 -static

Do automatycznej kompilacji można użyć Makefile:

make

Po kompilacji umieść plik autocopy.exe w dowolnym folderze (opcjonalnie dodaj do zmiennej PATH). Uruchom:

autocopy.exe [opcje]

Linux – kompilacja

Zainstaluj wymagane pakiety deweloperskie:

Debian/Ubuntu:

sudo apt-get install build-essential libx11-dev libxtst-dev libxfixes-dev libxrecord-dev libxcb-dev libxau-dev libxdmcp-dev

Fedora/RHEL:

sudo dnf install gcc make libX11-devel libXtst-devel libXfixes-devel libXrandr-devel libXext-devel libxcb-devel libXau-devel libXdmcp-devel

Skompiluj z linkowaniem dynamicznym:

gcc autocopy_linux.c -o autocopy_linux -lX11 -lXtst -lXfixes -lpthread

Lub statycznym (większy plik, ale działa bez bibliotek deweloperskich):

gcc -static autocopy_linux.c -o autocopy_linux -Wl,--start-group -lX11 -lXtst -lXfixes -lXext -lxcb -lXau -lXdmcp -lpthread -ldl -lrt -lresolv -Wl,--end-group

Uruchom:

./autocopy_linux [opcje]

Opcje wiersza poleceń – szczegółowy opis

Tryby wyświetlania

--tui Włącza Terminal User Interface – tryb wizualny z logiem, statystykami na żywo i możliwością przewijania.
--showtext Wyświetla skopiowany tekst w konsoli (domyślnie wyłączone).

Wyzwalanie kliknięciem

--1click Wyzwala po pojedynczym kliknięciu (domyślne).
--2click Wyzwala po podwojnym kliknięciu.
--3click Wyzwala po potrojmym kliknięciu.

Klawisze modyfikujące

--alt Kopiuje tylko przy wciśniętym lewym Alt.
--ctrl Kopiuje tylko przy wciśniętym lewym Ctrl.
--ctrl1 Zawsze zezwala na kopiowanie pojedynczym kliknięciem + Ctrl.
--ctrl2 Zawsze zezwala na kopiowanie podwojnym kliknięciem + Ctrl.

Konfiguracja czasowa

--mintime <ms> Minimalny czas między kliknięciami (domyślnie: 0 ms).
--maxtime <ms> Maksymalny czas między kliknięciami (domyślnie: czas podwojnego kliknięcia systemu, ok. 500 ms).

Zarządzanie buforem (TUI)

--maxline <N> Maksymalna liczba linii w buforze TUI (Windows, domyślnie: 100, zakres: 10-100000).
--maxlinebuffer <M> Maksymalna liczba bajtów na linię (Windows, domyślnie: 65536 = 64 KB, zakres: 256-1048576).
--logbuffer N Maksymalna liczba linii w buforze TUI (Linux, domyślnie: 200).
--linesize M Maksymalny rozmiar tekstu w znakach na linię logu (Linux, domyślnie: 4096).

Logowanie i pliki

--log <plik> Zapisuje skopiowany tekst do pliku z znacznikami czasowymi.

Pomoc i informacje

-h Krotka pomoc.
--help Szczegołowa dokumentacja.
--version Wyświetla wersję programu.
--force Wymusza uruchomienie kolejnej instancji (Windows, pomija blokadę mutex).
-b, --batch Tryb batch – bez wyświetlania na konsoli (Linux, do pracy w tle).

Sterowanie w trybie TUI

Strzałka w górę Przesuwa zaznaczenie w górę w logu.
Strzałka w dół Przesuwa zaznaczenie w dół w logu.
Ctrl+Enter Kopiuje zaznaczoną pozycję z logu do schowka.
u / U Przewijanie o stronę w górę (Linux).
d / D Przewijanie o stronę w dół (Linux).
Ctrl+Z Wyjście z programu (Windows).
Ctrl+C Wyjście z programu (Linux).

Przykłady użycia

Windows

1. Podstawowe użycie z wyświetlaniem tekstu

autocopy.exe --showtext

Wyzwala po pojedynczym kliknięciu i wyświetla skopiowany tekst w konsoli.

2. Podwojne kliknięcie z Alt

autocopy.exe --2click --alt

Kopiuje tylko po podwojnym kliknięciu z wciśniętym lewym Alt.

3. Tryb TUI z logowaniem do pliku

autocopy.exe --tui --log clipboard.txt

Włącza interfejs TUI z statystykami i zapisuje kopiowany tekst do pliku clipboard.txt z oznaczeniami czasowymi.

4. Najbardziej przydatna opcja

autocopy.exe --2click --tui --showtext

Łączy tryb podwojnego kliknięcia z interfejsem TUI i wyświetlaniem tekstu. Zalecane przez autora jako najbardziej uniwersalne ustawienie.

5. Potrojne kliknięcie z konfiguracją czasową

autocopy.exe --3click --mintime 200 --maxtime 800 --showtext

Wymaga potrojnego kliknięcia w oknie 200-800 ms między kliknięciami; wyświetla tekst.

6. Ctrl + kliknięcie z własnym buforem

autocopy.exe --ctrl1 --ctrl2 --maxline 200 --maxlinebuffer 131072 --tui

Zezwala na Ctrl+pojedyncze i Ctrl+podwojne kliknięcie z większym buforem i trybem TUI.

Linux

1. Uruchomienie domyślne

./autocopy_linux

Kopiuje po pojedynczym kliknięciu, wyświetla tekst w konsoli.

2. Podwojne kliknięcie z Alt

./autocopy_linux --2click --alt

3. Tryb TUI z logowaniem do pliku

./autocopy_linux --tui --log ~/autocopy_log.txt

4. Tryb batch (praca w tle)

./autocopy_linux -b

5. Pojedyncze kliknięcie z Ctrl

./autocopy_linux --ctrl1

Jest to rownoznaczne z --ctrl --1click.

Różnice między wersją Windows a Linux

Cecha Windows Linux
Środowisko Win32 API, MinGW X11, XRecord, XTest
Rozmiar pliku ~100-200 KB (static) ~38 KB (dynamic) / ~2,7 MB (static)
Kontrola instancji Mutex systemowy Brak (jedna instancja przez PID)
Wyjście z programu Ctrl+Z lub zamknięcie okna Ctrl+C w terminalu
Nawigacja w TUI Strzałki gora/dół Strzałki gora/dół, u/d (strona), Home/End
Ograniczenie bufora TUI –maxline, –maxlinebuffer –logbuffer, –linesize
Ctrl+Shift+Enter w TUI Brak Kopiuje wszystkie wpisy z sesji

Bezpieczeństwo

Program posiada kilka wbudowanych zabezpieczeń:

  • Samo-detekcja: nie wyzwala się po kliknięciu we własnym oknie konsoli.
  • Pojedyncza instancja: tylko jedna kopia programu może działać jednocześnie (z możliwością wymuszenia flagą --force).
  • Obsługa sygnałów: w Windows zapobiega przypadkowemu zamknięciu przez Ctrl+C.
  • Walidacja PID: przed wysłaniem Ctrl+C sprawdzany jest właściciel aktywnego okna.
  • Wyjście awaryjne: Ctrl+Z (Windows) lub Ctrl+C (Linux) zamyka program.

Podsumowanie

autocopy to eleganckie, minimalistyczne narzędzie dla każdego, kto regularnie pracuje z kopiowaniem tekstu w systemie Windows lub Linux. Dzięki zastosowaniu niskopoziomowych haków systemowych (WH_MOUSE_LL w Windows) i rozszerzenia XRecord (w Linux) program jest niezwykle oszczędny – czeka w tle, nie zużywając praktycznie zasobów procesora.

Bogaty zestaw opcji (tryb kliknięcia, klawisze modyfikujące, konfiguracja czasowa, tryb TUI z logowaniem) sprawia, że sprawdzi się zarowno w codziennej pracy biurowej, jak i w zaawansowanych procesach analizy danych czy dokumentacji. Wersja ANSI C dodatkowo oferuje całkowitą niezależność – pojedynczy plik wykonywalny, który działa bez żadnych zewnętrznych zależności.

Źrodla: github.com/IgorBrzezek/autocopy

Nawigacja

← Generator plików WAV
Pobieranie audio + video z YouTube →
  • Szukaj

  • Kategorie

    • IT ogólnie (158)
      • AI (1)
      • Bezpieczeństwo (20)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Podstawy informatyki (1)
      • Sieci (47)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Monitorowanie sieci (3)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (5)
        • Symulator sieci GNS3 (5)
        • Tunelowanie ruchu (6)
          • Tunele GRE (2)
          • Tunele SSH (4)
        • WLAN / WiFi (7)
      • Software (78)
        • Bazy danych (13)
        • Programowanie (21)
        • Systemy operacyjne (21)
          • Linux Debian (18)
        • Windows (8)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • Opencode – darmowe kredyty
    • Tunel SSH – zwrotny (remote forwading)
    • GNS3 – Interfejsy sieciowe
    • GNS3 – Konfiguracja urządzenia IOU (L2/L3)
    • Tunel GRE + EoIP na Cisco
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y

Powered by
Necessary cookies enable essential site features like secure log-ins and consent preference adjustments. They do not store personal data.
None
Functional cookies support features like content sharing on social media, collecting feedback, and enabling third-party tools.
None
Analytical cookies track visitor interactions, providing insights on metrics like visitor count, bounce rate, and traffic sources.
None
Advertisement cookies deliver personalized ads based on your previous visits and analyze the effectiveness of ad campaigns.
None
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
None
Powered by