Εισοδος δεδομενων σε προγραμμα απο ενα μαρκαρισμενο κειμενο

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Εισοδος δεδομενων σε προγραμμα απο ενα μαρκαρισμενο κειμ

Δημοσίευσηαπό Ilias95 » 03 Απρ 2013, 21:24

g1wrg0s έγραψε:Στη βαση του ιδιου προγραμματος θα ηθελα να ρωτησω με ποιο τροπο θα μπορουσα να εκτελεσω ενα ctr+v(paste) με εντολη απο command line . Με αλλα λογια θελω αντι να πατει ο χρηστης ctr+v να το κανει με μια εντολη. Υπαρχει κανενας τροπος να γινει αυτο ;

Ναι, αλλά πάλι δεν κατάλαβα τι ακριβώς θες να κάνεις.
Που θα δίνει την εντολή ο χρήστης και που θα επικολλάται το κείμενο;

Αν το ξέρω σωστά, όταν κάνεις αντιγραφή ένα κείμενο αυτό αποθηκεύεται στο λεγόμενο clipboard οπότε πρέπει να ψάξεις να βρεις πως μπορείς να έχεις πρόσβαση στο περιεχόμενο του clipboard με την python (;). Google is your friend then.. :)
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Εισοδος δεδομενων σε προγραμμα απο ενα μαρκαρισμενο κειμ

Δημοσίευσηαπό g1wrg0s » 03 Απρ 2013, 21:42

Αυτο που θελω να επιτυχω ειναι να κανω μεσα σε ενα script αυτο που κανει ο συνδιασμος ctr+v.

Με αλλα λογια εσυ εισαι ετοιμος να επικολλησεις καπου ενα κειμενο και πατας ctr+v. Ποια εντολη εκτελειται εκεινη τη στιγμη ;;; I wand a good keyword for my friend :)

Y.G : Αυτο με το clipboard το γνωριζω. Καθε φορα ομως θα ειναι και αλλη εξοδος γι αυτο θελω να δω πως υλοποιειται to shortcut ctr+v.
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Πρώτα βήματα
2 Ubuntu 12.10 quantal 3.10.20-031020-generic 32bit (el_GR.UTF-8, Unity ubuntu), Windows 8
3 Intel Core i5-3230M CPU @ 2.60GHz ‖ RAM 7923 MiB ‖ Acer VA50_HC_CR - Acer Aspire V3-571G
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915} ⋮ nVidia Device [10de:0fe1] {}
5 eth0: Broadcom NetLink BCM57785 Gigabit Ethernet PCIe [14e4:16b5] (rev 10) ⋮ wlan0: Atheros Inc. AR9462 Wireless Network Adapter [168c:0034] (rev 01)
g1wrg0s
punkTUX
punkTUX
 
Δημοσιεύσεις: 196
Εγγραφή: 26 Μάιος 2012, 10:29
Εκτύπωση

Re: Εισοδος δεδομενων σε προγραμμα απο ενα μαρκαρισμενο κειμ

Δημοσίευσηαπό Ilias95 » 03 Απρ 2013, 22:11

Κάθε φορά που επιλέγεις με το ποντίκι σου ένα κείμενο και κάνεις αντιγραφή το σύστημα παίρνει αυτό το κείμενο και το αποθηκεύει στο clipboard. Όταν κάνεις επικόλληση το σύστημα πάει και βλέπει τι έχει αποθηκευμένο στο clipboard και στο επιστρέφει. Το πως ακριβώς υλοποιείται αυτό δεν σε ενδιαφέρει. Δεν εκτελείται ακριβώς κάποια εντολή. Με κάποια κλήση συστήματος ίσως; Δεν ξέρω...

Αυτό που θες όμως εσύ είναι απλά να έχεις πρόσβαση συνεχώς στο περιεχόμενο του clipboard και το θες με την python. Σωστά;
Αν ναι, με μια πολύ γρήγορη αναζήτηση στο google βρήκα:
1. Για το αντίστοιχο module που υπάρχει στην βιβλιοθήκη gtk. Πχ. δες αυτό το βιντεο: http://www.youtube.com/watch?v=PH2T7SfRzXM
Προσωπικά δεν μ' αρέσει σαν λύση γιατί προσθέτει τσάμπα μια βαριά dependency στο πρόγραμμα σου.
2. Το πρόγραμμα xsel. Τρέχει από τερματικό και σου επιτρέπει την access στο clipboard. Οπότε μπορείς κάλλιστα να το χρησιμοποιήσεις και μέσω ενός python script. Το πως θα το χρησιμοποιήσεις ξέρεις που θα το βρεις. :P
3. Πάρα πολλά άλλα links τα οποία δεν επισκέφτηκα. Ψάξε περισσότερο και σίγουρα θα βρεις περισσότερες και ίσως καλύτερες λύσεις.

g1wrg0s έγραψε:Y.G : Αυτο με το clipboard το γνωριζω. Καθε φορα ομως θα ειναι και αλλη εξοδος γι αυτο θελω να δω πως υλοποιειται to shortcut ctr+v.

Δεν το καταλαβαίνω αυτό. Τι εννοείς θα είναι άλλη η έξοδος; Του clipboard; Του προγράμματος;
Γίνε πιο συγκεκριμένος. Τι ακριβώς θες να φτιάξεις;

Edit:
Ψάχνοντας λίγο περισσότερο σχετικά με το clipboard, βρήκα αυτό:
Linux is an operating system. It doesn't have a clipboard. The clipboard
is provided by desktop frameworks, such as KDE or Gnome.

Άρα δεν το περιγράφω εντελώς σωστά παραπάνω.
Οπότε ίσως αυτό με την gtk ίσως δεν είναι άσχημη λύση.
Btw, υπάρχει αντίστοιχο module και στην PyQt και φαντάζομαι και στις άλλες παρόμοιες βιβλιοθήκες...
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Προηγούμενη

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι