[GUIDA] Autoit, by me

« Older   Newer »
  Share  
I.Ren
CAT_IMG Posted on 19/5/2008, 16:30     +1   +1   -1




Per lavorare in autoit bisogna avere il compilatore. Potete scaricarlo dal sito ufficiale ( http://www.autoitscript.com/autoit3/ )

.:|Le basi|:.

Per concatenare due elementi (variabili, costanti, ecc) si usa: &

Esempio:

CODICE
MsgBox(0,'titolo','Primo pezzo '&'Secondo pezzo, concatenato con '&'il primo e il terzo pezzo')


Qualsiasi funzione si scrive così:

CODICE
Funzione (parametro1,parametro2,parametro3,ecc)


Esempio:

CODICE
MsgBox(0,'titolo','testo')


Per andare a capo si usa la macro@CRLF o @CR

Includere le librerie è molto importante e x questo troviamo la funzione include.

Si usa così

CODICE
#include <nomelibreria.au3>


.:|I commenti|:.

I commenti come in qualsiasi altro linguaggio di programazzione il compilatore non li riconosce ma serve solo al programmatore. I commenti possono essere di 2 tipi:

1- ;questo è il commento di primo tipo
2- #cs
commento su riga 1
commento su riga 2
#ce


.:|Le variabili|:.

Le variabili si distinguono perchè sono prececedute da il simbolo: $ (del dollaro)

Esempio:

CODICE
$var1
$var2
;no var


quali saranno le variabili in questo script? indovinatelo voi ;)

Un'altro esempio (richiama la variabile):

CODICE
$titolo = 'Questo è il titolo'
$testo = 'Stai leggendo un testo'
MsgBox(0,$titolo,$testo)


Parlando delle variabili non possono mancare gli array. Gli array sono delle variabili contenti molti valori. Per dichiarare un array bisogna fare così:

CODICE
Dim $nomevariabile[valori] = [valore1,valore2,valore3,ecc]


Un array deve sempre essere preceduto da:

Dim
oppure
Global
oppure
Local

Dentro le prime parentesi quadre di questo esempio bisogna mettere il numero dei valori che contiene l'array. In quelle sucessive il valore1, due, ecc a seconda di quanti valori sono stati dichiarati prima.

