Προς το περιεχόμενο

NO MORE ALT+SHIFT


Eusebius

Προτεινόμενες αναρτήσεις

Δοκιμαστική —δώστε βάση!— και ενδεχομένως χαζή —ξαναδώστε βάση!— ιδέα προγράμματος-σκριπτ για όσους κουράζονται να κάνουν συνέχεια Alt+Shift για να γράφουν λέξεις με λατινικούς χαρακτήρες μέσα σε ελληνικό κείμενο — με δυο λόγια, για κάθε ομαλό άνθρωπο! :-)

 

Πρόκειται για ένα πακετάκι με δυο τρεις ιδέες τις οποίες έχω εφαρμόσει μέσω του AutoHotkey για προσωπική χρήση και τις βρίσκω εξυπηρετικές. Τις μετέτρεψα σε ένα μικρό εκτελέσιμο και τις ανέβασα κάπου για κατέβασμα, σκεφτόμενος ότι μπορεί να ενδιαφέρουν και άλλους.

 

Πάμε στο ψητό τώρα!

 

 

Πού δουλεύει το σκριπτ-προγραμματάκι

 

Βασικά δουλεύει σε Windows, με μια επιφύλαξη για την default input language, δηλ. τη γλώσσα πληκτρολογίου με την οποία ξεκινάει το σύστημα (όχι τη γλώσσα στην οποία είναι το γραφικό περιβάλλον).

 

Λειτουργικά συστήματα στα οποία δοκιμάστηκε και δουλεύει

 

  • Windows XP με αγγλικά ως default input language
  • Windows XP με ελληνικά ως default input language
  • Windows Vista με αγγλικά ως default input language

 

Προγράμματα με τα οποία συνεργάζεται

 

Βασικά, συνεργάζεται καλά με τα περισσότερα προγράμματα που δέχονται κείμενο μέσα σε φόρμες, παράθυρα, πεδία, αρχεία κλπ., δηλ. με κειμενογράφους, επεξεργαστές κειμένου, πλοηγούς, instant messengers κλπ. κλπ.

 

Προγράμματα με τα οποία ΔΕΝ συνεργάζεται

 

  • cmd.exe (ωραία θα ήταν να δούλευε κι εκεί!)
  • Pidgin (ίσως θέμα του GTK+... διότι δεν δουλεύει ούτε στο Abiword...)

 

Κατεβάστε το EXE να το δοκιμάσετε κι εσείς!

 

 

Τί κάνει

 

 

1η δουλειά

 

Προσθέτει τρεις εναλλακτικούς και πιο ξεκούραστους τρόπους Alt+Shift: διπλό CapsLock, διπλό Shift ή διπλό αριστερό Alt, όπως όταν κάνουμε διπλό κλικ, δηλ. με δύο απανωτά χτυπήματα του ίδιου πλήκτρου.

 

Στη σειρά:

 

  • Διπλό CapsLock (το CapsLock (πρέπει να) διατηρεί την κανονική λειτουργία του άμα δεν κάνετε γρήγορο διπλό χτύπημα).
  • Διπλό Shift, είτε αριστερό είτε δεξί (διατηρεί και την κανονική λειτουργία του).
  • Διπλό Alt, μόνο το αριστερό (το αυτό).

 

 

2η δουλειά

 

Διορθώνει αυτομάτως ορθογραφικά λάθη στα ελληνικά (για την ώρα περιέχει ένα ΠΟΛΥ μικρό δοκιμαστικό δείγμα ζευγών ~ προσωπικά δεν το χρησιμοποιώ αυτό το κομμάτι, απλά έχω βάλει μερικά ζεύγη για δοκιμές...).

 

 

3η δουλειά

 

Λατινογραφεί λέξεις που θα θέλαμε να γράψουμε με λατινική γραφή, αλλά χωρίς να χρειάζεται να αλλάζουμε διάταξη πληκτρολογίου. (Για την ώρα περιέχει ένα μικρό δοκιμαστικό δείγμα κάποιων κοινών τέτοιων όρων, κυρίως κομπιουτερίστικων.) Εμείς απλά γράφουμε τη λέξη στο ελληνικό πληκτρολόγιο χτυπώντας τα ίδια πλήκτρα που θα χτυπούσαμε, ας πούμε, στο αγγλικό. Και αυτό μετατρέπει. Μερικά παραδείγματα:

 

