Bonjour à tous,
Pour la petite histoire:
je suis en train de programmer un Bot pour megaupload, qui permet de gérer une liste de téléchargement.
le bot en lui même fonctionne, pour les intéressés: http://botmu.sourceforge.net
Topic Ubuntu-fr.org: http://forum.ubuntu-fr.org/viewtopic.php?id=449708
Mon problème:
Je suis en train d'implémenter une fonction de repérage de copier/coller pour intégrer automatiquement un lien qu'on aurait copié, via, par exemple, firefox
j'ai fais un test sur lequel ça marchait très bien, mais lorsque j'intègre ma class a mon projet j'ai une erreur à cause de "import gtk":
quelqu'un sait d'où ça pourrait venir ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 /usr/lib/pymodules/python2.6/gtk-2.0/gtk/__init__.py:127: RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK set_interactive(1)
* ça viendrai pas du fait que pyqt et pygtk sont pas copain ? pasque je vois pas ce qui peu déconner ^^
j'ai vu qu'il y avait une autre methode pour lire le clipboard, je vais regarder ça en attendant.
EDIT: ah bah non, j'ai trouver un autre moyen mais ça passe par la ligne de commande sur un programme non installé par defaut, Si quelqu'un à une autre solution pour récupéré la valleur du clipboard sans passé par gtk, ça me va aussi
ma class clipboard:
* j'ai également tenter de rajouter "import pygtk pygtk.require('2.0')" mais ça ne change rien
mon test, qui fonctionne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 import threading import time try: import gtk except: pass try: import win32clipboard import win32con except: pass class WinClipboard(threading.Thread): def __init__(self, args=None, kwargs=None): threading.Thread.__init__(self) self.stop = False self.clipboardValue="" def run(self): while not self.stop: clipboard = win32clipboard.OpenClipboard() tmp = win32clipboard.GetClipboardData(win32con.CF_TEXT) if(tmp != self.clipboardValue): self.clipboardValue = tmp if("http://megaupload.com?d=" in self.clipboardValue): print self.clipboardValue time.sleep(2) class LinuxClipboard(threading.Thread): def __init__(self, args=None, kwargs=None): threading.Thread.__init__(self) self.stop = False self.clipboardValue="" def run(self): while not self.stop: clipboard = gtk.clipboard_get() tmp = clipboard.wait_for_text() if(tmp != self.clipboardValue): self.clipboardValue = tmp if("http://megaupload.com?d=" in self.clipboardValue): print self.clipboardValue time.sleep(2)
ma class (le debut (seulement __init__) dans laquel ça plante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 from clipboard import * class test(): def __init__(self): t = LinuxClipboard(self) t.start() test()
Voila voila,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 #!/usr/bin/python # -*- coding: utf-8 -*- # Inclusions des modules générique # Native import os, platform import re import time # Pyqt4 from PyQt4.QtCore import * from PyQt4.QtGui import * # Perso from download import * from options import * from clipboard import * # Inclusion optionel en fonction de la plateforme try: import _winreg except: pass ############################################################################# class Fenetre(QWidget): #======================================================================== def __init__(self, parent=None): if not os.path.isfile("setup.ini"): paramfile = open("setup.ini", "w+") paramfile.close() #About values self.aboutLogo = 'icons/BotMU.png' self.aboutAuthor = u'Raphaël Perraudeau' self.aboutAlias = u'xXKirastarotHXx' self.aboutMail = 'rperraudeau@gmail.com' self.aboutVersion = 'v0.97b' self.aboutDescription = u'BotMU est un petit logiciel qui permet de lancer une liste de téléchargements via megaupload' self.aboutWebSite = 'http://botmu.sourceforge.net/' # Definition des variables d'environement en fonction de l'os # Linux: if platform.system() == 'Linux': self.userPersonalPath = os.path.expanduser("~") #self.clipboard = LinuxClipboard(self) #self.clipboard.start() # Windows: # Fonctionne avec XP, à tester avec Vista/Seven if platform.system() == 'Windows': key = _winreg.OpenKey( _winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders',0, _winreg.KEY_READ) (valeur,typevaleur) = _winreg.QueryValueEx(key,'Personal') _winreg.CloseKey(key) self.userPersonalPath = valeur #self.clipboard = WinClipboard(self) #self.clipboard.start()
merci d'avance
Partager