Ora proviamo con un altro esempio (richiamiamo l'array):

CODICE
Dim $MioArray[5] = ['io ora','vado in','bagno','a','lavarmi']
For $i = 0 To 4
MsgBox(0,'Esempio',$i)
Next


.:|For, To, Next|:. semplificiamoci la vita!

Queste tre funzioni io le amo! Ti semplificano la vita! Quindi approfondiamole x bene. Iniziamo cn 1 esempio e poi spieghiamolo:

CODICE
For $i = 0 To 5
MsgBox(0,$i,'Il conto ora è: '&$i)
Next


For: Fisso, sempre all'inizio
$i = 0: La variabile $i indica il valore iniziale che poi aumentera progressivamente
To: Fisso, sempre dopo la variabile. Dopo il To c'è il valore a cui $i deve arrivare.


.:|Do, until|:.

Anche queste funzioni sono molto utili. Come al solito facciamo 1 esempio e poi spieghiamolo:

CODICE
$conto = 0
Do
MsgBox(0,'Esempio do until','Ora il conto è a: '&$conto&@CR&'Questo esempio finirà quando il conto sarà a 5')
$conto = $conto + 1
Until $conto = 6


Do: Do è fisso. Sta sempre all'inzio
Dopo do seguono tutte le altre istruzioni
Until: Le istruzioni continuano sempre finche non mettiamo la condizione dopo until.
Nell'esempio qui sopra, la serie di istruzioni finiscono quando il $conto arriva a 6

.:|While, Wend|:.

Questi 2 fattori sono utilissimi. Sono simili a Do e Until, ma servono principalmente nelle gui. (di queste parleremo dopo)

Esempio:

CODICE
While 1
MsgBox(0,'Esempio infinito','Questo esempio dura fino all'infinito')
Wend


.:|If, Else, ElseIf, EndIf, Then|:.

Questi fattori sono quasi indispensabili in un programma. Facciamo 1 esempio e spieghiamolo.

CODICE
$valore1 = InputBox('Numero','Inserisci un numero')
If $valore1 > 0 Then
MsgBox(0,'Positivo','Il numero inserito ('&$valore1&') è positivo')
ElseIf $valore1 < 0 Then
MsgBox(0,'Negativo','Il numero inserito ('&$valore1&') è negativo')
Else
MsgBox(0,'No','Non è stato inserito nessun numero')
EndIf


In questi casi è meglio tradurre nel linguaggio italiano per capire queste cose.

Se il valore immesso è maggiore di zero
..messaggio..
Invece, se il valore immesso è minore di zero
.. messaggio..
Invece (a tutte le condizioni)
non è stato inserito niente.

semplice no?

.:|GUI|:.

Cari i miei alunni, questa è la parte + importante di un programma decente.

Iniziamo con le sigle. Cosa vuol dire GUI?

G = Graphical
U = Human
I = Interface

In italiano l'interfaccia grafica.

La GUI si struttura così:

CODICE
#Include <GuiConstants.au3>
$gui = GuiCreate('Titolo',300,200); così creo la gui

GuiSetState ( ); così faccio vedere la gui

While 1
Switch GuiGetMsg() ;importantissimo! ci deve essere sempre!
Case $GUI_EVENT_CLOSE; se premiamo il tasto di chiusura
Exit;esce
EndSwicth;serve!
Wend;serve!


Questo codice fa creare una finestra che quando si preme il tasto x chiudere si chiude.

Per vedere tutti i contolli andate nel help di autoit e vi viene una gui con tutte le cose possibili.

Alla finestra si può far "cambiare" aspetto. Usiamo sempre il codice di prima e cambiamo la 2° riga.

CODICE
#Include <GuiConstants.au3>
$gui = GuiCreate('Titolo',300,200,BitOr($WS_POPUP,$WS_BORDER)); così creo la gui, senza pulsanti e con un bordo intorno
$b1 = GuiCtrlCreateButton('bottone',2,2,80,20); così creo un bottone
GuiSetState ( ); così faccio vedere la gui

While 1
Switch GuiGetMsg() ;importantissimo! ci deve essere sempre!
Case $b1; se si preme il bottone
MsgBox(0,'Clikkato','Hai premuto il bottone')
Case $GUI_EVENT_CLOSE; se premiamo il tasto di chiusura
Exit;esce
EndSwicth;serve!
Wend;serve!


Leggete i commenti x capire cosa fa.

Ora costruiamo insieme il primo semplicissimo programma. Si tratta di un login. E' completamente commentato.

CODICE
#include <GuiConstants.au3>;sono sempre da includere
Global $nomeGiusto = 'esempio', $pwGiusta = 'autoit 4 ever'
$gui = GUICreate('Login',100,120);creiamo la GUI
GUICtrlCreateLabel('Nome',2,2)
GUICtrlSetFont(-1,8,5000); cambiamo il font del testo
$nome = GUICtrlCreateInput('',2,25,90,20); creiamo una input
GUICtrlSetFont(-1,8,5000); cambiamo il font dell'input
GUICtrlCreateLabel('Password',2,50)
GUICtrlSetFont(-1,8,5000); cambiamo il font del testo
$pw = GUICtrlCreateInput('',2,65,90,20,$ES_PASSWORD);creiamo una input che sia adatta ad una password
GUICtrlSetFont(-1,8,5000); cambiamo il font dell'input
$prova = GUICtrlCreateButton('Login',2,90,80,20);creiamo un bottone per provare il login
GUICtrlSetFont(-1,8,5000); cambiamo il font dell'input
GUISetState ( );facciamo vedere la gui

While 1
       Switch GUIGetMsg ()
       Case $prova;se si preme il tasto login
       If GUICtrlRead($nome) = $nomeGiusto And GUICtrlRead($pw) = $pwGiusta Then;se quello scritto nella input del nome e se quello scritto nella input della password è corretto
       MsgBox(0,'Giusto','Giusto');messaggio
Else;se quello scritto nella input del nome e se quello scritto nella input della password è errato
       MsgBox(0,'Errato','Errato');messaggio di errore
       EndIf
       Case $GUI_EVENT_CLOSE; se si preme il tasto per uscire si chiude
       Exit
EndSwitch
WEnd


La lezione introduttiva è finita.. ci vediamo alla prossima lezione!
 
Top
lknokl
CAT_IMG Posted on 19/5/2008, 18:16     +1   -1




hai preso al balzo la mia richiesta ^^
 
Top
I.Ren
CAT_IMG Posted on 19/5/2008, 18:57     +1   -1




CITAZIONE
hai preso al balzo la mia richiesta ^^

? quale richiesta? :blink:
 
Top
hacker..90
CAT_IMG Posted on 22/5/2008, 20:49     +1   -1




a quando la seconda lezione??

ho brama di conoscenze....xD
 
Top
alexsxx
CAT_IMG Posted on 8/12/2008, 19:30     +1   -1




quando spieghi l'array nel msgbox non viene fuori vado a lavarmi ma 1 2 3 4 come mai?
 
Top
G O D of W A R
CAT_IMG Posted on 2/2/2009, 14:42     +1   -1




non è corretto... nelle gui il:

CODICE
GuiGetMsg()


non è obbligatorio metterlo, io personalmente mi trovo meglio con le funzioni abbinate a ogni control con

CODICE
GuiCtrlSetOnEvent(Control ID,Func)
 
Top
DarkPivotBest
CAT_IMG Posted on 4/3/2009, 16:02     +1   -1




BELLISSIMA!
però a volte (tipo nell'esempio del login) mi dice: variable used without being declared (variabili ussate senza essere state dichiarate (o giù di lì))
perchè?

 
Top
Lahace
CAT_IMG Posted on 12/3/2009, 13:28     +1   -1




una domanda....come faccio se voglio far si che premendo ad esempio invio mi possa controllare psw e name?
perchè io vorri fare una specie di terminale ( naturalmente in forma semplice :P) e vorrei che se scrivo un comando e premo invio lui lo esegue
mi servirebbe capire solo come fare in modo che quando premo invio esegua il comando
mi da unknown function....

Edited by Lahace - 12/3/2009, 16:20
 
Top
CAT_IMG Posted on 12/3/2009, 13:38     +1   -1

wtf?

Group:
Member
Posts:
2,141
Reputazione:
0
Location:
/etc/

Status:


fai un:

CODE
HotkeySet("{ENTER}","command")
 
Web   Top
Lahace
CAT_IMG Posted on 12/3/2009, 16:14     +1   -1




non niente non funziona
io questo comando l'ho messo su una case dello switch cosi se premo invio succede una determinata cosa
ho sbagliato io forse?
mi da unknown function name
EDIT: capito scusate il disturbo
 
Top
antru
CAT_IMG Posted on 21/5/2009, 14:48     +1   -1




Comunque per chi si incasina con le cordinate degli oggetti con le GUI C'è Koda. Questo programma serve per fare delle gui di tutti i tipi: basta prendere gli oggetti e portarli nella GUI e poi il programma vi darà il codice.
 
Top
Cyborg50
CAT_IMG Posted on 10/6/2009, 22:32     +1   -1




raga ma scusate se io devo cancellare un file che comando uso?
 
Top
lolloclat
CAT_IMG Posted on 10/6/2009, 22:59     +1   -1




usi FileDelete("directory del file")
 
Top
Cyborg50
CAT_IMG Posted on 10/6/2009, 23:33     +1   -1




grazie ma se per esempio vorrei fare che chiude tutti i processi come devo fa?

$variabile = 'closeprocess(notepad.exe)'
e poi per avviare questa variabile come fo mica uso msgbox lol che comando uso?

capito ho risolto xd grz

raga ma come faccio a sape quando devo usa librerie?

voglio di quando devo mettere
#include

ultima cosa se vorrei raga che si aprisse internet explorer pero poi andasse anche su un sito che direi si puo fa se si fa postatemi codice lol
 
Top
Cyborg50
CAT_IMG Posted on 11/6/2009, 09:15     +1   -1




asp raga sto creando una gui dovrei fa una texbox che si inserisce un ip poi un tasto che quando si preme su un tasto si avvia il ping come fo?
 
Top
39 replies since 19/5/2008, 16:30   3225 views
  Share