>
αδσλ      --> aDSL
βθγ       --> bug
Βθγ       --> Bug
βθγσ      --> bugs
Βθγσ      --> Bugs
εσατα     --> eSATA
ιπηονε    --> iPhone
γνθ/λινθχ --> GNU/Linux
λινθχ     --> linux
Λινθχ     --> Linux
ποπ3      --> POP3
νωιδια    --> nvidia
Νωιδια    --> Nvidia
ςινδοςσ   --> windows
ΐνδοςσ    --> Windows
κλπ. κλπ.

 

Η μετατροπή γίνεται με το που θα πατήσουμε έναν χαρακτήρα κλεισίματος (τελεία, θαυμαστικό, ερωτηματικό, διάστημα, συν, εισαγωγικά κλπ. κλπ.). Τουλάχιστον αυτή είναι η πρόθεση. :-)

 

Για αρκτικόλεξα ή όρους με ιδιότυπο capitalization, φτιάχνει τα κεφαλαία όπως πρέπει να είναι. Π.χ., είτε γράψουμε «ιπηονε», είτε «Ιπηονε» είτε «ΙΠΗΟΝΕ», θα το μετατρέψει σε «iPhone».

 

Τα υπόλοιπα τα φτιάχνει αναλόγως. Αν κάνουμε το πρώτο γράμμα κεφαλαίο, βγαίνει και στη λατινογράφηση κεφαλαίο. Αλλιώς βγαίνουν όλα πεζά.

 

Επίσης, το σκριπτ/προγραμματάκι υποθέτει τα εξής:

 

  • Όταν γράφουμε με τόνους, θέλουμε τη λέξη στην ελληνική γραφή. Π.χ., το «ίντερνετ» θα το αφήσει έτσι.
  • Όταν γράφουμε χωρίς τόνους, θέλουμε τη λέξη στη λατινική γραφή. Το «ιντερνετ», λοιπόν, θα το κάνει «internet».

 

 

Άλλες λειτουργίες

 

Με Alt+Ctrl+Winkey+0 η λειτουργία του σκριπτ-προγράμματος αναστέλλεται και επανεκκινεί, αν για κάποιο λόγο θέλουμε να το απενεργοποιήσουμε χωρίς να το κλείσουμε (π.χ., μπορεί να μας μετατρέπει κάτι που εμείς δεν θέλουμε να το μετατρέψει). Η αναστολή γίνεται επίσης μέσω του εικονιδίου στο system tray: κάντε δεξί κλικ και πατήστε Suspend Hotkeys.

 

 

Άλλα θέματα

 

Φανερά κουσούρια εκ πρώτης όψεως

 

  • Είναι λίγο μπερδευτικό στην αρχή να βλέπεις τις λατινογραφούμενες λέξεις με αυτά τα ακαταλαβίστικα ελληνικά την ώρα που πληκτρολογείς. Αλλά συνηθίζεται. Επίσης, μπορείτε να κοιτάτε το ταβάνι! :-)
  • Όχι ακαριαία μετατροπή όταν γράφουμε σε φόρμες κειμένου πλοηγών (π.χ. του Firefox, για να ποστάρουμε σε ένα φόρουμ).

 

 

Κατεβάστε το!

 

Το αρχείο είναι αυτοδύναμο πρόγραμμα. Κάνουμε διπλό κλικ ή Enter και αυτό αρχίζει να δουλεύει στο παρασκήνιο (εμφανίζεται κι ένα εικονίδιο στο system tray). (Δεν εγκαθιστά τίποτα πουθενά και δεν γράφει τίποτα πουθενά!)

 

http://www.potamos.net/d/nomorealtshift-20071025a.exe ~220kB

 

 

Feedback

 

  • Πείτε τη γνώμη σας ελεύθερα!
  • Πείτε λέξεις να προστεθούν, αν θέλετε!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

το προγραμμα ειναι ΓΑΜΑΤΟ!

βοηθαει πολυ....

 

τωρα το μονο που μενει ειναι η εξελιξη του οπως πχ το πιο σημαντικο να βαζουμε εμεις τις λεξεις που χρησιμοποιουμε και πως θελουμε να εμφανιζεται...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Α ψ ο γ ο ς!

 

