Python

2014-09-17 8 views
6

'daki herhangi bir uygulamadan panoya olayı (onChangeClipboard karşılığı) nasıl yakalarım Pano yöneticisi üzerinde çalışıyorum. Benim mevcut sorunum, herhangi bir uygulamadan panoya değişiklik yakalamakta başarılı olmaktır. Örneğin: Bir ctrl itibarenPython

  • - c
  • sağ klik itibaren fikir Python komut bir deamon gibi, arka planda çalışıyor olması

panoya ve her değişikliği yakalamak için kopyalamak autohotkey bilen insanlar için , ben onClipboardChange equi arıyorum: pano

seni çok :)

PS ederiz değerlikli

+0

ne os? .... Muhtemelen yoklama kullanacağınız bir etkinlik alacağınızdan şüpheliyim. –

cevap

5

pencerelerde bir örnektir GTK'yi kullanıyor. Çalışır :)

import sys 
from gi.repository import Gtk, Gdk 


def callBack(*args): 
    print("Clipboard changed. New value = " + clip.wait_for_text()) 


clip = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) 
clip.connect('owner-change',callBack) 
Gtk.main() 

Herhangi bir kişinin QT veya daha doğal çözümlerle çözümü var mı?

0

Sana bir olayın burada

dinleyebilirsiniz sanmıyorum ... Eğer panoya yoklamak gerekir diye düşünüyorum ben web çözüm bulundu

import win32clipboard 
last_data = None 
while True: 
    # get clipboard data 
    win32clipboard.OpenClipboard() 
    data = win32clipboard.GetClipboardData() 
    win32clipboard.CloseClipboard() 
    if data != last_data: 
     print "Clipboard Changed!" + data 
     last_data = data 
0

Bunu C#/Mono ve Gtk ile yapın.

/* put this eventhandler on your main method */ 
    Gtk.Clipboard.Get (Gdk.Selection.Clipboard).OwnerChange += onClipboardOwnerChange; 

    protected void onClipboardOwnerChange (object sender, EventArgs e) 
    { 
      Console.WriteLine ("onClipboardOwnerChange!!"); 
    }