Komut dosyası pano içeriğini bir dosyaya kopyala


2

Önceki içerik değiştiğinde pano içeriğini kopyalayan bir kabuk betiği yazmak istiyorum (yalnızca düz metin). Her seferinde betiği başlattığımda bir şey kopyaladığımda (panoya ait içerik değişiyorsa) betiği yeni değerleri bir dosyaya kopyalar.

Doğru çalışan bir senaryo yazdım:

#!/bin/bash
prev=" "
while true
do
curr=$(pbpaste)
if [ "$curr" != "$prev" ]
then
   echo -n " " >> /Users/davide/desktop/file   
echo -n $curr >> /Users/davide/desktop/file     
fi
done

Bu çözümü pek sevmiyorum. Bu sorunu çözmenin farklı yolları olmalı.

1) Pano içeriğini alın, bir değişkende saklayın ve bu değeri panodaki geçerli değerle karşılaştırın (çözümüm.)

2) Basılı tuşa basın CMD + C . Kullanıcı bastığında CMD + C (panoya bir şey kopyalamak için kısayol) neredeyse kesinlikle pano içeriği değişir, ancak ek kitaplıklar yüklemeden tuş vuruşunu tespit edip edemeyeceğimi bilmiyorum.

3) Süreci görün.

Processes associated to copy action CMD+C

PBOARD process info

Pboard işleminin cpu veya mem kullanımını izleyebilir (panoya bir şey kopyalarken bu yüzde değişimin değeri)?

Veya (mümkün mü bilmiyorum) sürecin alanını ele alabilir miyim?

Benim sorum bu:

Sizce, 2 ve 3 alternatiflerini göz önünde bulundurarak yazdığım senaryoya daha iyi bir alternatif var mı?


Bu, kötü amaçlı yazılımın panodaki şifreleri araması için güzel bir konsept kanıtı gibi görünmektedir. Bunun er ya da geç ezileceğini tahmin ediyorum ve pano değişikliklerini izlemek için bir yetki edinmeniz gerekecek. WWDC'den gizlilik cephesinde ne çıkacağını göreceğiz - belki bu biraz daha mümkün olabilir
bmike

Seçenek # 2'ye lütfen Oku bunu bazı fikirler için. Ayrıca, bu yazıyı oku
Seamus

Panodaki değişiklikleri nasıl "izleyeceksin"? Bunu yapmak için, bir senaryodan başka bir şeye ihtiyacınız var.
Allan

Bir var açık kaynak kodlu tuş kaydedici Başlamak için bazı kodlara sahip olan Mac'ler için.
Seamus

Yanıtlar:


1

Bunun gibi bir ürün zaten var ve App Store'da ücretsiz mevcut - Flycut .

Onların Github proje sayfası:

O anda görüntülenen pano geçmişi öğesini bir dosyaya kaydedin,   Bezel. Büyük S ise öğeyi pano geçmişinden silin   bastırdı. Kırpma, masaüstündeki bir dosyaya kaydedilir;   Ekran Görüntüleri OS X tarafından kaydedilir, örn. "Masaüstü / Kırpma 2015-07-15 at   08.35.10.txt

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.