Να σου προτείνω κάτι; Αν ανοίξεις τον κώδικα, θα μπορεί όποιος θέλει να κάνει αλλαγές και να τις μοιραστεί με τους υπόλοιπους. Η να σου στέλνει λειτουργίες και να τις ενσωματώνεις εφόσον σου αρέσουν (αν έχεις χρόνο βέβαια για κάτι τέτοιο).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Members

Μιας και το δοκίμασα σε Vista, ας σημειώσω πως δουλεύει μια χαρά. Είναι πολύ βολικό, διακριτικό και χωρίς κανενός είδους προβλήματα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Έψαχνα πολύ καιρό ένα τέτοιο πρόγραμμα κυρίως για τις διευθύνσεις internet που γράφω στους browsers :D

Αυτό που είπε όμως ο alerasta είναι πολύ σημαντικό!

Να μπορεί ο καθένας να προσθέτει τις λέξεις που τον ενδιαφέρουν. Ακόμα και σε ένα txt που θα το κάνει parse το πρόγραμμα!

Ευχαριστώ πολύ :D

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ευχαριστώ για τις απαντήσεις! :-) Το καλό είναι ότι η μαϊμουδιά με τα διπλά CapsLock κλπ. φαίνεται ότι δεν προκαλεί παρενέργειες στα συστήματα που δοκιμάστηκε. :-)

 

Για όποιον θέλει να δει πώς γίνεται το Alt+Shift με διπλό χτύπημα, παραθέτω το πρώτο κομμάτι του σκριπτ: αν το τελευταίο χτύπημα ήταν σε διαφορετικό πλήκτρο ή αν έχουν παρέλθει περισσότερα από 400 χιλιοστά του δευτερολέπτου, το σκριπτ αφήνει το πλήκτρο να κάνει τη δουλειά του και το thread τερματίζει. Αλλιώς το μπλοκάρει και στέλνει Alt+Shift. :-)

 

>
; ------------------------------------------------------------------------------
; INCLUDES 
; ------------------------------------------------------------------------------


; ------------------------------------------------------------------------------
; SUSPEND SCRIPT WITH Alt+Ctrl+Winkey+0 (Zero)
; ------------------------------------------------------------------------------

!^#0::Suspend


; ------------------------------------------------------------------------------
; ALT+SHIFT ALTERNATIVES
; ------------------------------------------------------------------------------

; DOUBLE CAPSLOCK
~CapsLock::
If (A_PriorHotkey <> "~CapsLock" Or A_TimeSincePriorHotkey > 400)
 {
   KeyWait, CapsLock
   Return
 }
 Send, {LAlt Down}{Shift}{LAlt Up}
 Return
 
; DOUBLE SHIFT (LEFT OR RIGHT)
~Shift::     
If (A_PriorHotkey <> "~Shift" Or A_TimeSincePriorHotkey > 400)
 {
   KeyWait, Shift
   Return
 }
 Send, {LAlt Down}{Shift}{LAlt Up}
 Return

; DOUBLE LEFT ALT (ONLY LEFT!)
~LAlt::
If (A_PriorHotkey <> "~LAlt" Or A_TimeSincePriorHotkey > 400)
 {
   KeyWait, LAlt
   Return
 }
 Send, {LAlt Down}{Shift}{LAlt Up}
 Return

 
