Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Autohotkey

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

Autohotkey

Postdi cla.ghe » 17/01/11 09:50

Sono alle prime armi con programmi di questo tipo e vorrei sapere come si interrompe l'esecuzione di una operazione che contiene un loop e la seconda domanda riguarda il seguente problema: ho un foglio di excel che contiene dati che voglio copiare uno ad uno in un altro foglio esempio:

a1
a2
...
a8
a9

Come faccio a dire al programma che quando toverà una casella vuota si dovrà fermare ?

Ciao e Grazie.
cla.ghe
Utente Junior
 
Post: 28
Iscritto il: 18/12/09 14:41

Sponsor
 

Re: Autohotkey

Postdi maxmula » 17/01/11 10:17

Ciao,
rispondo ad entrambe le domande con questo esempio, che effettua una scansione di tutte le caselle in colonna A e si ferma non appena ne trova una vuota:

Codice: Seleziona tutto
For x = 1 To 65536
    v = cells (x,1).value
    If v = "" then Exit For
Next



;)

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Autohotkey

Postdi maxmula » 17/01/11 10:20

oops... scusa ma ho fatto un po' di confusione...

In AutoHotkey dovresti poter fare la stessa cosa con l'istruzione Break

Prova a leggere qui: [url0http://www.autohotkey.com/forum/topic46222.html]http://www.autohotkey.com/forum/topic46222.html[/url]

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Autohotkey

Postdi cla.ghe » 17/01/11 11:48

Provo a spiegarmi meglio:
in a1 ho pippo
in a2 ho pluto
......
in a8 ho paperino
in a9 ho 100
Come scivo in autohotkey "se a9=100 fermati(break)" ?
O meglio come identifico in autohotkey la cella "a9" di excel ?
Grazie ancora.
cla.ghe
Utente Junior
 
Post: 28
Iscritto il: 18/12/09 14:41

Re: Autohotkey

Postdi maxmula » 17/01/11 12:09

Non programmo AutoHotkey, ma googolando ho trovato questo:
http://www.autohotkey.com/forum/topic29429.html

Per quanto ho potuto capire, cio che chiedi è abbastanza complicato...

Forse sarebbe più semplice sviluppare una macro in Excel che faccia quanto richiesto, assegnarle una sequenza che permetta di attivarla (o avviarla all'apertura del foglio, usando gli eventi vba) ed eventualmente usare autoHotkey per lanciarla (ma si può anche fare direttamente da dentro excel senza "scomodare" altri programmi).

Se vuoi, prova a spiegarci un po' più in dettaglio qual è il problema che devi affrontare: magari riusciamo a darti qualche buona idea ;)

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Autohotkey

Postdi cla.ghe » 17/01/11 19:02

Premesso che l'inglese mi fa venire il prurito, ma credo si sia capito, diciamo che in un foglio excel risiedono dati organizzati come un database quindi ogni riga(record) contiene un campo “nome” un campo “cognome” un campo “codice fiscale” ed altri campi ancora; i dati di questi record mi occorrono per implementare un altro archivio di un altro programma e ciò avviene mediante una maschera di acquisizione dati che dopo essere stata compilata nei suoi vari campi con un invio finale trasferisce i dati nell’archivio del programma di cui sopra ( volendo potrei fare un altro esempio dicendo che quegli stessi dati del foglio excel vorrei copiarli in questo messaggio); questa copiatura deve continuare fino a quando scendendo nel foglio excel non trovo più nessun dato e a quel punto il loop si deve fermare; precedentemente ho detto fino a quando non trovo più nessun dato ma avrei potuto dire fino a quando nella cella che vado ad intercettare in excel non trovo ad esempio il nome PIPPO.

Come faccio pertanto ad indicare a”autohotkey” la cella di excel da controllare come vuota o uguale a PIPPO ?

Spero di essere stato più chiaro.
Ciao e grazie ancora.
cla.ghe
Utente Junior
 
Post: 28
Iscritto il: 18/12/09 14:41

Re: Autohotkey

Postdi maxmula » 18/01/11 10:08

Per quanto riguarda il "prurito"... temo che dovrai farci l'abitudine: purtroppo la maggior parte delle guide a quasi tutti i linguaggi (almeno quelle più interessanti) sono in inglese...

Per quanto riguarda il tuo problema, invece, non credo che AutoHotKey possa leggere direttamente il contenuto di una particolare cella all'interno di una finestra...
Però riesce a far funzionare degli script di AutoIt v2 e non escludo che programmandone uno ad hoc tu possa farlo (ma a questo punto ti converrebbe di più passare ad AutoIt v3, che integra funzioni che in qualche modo possono analizzare i controlli all'interno delle finestre...)

So però che AHK può leggere dei file di testo, per cui una possibile via potrebbe essere esportare le celle di Excel in formato testo con un'apposita macro VBA (magari avviabile da AutoHotKey tramite sequenza di tasti) che provveda a formattarlo alla bisogna, e poi da AHK andare a leggere quel file, adattando il codice che trovi qui:

http://www.autohotkey.com/docs/commands/LoopReadFile.htm

Dopodiché, una volta che il tuo testo sarà in memoria, dovrai selezionare la finestra destinazione e scriverlo lì (se fosse AutoIt v3, scriverei WinActivate(nomefinestra) seguito da Send (testo), immagino che in AutoHotKey ci siano comandi analoghi.

Spero di esserti stato d'aiuto...

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Autohotkey

Postdi cla.ghe » 23/01/11 20:27

Grazie per i consigli ma cercando meglio nel tutorial di AutoHotKey ho trovato questo:

Clipboard: La variabile chiamata Clipboard e' speciale perché' contiene il testo corrente sulla clipboard (l'ultima cosa che hai copiato). Nondimeno, puo' essere usato come se fosse una normale variabile. Per esempio la riga che segue mostra contenuto della clipboard: MsgBox %clipboard%

Sembrerebbe risolvere il mio problema di fermare lo script quando trovo una cella vuota tra quelle da copiare, infatti posizionandomi su una nuova cella e copiandola avrei una Clipboard vuota pertanto inserendo nello script:
if clipboard =
break
il ciclo si dovrebbe fermare ed invece non lo fa, ma se scrivo:
if clipboard < 1
break
funziona.

Sapreste spiegarmi il perché?
Grazie ancora.
cla.ghe
Utente Junior
 
Post: 28
Iscritto il: 18/12/09 14:41


Torna a Software Windows


Topic correlati a "Autohotkey":

Aiuto per Autohotkey
Autore: jojojo
Forum: Programmazione
Risposte: 0

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti