Traduzione dall'help del TouchBuddy Toolkit, sezione "Buttons & Macros"
DescrizioneI Bottoni e le Macro sono gli elementi principali di un profilo. Un Bottone è una piccola immagine grafica, cui generalmente è associata una Macro che invia una o più combinazioni di caratteri al vostro gioco o programma. Un Bottone può anche essere impostato per selezionare un nuovo Tab del vostro profilo quando viene cliccato/toccato.
BottoniCi sono diversi tipi di bottone, ognuno usato per uno scopo diverso. I tipi più comuni di bottone sono
button e
toggle. I bottoni di tipo
button sono composti da una sola immagine che invia uno o più tasti. I bottoni di tipo
toggle sono composti da una serie di almeno due immagini che cambiano ogni volta che il tasto è cliccato, ed in più inviano uno o più tasti, come i bottoni di tipo
button.
I bottoni sono immagini, ed i formati grafici supportati da TouchBuddy sono i soliti jpg, gif, bmp, png, tga e tif
mentre invece TouchBuddy Toolkit supporta solo i primi tre, perchè non è in grado di gestire i formati trasparenti. Questo però non vuol dire che non si possono usare questi formati più "evoluti" nella creazione dei profili. Semplicemente, TouchBuddy Toolkit durante l'editing del profilo visualizzerà un'immagine segnaposto per questi formati (png, tga e tif), che verranno poi regolarmente visualizzati da TouchBuddy.
MacroLe macro inviano le sequenze di tasti al vostro gioco o applicazione. I bottoni sono disegnati o per inviare una serie di macro quando sono cliccati, oppure per inviarne una prima serie quando sono cliccati la prima volta, ed un'altra quando vengono cliccati la seconda (o quando sono resettati).
Il primo tipo di sintassi di macro è: macro=.
Il secondo tipo di sintassi di macro è: macro_select= e macro_deselect=.
Stili delle Macro: Sendkeys, Rawkeys, PredefinedGeneralmente è meglio abituarsi da subito ad usare lo stile Predefined.
Ci sono 3 metodi per inviare sequenze di tasti tramite macro: Sendkeys, Rawkeys e Predefined. Per default viene usato il metodo Sendkeys. Per usare le sintassi Rawkeys o Predefined, basta aggiungere i prefissi rawkey: o predef: ai nostri comandi.
Quando iniziammo a lavorare su TouchBuddy, il primo stile che venne implementato fu Sendkeys. Poi, a mano che la ricerca continuava, divenne ovvio che Sendkeys lavorava bene per la maggior parte del tempo, ma in alcuni casi particolari aveva problemi. Quindi scoprimmo che col metodo Rawkeys le cose andavano molto meglio perchè i tasti venivano inviati al Sistema Operativo in un modo più diretto. Sendkeys aveva alcuni rari problemi quando si usavano i tasti speciali presenti su alcune tastiere internazionali. Rawkeys non ha questi problemi, quindi rappresenta uno stile migliore da usare.
Rawkeys funziona bene, e per facilitarne ulteriormente l'uso, TouchBuddy ha creato un nuovo stile chiamato Predefined. Usando Rawkeys, si deve sempre specificare la pressione di un tasto ed il suo successivo rilascio. Inoltre, alcuni tasti speciali richiedono l'uso del comando Extended. Dato che la maggior parte di sequenze di tasti includono sempre e comunque sia la pressione che il rilascio, lo stile Predefined automatizza questa funzionalità (ed il comando Extended) in modo automatico, a meno che non si specifichi espressamente che si vuole solo la pressione o solo il rilascio del tasto.
Sebbene le macro in stile Rawkey saranno ancora supportate per lungo tempo, sono abbastanza complesse da programmare, quindi, dove è possibile, usate al loro posto le nuove macro predef. Gestiscono automaticamente gli eventi keyup, keydown e extended key per voi.
Esempio
Vogliamo premere CTRL+F1. Mentre il tasto CTRL è premuto, vogliamo premere F1, poi rilasciarlo, e poi rilasciare il tasto CTRL. La sequenza ci darà CTRL+F1.
Stile Sendkeys:
macro = ^(F1)
Stile Rawkeys:
macro = rawkey:RCONTROL, EXTENDEDKEY
macro = rawkey:F1
macro = rawkey:RCONTROL, EXTENDEDKEY | KEYUP
Stile Predefined:
macro = predef:CONTROL, KEYDOWN
macro = predef:F1
macro = predef:CONTROL, KEYUP
ATTENZIONE
Se si programma una macro per inviare l'evento KEYDOWN, e mai il relativo KEYUP, quel tasto resterà premuto! Per esempio se tieni premuto il tasto B per tenere i freni schiacciati nel tuo simulatore di volo o di macchina ed esci dal gioco, quel tasto resterà premuto, inviando continuamente una serie di "BBBBBBBBB". Questo causerà una reazione anomala di Windows, e probabilmente voi non saprete cosa sta succedendo. Premere ancora una "B" dovrebbe risolvere il problema, o al massimo risolverete con un reboot.
Sappiate che questo comportamento non è un errore di TouchBuddy, e può capitare.
Abbiamo visto che esistono tipi diversi di bottone per scopi diversi, e che ad ogni bottone si possono associare immagini e macro, ma non è obbligatorio usare immagini e macro. Se un bottone non ha immagini associate, TouchBuddy visualizzerà sullo schermo il suo nome, così come se un bottone non ha macro associate, quando l'utente tocca o clicca il bottone, non viene inviato nessun tasto. Quindi fate come volete, sperimentate, se volete iniziare un profilo con un bottone blank di default, fatelo.
Tipi di bottoneButton - Il tipo più semplice di bottone. Una sola immagine che invia uno o più tasti ogni volta che viene cliccata. Buono per bottoni che non devono cambiare aspetto e per comandi che non hanno più stati o che devono essere tenuti premuti.
Toggle - Il secondo tipo di bottone più frequentemente usato. Usa più di una immagine, ed invia uno o più tasti cambiando immagine ogni volta che viene cliccato. Ottimo per un comando tipo "Pausa gioco" che cambia tra 2 immagini ed invia il comando "P" ogni volta che viene cliccato.
Hold - Questo tipo di bottone serve quando si deve tenere premuto un tasto, ma si vuole cliccare una volta sul bottone per iniziare a premerlo, e cliccare un'altra volta per rilasciarlo. Con questo bottone tocchi una volta per "accenderlo" ed una seconda volta per "spegnerlo". Per esempio, in Lockon Modern Air Combat, si deve tenere premuto il tasto "w" per tutto il tempo in cui si vogliono schiacciare i freni. Se si rilascia il tasto, i freni vengono mollati. Quindi, usando un bottone di tipo Hold, puoi avere una macro che preme un tasto e cambia immagine quando lo clicchi la prima volta, e che rilascia il tasto premuto, ricambiando immagine, quando lo riclicchi. Questo bottone agisce come se venisse prima selezionato e poi deselezionato.
Touch - Questo tipo di bottone è quasi identico al tipo Hold, nel fatto che invia un set di macro quando è cliccato (selezionato), ed un altro set quando viene rilasciato (deselezionato). La differenza è che il bottone di tipo touch rimane selezionato solo finchè viene tenuto cliccato/premuto. Non appena si leva il dito (o il mouse) dal bottone, questo ritorna nello stato deselezionato ed invia la macro di deselezione. Questo tipo di bottone ha un'opzione di ripetizione (repeat). Se viene selezionata questa opzione, la macro di selezione viene continuamente inviata ogni 0,2 secondi fino a che il bottone è selezionato, e la macro di deselezione viene disabilitata e non inviata. Come nell'esempio precedente del tipo di bottone Hold, potresti voler tenere i freni schiacciati solo finchè premi il bottone: potresti quindi usare un bottone di tipo Touch con l'opzione di repeat.
Static - Questo tipo non è veramente un bottone ma una semplice immagine. Non usa immagini multiple, nè invia macro. E' solo 1 immagine sullo schermo. Se hai installata la DLL "ImageMagick Windows dll", puoi anche usare una gif animata.
Clone - Questo semplice tipo di bottone è una copia/clone di un qualsiasi altro bottone. Quando viene cliccato si comporta come il bottone sorgente e resta in sync con esso. Questo tipo è comodo se si vuole avere lo stesso bottone su più Tab, ma vuoi che siano uguali nell'aspetto e che inviino gli stessi tasti. In altre parole, vuoi lo stesso bottone in punti diversi del profilo.
L'idea generaleL'intera idea di TouchBuddy è che un profilio è formato da immagini carine che inviano comandi quando le tocchi. Un bottone può avere diverse immagini associate e ciclare attraverso di esse ogni volta che viene toccato. Oppure un bottone può avere un'immagine/macro che viene visualizzata/inviata quando il bottone viene prima selezionato, ed un'altra immagine/macro che viene visualizzata/inviata quando il bottone viene deselezionato.
Per modificare il tipo di bottone, apri il profilo in TouchBuddy Toolkit e fai un doppio-click sul bottone. Questo aprirà la finestra del "Button Editor".
TouchBuddy : Bottoni e Macro MacroLe macro definiscono i tasti inviati alla nostra applicazione/gioco. Possono sembrare forse complesse semplicemente perchè esistono 3 diversi modi per inviare le sequenze di tasti, e ci si possono fare grandi cose, ma possiamo anche scriverle in maniera molto semplice.
2 tipi di sintassiAlcuni bottoni inviano semplicemente un set di macro ogni volta che vengono cliccati. Questi bottoni usano la sintassi "macro=". Altri bottoni inviano due set di macro, uno quando vengono cliccati la prima volta ed un altro quando vengono cliccati di nuovo. Questi bottoni usano la sintassi "macro_select=" e "macro_deselect=".
3 tipi di comandi
Ci sono 3 tipi di comandi disponibili in TouchBuddy: PredefinedKeys, SendKeys, e RawKeys. Li puoi mischiare e usare insieme se vuoi, ma in generale prova ad usare solo PredefinedKeys.
Se un comando non ha prefissi si dà per scontato che sia un comando SendKeys. Altrimenti per gli altri tipi di cmandi si devono usare i prefissi predef: o rawkey:
Esempio di comandi mischiati - inviare SHIFT+F1 e tenerlo premuto per 500 millisecondi (1/2 secondo):
macro = predef:SHIFT, KEYDOWN
macro = predef:F1, KEYDOWN
macro = {PAUSE 500}
macro = predef:F1, KEYUP
macro = predef:SHIFT, KEYUP
Macro semplici Per non incorrere in difficoltà, usa sempre e solo il metodo PredefinedKeys per le tue macro. Dovrebbe bastare a soddisfare tutti i bisogni di qualsiasi utente. Puoi anche usare i comandi SendKeys se vuoi., per esempio potresti aver bisogno di inserire una pausa ogni tanto, ed in questo caso puoi usare il comando PAUSE X.
Istruzioni macroA seconda del tipo di bottone, userai:
per bottoni di tipo Button e Toggle
macro=......
per bottoni di tipo Hold e Touch
macro_select=......
macro_deselect=......
Tipi di CommandKey
Sendkeys ? Rawkeys ?? PredefinedKeys ??? Ma che roba è ??
Ancora una volta, usa solo PredefinedKey. Gli atri tipi usali solo in casi estremi.
Questa è la sintassi delle macro PredefinedKeys:
macro = predef:, [KEYDOWN o KEYUP]
o
macro_select = predef:, [KEYDOWN o KEYUP]
macro_deselect = predef:, [KEYDOWN o KEYUP]
[KEYDOWN o KEYUP] sono opzionali.
Opzioni Keydown e Keyup
L'evento Keydown istruisce il pc a tenere premuto un certo tasto, che rimarrà in questo stato finchè non verrà inviato l'evento Keyup per quello stesso tasto. Questo ci permette di premere, e mantenere premuti, diversi tasti allo stesso tempo. Se nè Keydown e nè Keyup sopno specificati, Il formato PredefinedKeys li creerà per noi. Ma il formato RawKeys non farà altrettanto, e per lasciarti più controllo sulle tue macro si aspetta che sia tu a definire questi eventi.
Quindi non preoccuparti a definire Keydown o Keyup finchè non vorrai tenere premuto uno o più tasti.
Se per esempio la nostra sim preferita richiede che il tasto "w" sia mantenuto premuto per tenere premuti i freni, possiamo creare un bottone di tipo Toggle con la seuente macro:
macro_select = predef:W, KEYDOWN
macro_deselect = predef:W, KEYUP
Appena clicchi/tocchi il bottone, il tasto w viene premuto SOLAMENTE e non rilasciato perchè è stata specificata l'opzione Keydown, quindi il tasto continua a restare giù. Appena clicchi/tocchi di nuovo il bottone il tasto w verrà rilasciato perchè è stata usata opzione Keyup.
Sintassi macro - macro=, macro_select=, macro_deselect=
La maggior parte dei bottoni usa la semplice istruzione macro=XYZ, dove XYZ è il tuo comando, sia di tipo PredefinedKeys che SendKeys o RawKeys. Inviare una macro non potrebbe essere più semplice.
Alcuni bottoni hanno 2 stati: On/Off, che per TouchBuddy corrispondono a Selezionato/Deselezionato. Questi bottoni riconoscono quando devono accendersi o spegnersi. Per questi bottoni si usa la coppia di istruzioni macro_select=XX e macro_deselect=XX insieme. MA NON E' OBBLIGATORIO. Puoi usare solo la prima, o anche solo la seconda se vuoi...
Facciamo 3 esempi:
Qui attiviamo la radio di IL-2
macro = predef:TAB
Questo è un esempio di una semplice istruzione "macro =" che mantiene premuto il tasto SHIFT mentre preme il tasto F1: macro = predef:SHIFT, KEYDOWN
macro = predef:F1
macro = predef:SHIFT, KEYUP
Questo è un altro esempio di una coppia di istruzioni macro_select= / macro_deselect= che mantegono premuto il tasto SHIFT mentre viene premuto F2. Poi, quando il bottone è toccato una seconda volta, viene premuta la sequenza CTRL+F1. macro_select = predef:SHIFT, KEYDOWN
macro_select = predef:F2
macro_select = predef:SHIFT, KEYUP
macro_deselect = predef:CONTROL, KEYDOWN
macro_deselect = predef:F1
macro_deselect = predef:CONTROL, KEYUP
Segue le lista dei comandi Predefined più comunemente usati.
Ancora una volta, la sintassi della macro dipende dal tipo di bottone usato:
per bottoni di tipo Button e Toggle
macro=predef:BACK
per bottoni di tipo Hold e Touch
macro_select=predef:BACK
macro_deselect=predef:BACK
Nota: Per non riprodurre la lista ed allungare inutilmente il post, aprite il file di help e selezionate la pagina indicata nell'immagine seguente:
TouchBuddy : Bottoni e MacroSe ancora non avete installato il TouchBuddy Toolkit,
potete scaricare il file di help (chm) da questo link.
Ed ora vediamo il metodo di default, SendKeys.
Contrariamente agli altri due metodi, SendKeys non ha bisogno di nessun prefisso.
Sintassi metodo SendKeys
TASTO [RITARDO]
Tasto
I tasti da inviare all'applicazione.
Ritardo
SendKeys invia tasti alla finestra attiva come se fossero stati premuti sulla tastiera, ed usa il ritardo (opzionale) specificato tra un tasto e un altro. Per default questo ritardo è 50 ms e dovrebbe bastare per tutte le situazioni.
Modificatori di stato
Ci sono diversi caratteri che hanno un significato speciale. Ciò ci permette di inviare caratteri speciali come CTRL, ALT e SHIFT.
~ rappresenta l'INVIO
+ rappresenta SHIFT
^ rappresenta CTRL
% rappresenta ALT
Il carattere tilde (~), sulle nostre tastiere che ne sono sprovviste, si ottiene digitando il codice 00126 sul tastierino numerico, tenendo premuto il tasto ALT.
Alcuni esempi:
Inviare Ctrl-X:
macro = ^X
Inviare Alt-F1:
macro = %{F1}
Inviare Shift-Tab:
macro = +{TAB}
Inviare INVIO (o ENTER):
macro = ~
oppure
macro = {ENTER}
Le parentesi tonde ( ) permettono il raggruppamento di caratteri. Si possono raggruppare diversi tasti in modo che i caratteri modificatori abbiano effetto su tutti loro insieme.
Esempio:
Per inviare le lettere maiuscole "ABC":
macro = ABC
che è equivalente a premere le lettere minuscole "abc" tenendo lo SHIFT premuto, quindi:
macro = +(abc)
Le parentesi graffe { } si usano per includere alcuni caratteri speciali tra apici.
({+} {{}) invia un '+' ed un '{'.
Si possono anche usare per specificare alcune azioni.
Lista azioni NOME
{BACKSPACE} {BS} {BKSP} {BREAK} {CAPS} {DELETE} {DOWN} {END} {ENTER} {ESCAPE} {HELP} {HOME} {INSERT} {LEFT} {NUMLOCK} {PGDN} {PGUP} {PRTSCR} {RIGHT} {SCROLL} {TAB} {UP} {PAUSE} {F1} ... {F24} {SPC} {SPACE} {SPACEBAR} {LWI} {RWI} {APP}
| AZIONE
Backspace Backspace Backspace Break Caps Lock Delete Freccia giù End Enter (uguale a ~) Escape Tasto Help Home Insert Freccia sinistra Bloc Num (Num Lock) Page down Page up Print screen Freccia destra Bloc Scorr (Scroll Lock) Tab Freccia su Pausa Tasto funzione F1 ... Tasto funzione F24 Spazio Spazio Spazio Tasto Windows sinistro Tasto Windows destro Tasto menù contestuale
|
Tutte queste azioni accettano come argomento un intero, come per esempio in {RIGHT 5}.
Per tutte queste azioni, tranne che per {PAUSE}, quest'argomento rappresenta il numero di ripetizioni.
Nel caso di {PAUSE} invece l'intero indicato è il numero di millisecondi (ms) che SendKeys deve attendere prima di proseguire.
Esempio per attendere mezzo secondo:
macro={PAUSE 500}
In questa versione del programma, dopo aver inviato i tasti, SendKeys riacquista il controllo. Non c'è modo di controllare se un'applicazione ha processato o meno quei tasti.
Macro Hardcore Se hai bisogno di più informazioni e più controllo sulle tue macro, questa è la sezione giusta.
Puoi seguire un approccio più fine e dettagliato scrivendo macro col metodo RawKeys, o più complesso col metodo PredefinedKeys. Puoi addirittura usare codice esadecimale al posto delle Azioni viste prima.
Sebbene le macro RawKey saranno ancora supportate per lungo tempo, sono complesse da programmare, dove possibile, usate al loro posto le nuove macro predef, in quanto gestiscono in automatico gli eventi keyup, keydown e extended key per voi.
Macro predef
La sintassi è la seguente
macro = predef:, [eventi KEYDOWN|KEYUP opzionali]
Esempio
macro = predef:RCONTROL, KEYDOWN
macro = predef:RCONTROL, KEYUP
Un evento KEYDOWN informa il nostro computer che un tasto è stato premuto; resterà in quello stato finchè non riceverà un evento KEYUP per quello stesso tasto. Ciò permette di tenere premuti più tasti contemporaneamente. Se gli eventi KEYDOWN o KEYUP non vengono specificati, la routine predef li creerà per noi. Con le macro predef non ci dovremo nemmeno preoccupare se un tasto fa o meno parte della famiglia extended. Anche in questo caso se ne occuperà la routine predef.
Macro rawkey
La sintassi è la seguente
macro = rawkey:, [EXTENDEDKEY|KEYUP]
I tasti Extended sono dettagliati nella colonna "Extended key?" più avanti.
Esempio
macro = rawkey:RCONTROL, EXTENDEDKEY
macro = rawkey:RCONTROL, EXTENDEDKEY|KEYUP
Con le macro rawkey non si usa l'evento KEYDOWN. Il semplice invio di un codice rawkey sottintende tale evento. Resterà nello stato "premuto" finchè non verrà inviato un evento KEYUP per quello stesso tasto. Ciò permette di tenere premuti più tasti contemporaneamente.
Se dovessi usare le macro rawkey assicurati di sapere bene cosa stai facendo.
Segue le lista dei comandi Rawkey.
Nota: Per non riprodurre la lista ed allungare inutilmente il post, aprite il file di help e selezionate la pagina indicata nell'immagine seguente:
TouchBuddy : Bottoni e MacroSe ancora non avete installato il TouchBuddy Toolkit,
potete scaricare il file di help (chm) da questo link.