; ------------------------------------------------------------------------------
; HOTSTRING END CHARACTERS (DEFAULT IS UP TO `t)
; ------------------------------------------------------------------------------

#Hotstring EndChars -()[]{}:;'"/\,.?!`n `t+«»=_


; ------------------------------------------------------------------------------
; TYPING ιιι AFTER A HOTSTRING PREVENTS AUTOCORRECTION/AUTOCONVERTION
; ------------------------------------------------------------------------------

 :  c0?*:ιιι::{Space}{BackSpace}   ;

 

Στην πραγματικότητα, όλο το «πρόγραμμα» αυτό είναι, μαζί με το κατεβατό των ζευγών αντικατάστασης, που ξεκινάει αμέσως μετά.

 

Δηλαδή είναι κάτι που το φτιάχνει ο καθένας με το AutoHotkey, χωρίς να απαιτούνται γνώσεις προγραμματισμού.

 

~~~~~~~~~~~~

 

Μια παρένθεση, @ wizard

 

Για τα URL, ίσως σε εξυπηρετήσει το εξής κόλπο: λες του AHK, με το που σε βλέπει να γράφεις ςςς. ή ηττπ:, να τα αντικαταστήσει με τα αντίστοιχα λατινικά και να κάνει επιτόπου και Alt+Shift. Το κάνει ακαριαία: άμα δεν κοιτάζεις την οθόνη, ούτε που το παίρνεις είδηση ότι είχες αρχίσει να γράφεις με το πληκτρολόγιο στα ελληνικά. Καλό κόλπο για την ψυχική ηρεμία. :-)

 

Δείχνω εδώ πώς:

 

http://www.insomnia.gr/vb3/showthread.php?t=176244

 

~~~~~~~~~~~~

 

Πίσω στο θέμα μας. Έχετε δίκιο σʼ αυτό που λέτε, για την παραμετροποίηση... Έτσι δεν μπορεί να είναι χρήσιμο σε όλους -- εκτός αν περιέχει τριακόσιες χιλιάδες αντικαταστάσεις, τα πάντα για τους πάντες :-P

 

Το πρόβλημα ποιο είναι...

 

Τα compiled σκριπτάκια του ΑHK (όπως το «πρόγραμμα» που ανέβασα), σε αντίθεση με τα μη compiled, δεν μπορούν να κάνουν include at runtime εξωτερικά αρχεία με hotstrings (όλες οι αντικαταστάσεις αυτές που βλέπετε γίνονται με τα λεγόμενα «hotstrings» του AHK). Αυτό θα ήταν πολύ ωραίο αν γινόταν -- δηλ. να υπάρχει ένας κορμός πέντε, δέκα, δεκαπέντε χιλιάδων αντικαταστάσεων, και μετά να προσθέτεις με κάποιον τρόπο ό,τι άλλο σου χρειάζεται... Αλλά, από το λίγο που έχω κοιτάξει, νομίζω ότι δεν γίνεται...

 

Μία γνωστή εναλλακτική λύση που έχω δει είναι του φίλου μας εδώ:

 

http://www.biancolo.com/content_show.cfm/content_id.25569/universal_autocorrect_with_autohotkey_and_wikipedi

 

... δηλ. ένα σκέτο, ανοιχτό σκριπτ με το κατεβατό των αντικαταστάσεων, που για να τρέξει πρέπει να υπάρχει ήδη AHK στο μηχάνημα. (Η υλοποίηση αυτή έχει και ένα στοιχειώδες GUI για να προσθέτεις στα γρήγορα ζεύγη χωρίς να ανοίγεις το σκριπτ σε text editor, αλλά, από το λίγο που την έχω τεστάρει, έχει κάποια προβληματάκια με τα ελληνικά: το AHK δεν υποστηρίζει Unicode ακόμα και είναι λίγο hit and miss αν θες να κάνεις τέτοια κόλπα με το πρόχειρο σε αλφάβητα εκτός ASCII...)

 

Ένα άλλο πρόβλημα αυτής της λύσης είναι βέβαια ότι το πράγμα χάνει την απλότητά του για τον πολύ κόσμο, αφού πρέπει να κατεβάσεις και να εγκαταστήσεις χωριστά το AHK... Υπάρχει βέβεαι και η λύση να φτιαχτεί εγκαταστάτης που εγκαθιστά το AHK μαζί με το σκριπτάκι...

 

Μια άλλη ιδέα που δεν την έχω δει στην πράξη αλλά πιθανώς να δουλεύει είναι η εξής:

 

Μέσα στο compiled σκριπτ πακετάρεις και μια έξτρα, ατόφια σκριπτομηχανή AHK (γύρω στα 200 KB είναι) και την βάζεις να ξεπακετάρεται κατά την εκτέλεση και να φορτώνει το αρχείο απλού κειμένου μέσα στο οποίο ο καθένας βάζει τις δικές του έξτρα αντικαταστάσεις. Αυτό σημαίνει βέβαια ότι θα τρέχουν δύο διεργασίες ΑHK. Πιθανόν να υπάρχουν και άλλα θέματα...

 

Ένα ακόμα πρόβλημα, πέρα από τους τεχνικούς περιορισμούς του AHK, είναι ποιος θα το φτιάξει; :-) Εγώ δεν είμαι προγραμματιστής και, ακόμα κι αν καταφέρω να φτιάξω κάτι, δεν είναι σίγουρος ότι θα θέλετε να το χρησιμοποιήσετε. :-P

 

Anyway, αν έχει κανείς καμιά ιδέα, ας τη ρίξει! :-) Θα ρωτήσω και στο φόρουμ του AHK, να δω...

 

Ευχαριστώ πάλι για τα σχόλια!

 

ΥΓ.

 

Την ιδέα του εναλλακτικού Alt+Shift την έχω κλέψει από τον PaPpaS_gr: http://www.insomnia.gr/vb3/showthread.php?t=159507

 

Η ιδέα για Alt+Shift με διπλό χτύπημα μου ήρθε μια φορά που παρανόησα κάτι που ζητούσε ο poscaman: http://www.insomnia.gr/vb3/showthread.php?t=200685

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μία γνωστή εναλλακτική λύση που έχω δει είναι του φίλου μας εδώ:

 

http://www.biancolo.com/content_show.cfm/content_id.25569/universal_autocorrect_with_autohotkey_and_wikipedi

 

[...]

 

Ένα άλλο πρόβλημα αυτής της λύσης είναι βέβαια ότι το πράγμα χάνει την απλότητά του για τον πολύ κόσμο, αφού πρέπει να κατεβάσεις και να εγκαταστήσεις χωριστά το AHK...

 

Για όποιον θέλει να δοκιμάσει μια παραμετροποιήσιμη εκδοχή στην κατεύθυνση αυτή:

 

insomnianmas20071028ahf1.png

 

 

  • Εγκαθιστούμε το AutoHotkey: http://www.autohotkey.com/download/AutoHotkeyInstall.exe'>http://www.autohotkey.com/download/AutoHotkeyInstall.exe
    Η εγκατάσταση του AHK είναι πολύ καθαρή. Δεν πειράζει καθόλου το σύστημά μας, δεν τρέχει μόνο του, δεν ξεκινάει μόνο του... Τρέχει μόνο όταν εκτελέσουμε κάποιο σκριπτάκι (και τρώει γύρω στα 4 MB μνήμη).
  • Αποθηκεύουμε τον κώδικα στο τέρμα ως: nmas.ahk
  • Το εκτελούμε
  • Πατάμε Alt+Ctrl+Winkey+BackSpace για να προσθέσουμε το πρώτο ζευγάρι

 

Τα ζευγάρια που ορίζουμε καταχωρούνται σε ένα χωριστό αρχείο (nmas2.ahk) και όχι μέσα στο κύριο σκριπτ. Η λύση αυτή έχει δύο πλεονεκτήματα:

 

  • Έχουμε το κατεβατό των ζευγαριών κάπου καθαρά, και όχι μέσα στο κύριο σκριπτ.
  • Είναι εύκολο να ανταλλάσσουμε τέτοια αρχεία με ζευγάρια και να τα προσθέτουμε στο σκριπτ (γίνεται μέσω της οδηγίας #Include -- μπορούμε να κάνουμε include όσα εξωτερικά αρχεία θέλουμε, το δε περιεχόμενο των εξωτερικών αρχείων που γίνονται include λογίζεται ως περιεχόμενο του κύριου σκριπτ, δηλ. είναι σαν να είχαμε επικολλήσει το περιεχόμενό τους μέσα στο κύριο σκριπτ).

 

Ένα άλλο ενδιαφέρο χαρακτηριστικό των πολλαπλών εξωτερικών αρχείων είναι η προτεραιότητα σε περίπτωση συγκρούσεων. Έστω ότι έχουμε συμπεριλάβει στο σκριπτ τα αρχεία με τα ζευγάρια που μας έδωσαν ο aledjo και ο Eusebius:

 

>
#Include    %A_ScriptDir%
#Include *i %A_ScriptDir%\nmas2.ahk
#Include    %A_ScriptDir%\aledjo.ahk
#Include    %A_ScriptDir%\eusebius.ahk

 

Αν στο aledjo.ahk υπάρχει αυτό:

 

>
::123::άλφα

 

... και στο eusebius.ahk αυτό:

 

>
::123::βήτα

 

... όταν γράφουμε «123» θα μετατρέπεται σε «άλφα», επειδή έχουμε βάλει το aledjo.ahk πιο πάνω από το eusebius.ahk.

 

Περισσότερες λεπτομέρεις για τα κόλπα του AutoHotkey:

 

http://www.autohotkey.com/

 

Το σκριπτάκι: (Αποθηκεύστε το ως nmas.ahk και εκτελέστε το.)

 

nmas.ahk

 

>
; ------------------------------------------------------------------------------
; INCLUDES 
; ------------------------------------------------------------------------------

#Include    %A_ScriptDir%
#Include *i %A_ScriptDir%\nmas2.ahk


; ------------------------------------------------------------------------------
; VARIABLES
; ------------------------------------------------------------------------------

D_BAK = %A_ScriptDir%\Backup ; Η μεταβλητή για τη θέση των αντιγράφων ασφαλείας
                            ; Αν θέλουμε την αλλάζουμε βέβαια. Για παράδειγμα:
                            ; %A_MyDocuments%\NoMoreAltShift ή
                            ; %A_AppData%\Backup ή
                            ; C:\Backups


; ------------------------------------------------------------------------------
; AUTOEXECUTE SECTION
; ------------------------------------------------------------------------------

SetTimer, AutoBackup, 900000 ; Χρονολογημένα αυτοαντίγραφα ημέρας
                            ; Ελέγχει ανά τέταρτο της ώρα για αντίγραφα ημέρας
                            
IfNotExist, %D_BAK%          ; Φτιάχνει έναν φάκελο για αντίγραφα ασφαλείας
 FileCreateDir, %D_BAK%

IfNotExist, nmas2.ahk
 MsgBox,
 , Γεια χαρά!
 ,
 ( LTrim
   Φαίνεται ότι είναι η πρώτη φορά που τρέχει το nmas.ahk!
   Θα φτιαχτεί ένα αρχείο (nmas2.ahk) στο οποίο θα καταγράφονται
   τα ζεύγη που ορίζετε και επίσης ένας φάκελος στον οποίο θα
   διατηρούνται αντίγραφα των αρχείων nmas.ahk και nmas2.ahk.
   
   Για να ορίσετε ζευγάρια, πατήστε Ctrl+Alt+Winkey+BackSpace.
 )

IfNotExist, nmas2.ahk        ; Φτιάχνει ένα άδειο αρχείο nmas2.ahk
 FileAppend, , nmas2.ahk    ; την 1η φορά που τρέχει το σκριπτ


; ------------------------------------------------------------------------------
; ΕΠΑΝΑΦΟΡΤΩΣΗ ΤΟΥ ΣΚΡΙΠΤ ΜΕ ALT+CTRL+WINKEY+9 (!^#9)
; ------------------------------------------------------------------------------
; Για όταν κάνουμε αλλαγές απευθείας μέσα από επεξεργαστή κειμένου:
; 1. Κάνουμε πρώτα Ctrl+S, για να αποθηκευτούν οι αλλαγές στον δίσκο
; 2. Πατάμε τη συντόμευση για να επαναφορτωθεί το σκριπτ 
; Εναλλάξ:
; 1. Αποθήκευση αλλαγών
; 2. Δεξί κλικ στο εικονίδιο στο system tray: Reload This Script
; ------------------------------------------------------------------------------

!^#9::
 SplashTextOn, , , Updating Script...,
 Sleep, 500
 SplashTextOff
 Reload
 Return


; ------------------------------------------------------------------------------
; ΑΝΑΣΤΟΛΗ ΤΟΥ ΣΚΡΙΠΤ ΜΕ ALT+CTRL+WINKEY+0 <-- ΜΗΔΕΝ! (!^#0)
; ------------------------------------------------------------------------------

!^#0::Suspend


; ------------------------------------------------------------------------------
; ΕΝΑΛΛΑΚΤΙΚΟΙ, ΞΕΚΟΥΡΑΣΤΟΙ, ΓΡΗΓΟΡΟΙ ΤΡΟΠΟΙ ALT+SHIFT
; ------------------------------------------------------------------------------
; 1. Διπλό CapsLock
; 2. Διπλό Shift
; 3. Διπλό αριστερό Alt
; ------------------------------------------------------------------------------

~CapsLock::
If (A_PriorHotkey <> "~CapsLock" Or A_TimeSincePriorHotkey > 400)
 {
 ; Too much time between depressions, not a double-depression.
   KeyWait, CapsLock
   Return
 }
 Send, {LAlt Down}{Shift}{LAlt Up}
 Return
 
~Shift::     
If (A_PriorHotkey <> "~Shift" Or A_TimeSincePriorHotkey > 400)
 {
   KeyWait, Shift
   Return
 }
 Send, {LAlt Down}{Shift}{LAlt Up}
 Return
 
~LAlt::
If (A_PriorHotkey <> "~LAlt" Or A_TimeSincePriorHotkey > 400)
 {
   KeyWait, LAlt
   Return
 }
 Send, {LAlt Down}{Shift}{LAlt Up}
 Return


; ------------------------------------------------------------------------------
; HOTSTRING END CHARACTERS (EVERYTHING UP TO `t IS THERE BY DEFAULT)
; ------------------------------------------------------------------------------
; Οι χαρακτήρες που δίνουν σήμα στο AutoHotkey ότι πληκτρολογήσαμε το hostring
; και ότι είναι ώρα να κάνει την αντικατάσταση. Μέχρι το `t είναι η προεπιλογή,
; δηλ. αυτό που ισχύει αν αφαιρέσουμε την οδηγία #Hostring).
; Μετά από εκεί έχουν προστεθεί μερικά ακόμα.
; Το κενό διάστημα, δηλ. ο πιο κοινός χαρακτήρας τερματισμού,
; βρίσεται ανάμεσα στο `n (αλλαγή γραμμής) και στο `t (Tab).
; ------------------------------------------------------------------------------

#Hotstring EndChars -()[]{}:;'"/\,.?!`n `t+«»=_


; ------------------------------------------------------------------------------
; TYPING ιιι RIGHT AFTER A HOTSTRING PREVENTS AUTOCONVERTION
; ------------------------------------------------------------------------------

:?*:ιιι::{Space}{BackSpace}


; ------------------------------------------------------------------------------
; ALT+CTRL+WINKEY+BACKSPACE
; ------------------------------------------------------------------------------
; Για να προσθέτουμε στα γρήγορα ζεύγη αντικαταστάσεως στο nmas2.ahk
; ------------------------------------------------------------------------------

!^#BackSpace::

; ------------------------------------------------------------------------------
; Το SetTimer μετακινεί τον δρομέα εκεί που θα γράψουμε τον πρώτο όρο
; To InputBox διαχειρίζεται το παράθυρο που θα πεταχτεί για να γράψουμε
; ------------------------------------------------------------------------------

SetTimer, MoveCursor, 10

InputBox
 , AddHotstring
 , No More Alt+Shift: Νέο ζευγάρι
 ,
 ( LTrim
   Παραδείγματα:
   
   ::btw::by the way 
   ::μύνημα::μήνυμα 
   ::ηελλο::hello
 )
 ,
 , 256
 ,
 , , , , , ::::

If ErrorLevel <> 0 ; Δηλ. αν πατήσαμε Cancel ή Escape, Θα γίνει ακύρωση
 Return           ; Διαφορετικά το νέο hotstring θα επικολληθεί στο αρχείο
                  ; Έπειτα το τροποποιημένο σκριπτ θα επαναφορτωθεί αυτόματα

FileAppend, `n%AddHotstring%, %A_ScriptDir%\nmas2.ahk
Reload
Sleep 200

