K88

New member
Introduzione:
In questa guida illustrerò il funzionamento di un software piuttosto interessante chiamato AutoHotkey.
Si tratta in pratica di un software di macro, gratuito e Open Source, per mouse, tastiera e altri dispositivi di input. La funzionalità principale è quella di "registrare azioni" per permettere di rieseguirle completamente in automatico successivamente. Il vantaggio più ovvio è quello di automatizzare operazioni estremamente ripetitive che devono essere eseguire obbligatoriamente tramite un'interfaccia grafica o tramite la pressione consecutiva di tasti.
Da notare che può essere registrata anche la posizione del mouse o il titolo delle finestre per riprodurre fedelmente l'azione dell'utente e può rimanere in attesa del caricamento dell'applicazione prima di continuare ad eseguire le operazioni registrate. Ovviamente AutoHotkey riesce ad eseguire le azioni in automatico leggendo i comandi salvati in un file di testo con estensione AHK, chiamato script. I comandi possono essere stati inseriti in automatico da un software di registrazione di azioni oppure inseriti manualmente da un utente esperto che conosce il linguaggio utilizzato da AutoHotkey.
Tuttavia questo software può essere utilizzato anche per moltissime altre cose, per esempio la creazione di combinazioni da tastiera rapide o per rimappare pulsanti.
Viene inoltre fornito anche con un compilatore, chiamato Ahk2Exe, che permette di convertire gli script in veri e propri EXE eseguibili anche su computer che non hanno AutoHotkey.

Lista ufficiale funzionalità di AutoHotkey:
- Automatizzare quasi tutto con combinazioni di tasti e clik del mouse. Potrai scrivere MACRO per mouse e tastiera da solo o usare il MACRO recorder.

- Creare HotKey per tastiera, joystick, e mouse. Virtualmente ogni chiave, tasto, o combinazioni possono diventare Hotkey.

- Incrementare le abbreviazioni come preferisci. Per esempio, scrivere "btw" puo' produrre automaticamente "by the way".

- Creare personali data entry forms, user interfaces, e menu bar. Guarda GUI per maggiori dettagli.

- Rimappare tasti e bottoni della tua tastiera, Joystick, e mouse.

- Rispondere ai segnali dagli hand-held remote controls tramite lo script del client di WinLIRC.

- Far funzionare gli script esistenti di AutoIt v2 ed aumentarli con le nuove possibilita'.

- Convertire tutti gli script in un file EXE che puo' essere fatto funzionare sui calcolatori che non hanno AutoHotkey installato.

- Cambiare il volume, mute, e altre regolazioni della soundcard

- Rendere ogni finestra trasparente, always-on-top, o alterare il suo aspetto.

- Utilizzare joistick o la tastiera come un mouse.

- Monitorare il tuo sistema; per esempio chiudere le finestre indesiderate nel momento in cui compaiono

- Richiamare e cambiare il contenuto del Clipboard compreso il nome dei file copiati da una cartella.

- Disabilitare o sovrascrivere i tasti di scelta rapida di Windows,Quali Win+E e Win+R.

- Alleviare i RSI (Repetitive Strain Injury) con dei sostituti per Alt-Tab (usando tasti, rotellina del mouse, o bottoni).

- Personalizzare il System-Tray con le tue icone, tooltip, voci di menu' e sub-menu.

- Visualizzare le finestre di dialogo, tooltips, balloon tips, and popup menus, per interagire con gli utenti.

- Effettuare azioni in risposta allo spengimento del pc.

- Rilevare da quanto tempo l'utente e' assente. per esempio per eseguire script che richiedano una grande capacita' di calcolo solo quando l'utente e' assente

- Automatizzare le azioni nei giochi rilevando immagini e il colore dei pixel.

- Leggere, scrivere e ordinare file di testo piu' facilmente che in altre linguaggi.

- Realizzare operazioni su set di file che abbiano un wildcard pattern.