MsgBox, 4, ,       ; Αν γράψαμε κάτι στραβά και δεν επαναφορτώθηκε το σκριπτ,
                  ; ανοίγουμε μια στιγμή το αρχείο και διορθώνουμε τη σύνταξη
 ( LTrim
   H σύνταξη του νέου hotstring κάτι έχει!
   Θέλετε να ανοίξετε το αρχείο να τη διορθώσετε;
   Θα βρείτε το νέο hostring στο τέρμα του αρχείου.
 )

IfMsgBox, Yes 
 Run, Notepad %A_ScriptDir%\nmas2.ahk 
 Return


; ------------------------------------------------------------------------------
; LABELS
; ------------------------------------------------------------------------------

AutoBackup:
FormatTime, B_Today, , yyyyMMdd
IfNotExist, %D_BAK%\nmas-%B_Today%.ahk
 FileCopy, %A_ScriptName%, %D_BAK%\nmas-%B_Today%.ahk
IfNotExist, %D_BAK%\nmas2-%B_Today%.ahk
 FileCopy, nmas2.ahk, %D_BAK%\nmas2-%B_Today%.ahk
Return

MoveCursor:
IfWinNotActive, No More Alt+Shift: Νέο ζευγάρι
 Return
Send {HOME}
Loop % StrLen(Hotstring) + 2
 SendInput {Right}
SetTimer, MoveCursor, Off
Return


; ------------------------------------------------------------------------------
; THE END
; ------------------------------------------------------------------------------

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...