- Lavorare con il registry e gli INI files.
Download e installazione:
Per prima cosa scarichiamo il software dal sito ufficiale di AutoHotkey. Sono disponibili diverse alternative: l'installer tradizionale, il pacchetto standalone compresso in ZIP
e codici sorgenti ed editor avanzati per la creazione di scripts.
Il pacchetto di installazione consente 3 scelte:
- "Main program" è l'interprete degli script, il software di intercettazione delle finestre e AutoScriptWriter II (vedere Registrazione automatizzata di azioni).
- "Script compiler" è il software di conversione Ahk2Exe (vedere Conversione degli script in eseguibili)
- "Enable drag &drop onto scripts" consente di registrare l'estensione AHK in modo tale da rendere compatibili gli scripts (non compilati in EXE) con il drag and drop. In pratica trascinando un file su uno script questo verrà inviato come parametro esterno per lo script.

Il pacchetto standalone ha invece il vantaggio di funzionare immediatamente avviando l'eseguibile, senza eseguire alcuna installazione nel sistema operativo, ma non registra l'estensione AHK quindi non è possibile eseguire il drag and drop senza aver compilato prima lo script in EXE. E' sufficiente estrarre tutto il contenuto dell'archivio ZIP in una cartella dell'hard disk.

Registrazione automatizzata di azioni in uno script, utilizzo del registratore di macro:
Vedremo per prima cosa la semplice registrazione di azioni in maniera totalmente automatizzata attraverso l'editor automatico AutoScriptWriter II fornito direttamente con questa versione di AutoHotkey.
Per iniziare subito possiamo aprire la cartella di AutoHotekey, spostarci nella sotto-cartella AutoScriptWriter ed eseguire AutoScriptWriter.exe.
Una premessa: AutoHotkey capisce quali azioni devono essere eseguite in automatico
Nella finestra del programma è possibile eseguire diverse azioni:
- Facendo click sul pulsante "Window Text" viene registrato anche il titolo della finestra, in questo modo diminuisce il rischio che lo script esegua un'azione nella finestra sbagliata (per esempio se perde il focus inaspettatamente o se compare una finestra non prevista).
- Facendo click sul pulsante "Record Mouse" vengono registrate anche le azioni eseguite con il mouse
- Facendo click sul pulsante "Record & Shrink" viene ridotta la finestra di AutoScriptWriter quando si avvia la registrazione.
- Nel campo di testo in alto è possibile inserire un comando da eseguire prima di iniziare a registrare le azioni dell'utente.
Con il pulsante "Browse" è inoltre possibile sfogliare i file, in pratica funziona come la finestra "Esegui" di Windows.
- Facendo click sul pulsante rosso "A Record" si avvia la registrazione delle azioni. Cioè da quel momento fino alla pressione del pulsante "Stop" le azioni eseguite mediante mouse (se selezionata l'opzione) e tastiera verranno intercettate dal programma e salvate nello script nello stesso identico ordine.
- Facendo click sul pulsante "Clean" si elimina lo script appena generato (visibile nell'area di testo a destra).
- Facendo click sul pulsante "Save" è possibile salvare lo script in un file AHK, interpretabile da AutoHotkey.

NB: AutoScriptWriter II è abbastanza preciso a registrare le azioni negli script ma, se si è selezionata la voce "Window Text", ha il difetto di "sporcare" il codice dello script ripetendo il titolo della finestra di AutoScriptWriter II.
 
Ultima modifica:

K88

New member
Script dotati di interfaccia utente:
E' possibile includere negli script anche un'interfaccia utente, chiamata comunemente GUI. Questo permette ad esempio di visualizzare finestre di conferma personalizzate o altre finestre grafiche più complesse, per esempio dotate di controlli ComboBox, durante l'esecuzione di uno script.
Per fare questo sono disponibili numerosi comandi, ma è molto complesso scrivere il codice di una finestra perchè spesso è necessario specificare manualmente le coordinate e non si può essere certi del risultato finale. Per ovviare a questo problema è disponibile un editor WYSIWYG (What You See Is What You Get), ovvero un ambiente di sviluppo grafico per generare il codice di queste finestre che dovono essere visualizzate all'utente, chiamato SmartGUI e scaricabile dal sito ufficiale. Tuttavia c'è un problema: SmartGUI è in grado di generare solo elementi grafici e non è in grado di associare automaticamente eventi o comandi attivi (cioè che svolgono una o più funzioni/azioni), quindi sarà necessario aggiungere manualmente al codice generato da SmartGUI l'associazione per i controlli. Per esempio se è stata creata una finestra con un pulsante di uscita sarà necessario aggiungere manualmente allo script AHK il codice:
Codice:
ButtonCancel:
GuiClose:
ExitApp
per permettere al tasto di chiudere lo script.

L'utilizzo di SmartGUI è semplice, appena avviato il programma viene subito aperto un nuovo script con una finestra vuota. Attraverso la barra degli strumenti è possibile aggiungere i vari componenti, per modificare le varie caratteristiche (dimensioni, testo visualizzato, ecc..) è possibile utilizzare il menu visibile con il tasto destro del mouse. Dal menu "File" si può aprire uno script GUI già esistente con il comando "Open Script" mentre per salvare si utilizza il comando "Save script" e "Save script as". Attraverso "Test script" viene avviato il file AHK, ma solo se è impostata l'associazione dell'estensione. Se per esempio è stato associato Blocco note ai file AHK, il comando test aprirà lo script con Blocco note.
Sempre nel menu "File" è presente anche un'utilissima funzionalità chiamata "GUI Stealer". In pratica basta selezionare una qualsiasi finestra, premere F12 e questa verrà riprodotta automaticamente con una certa precisione nell'area di lavoro.

Creazione manuale di uno script:
Come accennato precedentemente, è possibile ovviamente sviluppare degli script inserendo manualmente i comandi necessari per eseguire le operazioni desiderate. Sul sito ufficiale sono presenti diverse guide in italiano: per cominciare è possibile leggere il Tutorial rapido.
La lista completa dei comandi è invece visibile in questa pagina.
Per comodità è possibile utilizzare l'ambiente di sviluppo dedicato SciTE4AutoHotkey che permette di visualizzare il codice in maniera formattata secondo la sintassi del linguaggio ed incorpora direttamente tutti gli editor principali: AutoScriptWriter (vedi sezione realtiva alla registrazione automatica di macro), Scriptlet Utility, GenDocs Documentation Generator, MsgBox Creator, SplashImage Maker e l'editor grafico per l'interfaccia utente SmartGUI (descritto precedentemente). In questo caso però è stato opportunamente modificato in modo che sia disponibile l'opzione di salvataggio direttamente nell'ambiente SciTE4AutoHotkey. Inoltre è completato anche da altri due tool: il primo chiamato MsgBox Creator che permette di sviluppare molto più rapidamente finestre di informazioni, di richiesta o di errori e il secondo chiamato SplashImage Maker che rende immediata la creazione di finestre splash.
Scriptlet Utility permette invece di incorporare in maniera diretta script AHK già sviluppati, in modo da velocizzare la creazione di script più ampi. In pratica viene implementato, anche se parzialmente, il meccanismo modulare utilizzato dai comuni linguaggi di programmazione: cioè è possibile creare tanti script AHK da includere quando serve implementare una determinata funzionalità (è già incluso uno script che permette di avviare o attivare Blocco note).
Infine GenDocs Documentation Generator permette di generare una documentazione partendo dai commenti presenti nel codice. Il meccanismo è molto simile a quello utilizzato dai JavaDoc, ma ovviamente è molto più semplificato.

Rimappatura di pulsanti:
E' possibile rimappare anche i pulsanti di una periferica HID (Human Interface Devices) come per esempio un telecomando che invia segnali ad un ricevitore USB. In passato era necessario registrare una DLL aggiuntiva, ma recentemente è stato sviluppato uno script AHK che riesce ad implementare la funzione in maniera diretta.

Esecuzione di script:
Una volta terminata la creazione dello script e aver salvato il file AHK è possibile eseguirlo. Per fare questo è sufficiente aprire il file con AutoHotkey.exe (attraverso la procedura "Apri con..." nel caso non sia stata impostata l'associazione con l'estensione) o trascinare semplicemente il file sull'eseguibile AutoHotkey.exe.
Una volta fatto comparirà l'icona di AutoHotkey nella system tray ed inizierà l'esecuzione automatizzata delle azioni registrate.
Facendo click con il tasto destro del mouse sull'icona è possibile accedere a diverse opzioni:
- Attraverso "Open" è possibile vedere la lista dei comandi eseguiti e utilizzare tutti gli altri comandi per lo script (pausa, reload, modifica, ecc...) mediante il menu "File". Inoltre dal menu "View" è possibile impostare un filtro per la visualizzazione dei comandi: per esempio la visualizzazione dei soli metodi legati a tasti rapidi.
- Attraverso "Window Spy" è possibile visualizzare le proprietà avanzate della finestra che ha il focus (cioè che è selezionata).
- Attraverso "Reload this script" è possibile ricaricare l'intero script dall'inizio.
- Attraverso "Edit this script" è possibile modificare lo script (una volta salvato il file sarà necessario ricaricarlo).
- Attraverso "Suspend Hotkeys" è possibile sospendere l'intercettazione dei tasti rapidi definiti nello script.
- Attraverso "Pause Script" è possibile mettere in pausa l'esecuzione dello script.

Conversione degli script in eseguibili:
Per convertire uno script in un EXE è sufficiente entrare nella sotto-cartella Compiler ed aprire il file Ahk2Exe.exe.
Nella finestra è possibile eseguire diverse operazioni:
- Facendo click sul pulsante "Browse" vicino al campo "Source (script file)" è possibile selezionare il file AHK da convertire.
- Facendo click sul pulsante "Browse" vicino al campo "Destination (.exe file)" è possibile inserire il nome e la posizione del file EXE da generare.
- Facendo click sul pulsante "Browse" vicino al campo "Custom Icon (.ico file)" è possibile specificare un'icona personalizzata per l'eseguibile da generare. In caso di errori è possibile fare click sul pulsante "Default" per ripristinare l'icona predefinita. Questo passaggio è opzionale.
- Nel campo di testo "Passphrase" e "Verify passphrase" è possibile inserire una password per prevenire la decompilazione dello script. In pratica si impedisce che un utente, attraverso l'utilizzo di software appositi, riesca ad estrapolare lo script AHK dall'EXE e a leggere la lista dei comandi che vengono eseguiti.
- Nel menu "Compression" è possibile selezionare il livello di compressione dell'EXE. Maggiore è la compressione, minori saranno le dimensioni del file ma è anche più lenta l'esecuzione.
- Facendo click sul pulsante "Convert" si avvia il processo di conversione.

Terminata la procedura si avrà un EXE: eseguendo questo file verrà avviato in automatico lo script anche senza avere AutoHotkey sul computer.
Eventuali parametri presenti nello script potranno essere inviati mediante riga di comando o utilizzando il drag and drop.

Guida da completare
 
Ultima modifica:

Modica

New member
Ciao
sono Daniele
e prima di tutto volevo farti
i miei complimenti banali ma sinceri per l'interessante guida !

Visto che ho notato la passione
e devo dire anche la preparazione dell'argomento
con cui è stata scritta la guida (IN ITALIANO) anche se interrotta
un annetto fà,
volevo ardire a tentare di proporti un quesito
credo anche comune e richiesto.

Sto creando un mega elenco di abbreviazioni,
ormai sono arrivato a circa un paio di migliaia nel mio file .ahk
e sono destinate sempre + a crescere
con lo scopo di arrivare il più possibile
ad un quasi vocabolario della lingua italiana abbreviato,
utile per chi ha la forte necessità di scrivere molto e velocemente
e non conosce la stenografia.

A questo punto urge assolutamente
l'uso di un piccolo database,
meglio .mdb per non perdere la piena compatibilità con Access,
dove quindi poter divertirsi a inserire e gestire anche quindi con Query (filtri)
le numerosissime abbreviazioni.

Che tu sappia
è possibile collegare il tutto
tra autohotkey ed il database di abbreviazioni.

Quindi....
ideale gran finale sarebbe ...
con l'uso di semplici interfacce GUI
(con cui ho acquisito un pochettino di dimestichezza)
poter gestire un archivio dei termini per esteso
della lingua italiana
(già in possesso in file .mdb)
filtrarlo con delle query
per scegliere le abbreviazioni desiderate

Es. tutti i termini che finiscono per ...zione

trasformarli in un nuovo campo
anche con le comode funzioni concatena testo di Access o di autohotkey
con la sintassi
::definiz::definizione



Incollo qui come esempio
una piccolissima parte del codice,
(visto che questa versione non usa un database delle abbreviazioni
ma le inserisce tutte nello stesso listato)
del mio file .ahk:

;------------------------------------------------------------------------------
; VERSIONE
;------------------------------------------------------------------------------
; 864 lemmi duplicati individuati e rimossi su 11688

; 11724 totali ordinati
; MsgBox, 64, Vocabolario abbreviaz... Vers. 1_0_4 beta_25feb2011, Tutti i LEMMI sono stati caricati, buon lavoro! `nBy Vitantonio Modica Daniele. `n`n`n-ELENCO DI 12.606 LEMMI INSERITI `n2575 generici`n3400 ...zione`n2878 ...tore`n2812 ...mento`nNovità della versione, lemmi aggiunti:`n655 ...bilità`n286 ...logico`n`n-ISTRUZIONI`nPer inserire una nuova stringa/vocabolo `nseleziona/evidenzia la stringa/vocabolo interessata `ne premi i tasti: Win + n


MsgBox, 64, Vocabolario abbreviaz... Vers. 1_0_9 26lug2011, Tutti i LEMMI sono stati caricati, buon lavoro! `nBy Vitantonio Modica Daniele.`n`n`nELENCO di 19.887 LEMMI inseriti `n n. 1.838 generici`n Con Suffissi:`n...zione n. 3.499`n...tore n. 2.834`n...mento n. 2.830`n...bilità n. 652`n...logico n. 281`n...mente n.664`n...one n. 884 `n...ato n. 3.660 (senza conflitti)`n`n NOVITA' VERSIONE: `n - Eliminazione 578 lemmi selezionati con "si" da 2 a 7 car. `n -ottimizzazioni:`n Riordino alfabetico e eliminazione lemmi duplicati`n Test OK: lux... luce e non Luxone, ulul...ululato e non ululone `n`nISTRUZIONI: Inserim. nuova stringa/vocabolo `n1) Seleziona/evidenzia la stringa/vocabolo interessata `n2) Premi i tasti: Win + n`n3) Inserisci stringa/vocabolo.





;------------------------------------------------------------------------------
; Settings
;------------------------------------------------------------------------------
#NoEnv ; For security
#SingleInstance force



;------------------------------------------------------------------------------
; Win+H to enter misspelling correction. It will be added to this script.
;------------------------------------------------------------------------------
#n::
; Get the selected text. The clipboard is used instead of "ControlGet Selected"
; as it works in more editors and word processors, java apps, etc. Save the
; current clipboard contents to be restored later.
AutoTrim Off ; Retain any leading and trailing whitespace on the clipboard.
ClipboardOld = %ClipboardAll%
Clipboard = ; Must start off blank for detection to work.
Send ^c
ClipWait 1
if ErrorLevel ; ClipWait timed out.
return
; Replace CRLF and/or LF with `n for use in a "send-raw" hotstring:
; The same is done for any other characters that might otherwise
; be a problem in raw mode:
StringReplace, Hotstring, Clipboard, ``, ````, All ; Do this replacement first to avoid interfering with the others below.
StringReplace, Hotstring, Hotstring, `r`n, ``r, All ; Using `r works better than `n in MS Word, etc.
StringReplace, Hotstring, Hotstring, `n, ``r, All
StringReplace, Hotstring, Hotstring, %A_Tab%, ``t, All
StringReplace, Hotstring, Hotstring, `;, ```;, All
Clipboard = %ClipboardOld% ; Restore previous contents of clipboard.
; This will move the InputBox's caret to a more friendly position:
SetTimer, MoveCaret, 10
; Show the InputBox, providing the default hotstring:

;InputBox, Hotstring, New Hotstring, Fornire la parola corretta sul lato destro. È inoltre possibile modificare il lato sinistro, se lo si desidera.`n`nExample entry:`n::teh::the,,,,,,,, ::%Hotstring%::%Hotstring%

;InputBox, Hotstring, New Hotstring, Provide the corrected word on the right side. You can also edit the left side if you wish.`n`nExample entry:`n::teh::the,,,,,,,, ::%Hotstring%::%Hotstring%

InputBox, Hotstring, Nuova stringa, Immetti la stringa RISULTANTE sul lato destro e se vuoi puoi modificare sul lato sinistro la stringa ORIGINARIA.`n`nEsempio:`n::gigi::Gigi Omar Modica,,,,,,,, ::%Hotstring%::%Hotstring%

if ErrorLevel <> 0 ; The user pressed Cancel.
return
; Otherwise, add the hotstring and reload the script:
FileAppend, `n%Hotstring%, %A_ScriptFullPath% ; Put a `n at the beginning in case file lacks a blank line at its end.
Reload
Sleep 200 ; If successful, the reload will close this instance during the Sleep, so the line below will never be reached.
MsgBox, 4,, The hotstring just added appears to be improperly formatted. Would you like to open the script for editing? Note that the bad hotstring is at the bottom of the script.
IfMsgBox, Yes, Edit
return

MoveCaret:
IfWinNotActive, Nuova stringa
return
; Otherwise, move the InputBox's insertion point to where the user will type the abbreviation.
Send {HOME}
Loop % StrLen(Hotstring) + 4
SendInput {Right}
SetTimer, MoveCaret, Off
return

#Hotstring R ; Set the default to be "raw mode" (might not actually be relied upon by anything yet).

::10el::10 e lode
::nrgnr::N. R.G.N.R.
::casellariog::casellario giudiziale
::cg2::casellario giudiziale
::pag::pag.
::3f::Tre Fontane
::avvi1::avvocati
::bedac::letto a castello
::lettoac::letto a castello
::c.ina::Caterina
::desire::desiderare
::astrada::autostrada
::autos::autostrada
::in marea::in mare aperto
::socàos::società off-shore
::accalappiac::accalappia cani
::inmcnsd::in men che non si dica
::imenknsd::in men che non si dica
::skioppo1::ad un tiro di schioppo
::volereov::volere o volare
::teco::assieme a te
::pilotaa::pilota automatico
::wakaw::waka waka
::tucat::tuca tuca
::plenty::abbondante
::sign::segnale
::hedgef::fondo d’investimento
::involve::avere a che fare
::uscitads::uscita di scena
::tycoon::grande industriale
::pledge::dare in garanzia
::museodam::museo d’arte moderna
::museoda::museo delle antichità
::museoc::museo comunale
::museos::museo statale
::museor::museo regionale
::museodc::museo delle cere
::museoaa::museo all’aperto
::museop::museo privato
::ingressoap::ingresso a pagamento
::stda::stato dell’arte
::workip::work in progress
::teatroc::teatro comunale
::teatroaa::teatro all’aperto
::cinemai::cinema impegnato
::teatroi::teatro impegnato
::cinemada::cinema d’autore
::teatroda::teatro d’autore
::musicada::musica d’autore
::societàos::società off-shore


P.S.
Interessante è anche sotto linux
AutoKey
 

K88

New member
Ti ringrazio per i complimenti, purtroppo ho interrotto la scrittura della guida perchè avevo visto che non aveva avuto molto successo....
Se ho capito bene vorresti poter gestire le numerose abbreviazioni in un database access per eseguire l'inserimento o l'aggiornamento in maniera più veloce ed efficiente all'interno dello script.
Che io sappia non è possibile eseguire questa cosa direttamente da AutoHotkey anche perchè sarebbe complicato interfacciarlo direttamente con un database (anche se ammetto di non aver approfondito molto il discorso abbreviazioni), però creando un'applicazione Access con VBA dovresti poter fare una cosa del genere in maniera non troppo complessa.
Per prima cosa è necessario creare un database mdb strutturato appositamente per le abbreviazioni, successivamente bisognerà creare due macro in Visual Basic: una che legge i dati dallo script automaticamente all'avvio dell'applicazione Access ed una che li scrive/aggiorna quando per esempio fai click su un determinato pulsante.
Per la struttura ti consiglio l'utilizzo di una singola tabella con tre campi: una per un numero di posizione (può essere utile se ti serve eseguire aggiornamenti rapidi), una per l'abbreviazione ed una per il testo corrispondente.
Per quanto riguarda la prima macro da far avviare automaticamente (qui trovi qualche info in merito: [Solved] VBA: Need a macro to automatically run on start-up ) devi creare una funzione che apra lo script (che alla fine è un file di testo), legga una riga alla volta fino ad un dato valore che indica l'inizio delle abbreviazioni (ad esempio "#Hotstring R") e poi continui a leggere le righe una alla volta eseguendo per ognuna uno split della stringa attraverso il separatore "::" per leggere i dati veri e propri. Ad ogni ciclo di lettura conviene eseguire direttamente l'aggiornamento dei record inserendo il numero di posizione (contatore), l'abbreviazione e la stringa corrispondente. Puoi decidere se aggiornare il database con i dati letti oppure se far svuotare tutti i record in automatico all'avvio della macro e riempirlo nuovamente.
Nella macro di salvataggio avverrà l'operazione opposta, verrà eseguita la lettura del file di testo per determinare l'inizio delle abbreviazioni e verranno letti i record uno alla volta e scritti nel file. Anche qui puoi decidere se aggiornare il testo (con il contatore inserito nel record potresti anche implementare una funzione per eseguire un aggiornamento rapido di una riga singola) oppure se eliminare direttamente le righe dopo il valore che indica l'inizio delle abbreviazioni. Qui trovi qualche informazione:
[VBA] Lettura e scrittura File Di Testo - - MasterDrive.it
[Access] Leggere/scrivere dati nelle tabelle tramite VBA (DAO) - - MasterDrive.it
 
Ultima modifica:

Benelli

New member
Buongiorno, sono nuovo del sito, ma sto iniziando a usare Autohotkey e un semplicissimo problema.
Ho realizzato uno script che è il seguente:

#t::
{Run, c:\SUPERVOC\PROGRAM\SUPERTRM.EXE,
ClipWait 1
Run, C:\Programmi\Audacity 1.3 Beta\audacity.exe, , max
return
}

Il secondo programma lanciato è Audacity che con la pressione a tastiera della sola lettera r , mi inizia la registrazione di un segnale audio.
Audacity sembra non accetti parametri sulla sua riga di comando, ed io non riesco a lanciare tramite lo script, la simulazione di un r digitato da tastiera.
....avevo anche il dubbio che fosse necessario specificare che
Audacity è in quel momento la finestra attiva ...
Ho provato con varie sintassi, ma certamente sbaglio qualche cosa.
Al momento, lanciando lo script devo seplicemente premer r e la registrazione apret in automatico.
Grazie in anticipo.
 

Benelli

New member
RISPEDISCO CAUSA ALCUNI ERRORI DI ORTOGRAFIA.

Buongiorno, sono nuovo del sito, ma sto iniziando a usare Autohotkey e HO un semplicissimo problema.
Ho realizzato uno script che è il seguente:

#t::
{Run, c:\SUPERVOC\PROGRAM\SUPERTRM.EXE,
ClipWait 1
Run, C:\Programmi\Audacity 1.3 Beta\audacity.exe, , max
return
}

Il secondo programma lanciato è Audacity, che con la pressione a tastiera della sola lettera r , mi inizia successivamente la registrazione di un segnale audio.
Audacity sembra non accetti parametri sulla sua riga di comando, ed io non riesco a lanciare tramite lo script, la simulazione di un r digitato da tastiera.
....avevo anche il dubbio che fosse necessario specificare che
Audacity è in quel momento la finestra attiva ...
Ho provato con varie sintassi, ma certamente sbaglio qualche cosa.
Al momento, lanciando lo script devo poi manualmente premere r e la registrazione inizia.

Grazie in anticipo.
 

K88

New member
Dovresti aggiungere al tuo script un comando Send (Send/SendRaw/SendInput/SendPlay/SendEvent: Send keys & clicks) che invia la lettera "R", tuttavia prima devi attivare la finestra di Audacity con il comando WinActivate (WinActivate) e attendere la sua effettiva attivazione con WinWait (WinWait). Può essere utile anche inserire il send all'interno di un IfWinExist (IfWinExist / IfWinNotExist) per essere sicuro che la lettera venga inviata solo in Audacity anche se si verifica una chiusura improvvisa.
Se hai difficoltà potresti anche provare a registrare le azioni e a generare automaticamente lo script con l'AutoScriptWriter II (leggi nella guida all'inizio della discussione).
 

vance

New member
ciao, mi puoi aiutare, sono riuscito a fare uno script semplice semplice che clikki nelle varie posizioni dopo tot secondo. ora vorrei perfezionarlo.
vorrei far si che cliccasse nella posizione X solo se il colore che si trova nella posizione Y è diverso da quello che gli indico io.
mi puoi fare il codice? grazie mille
 

K88

New member
Ma il colore presente in quella posizione è controllato da una GUI dello stesso script (ad esempio con WindowColor o ControlColor) oppure deve "leggere" il colore indipendentemente dall'applicazione? Perchè in quest'ultimo caso non sono sicuro che si possa fare. A cosa ti serve? Magari esiste un'altra strada...