Come leggere il testo dallo schermo in una macro
OCR dello schermo dentro una macro per Windows: leggi un numero, uno stato o un nome da qualsiasi finestra, poi decidi che cosa farne.
Aggiornato il 18 settembre 2026 · La lettura del testo dallo schermo fa parte del piano Pro di Myna Recorder; ogni nuovo account la prova gratis per 7 giorni.
1. Che cosa fa read_text
La maggior parte degli strumenti per le macro sa fare clic e digitare, ma non sa che cosa c'è scritto sullo schermo. read_text legge un rettangolo dello schermo in una variabile, e da lì il valore si può digitare altrove, confrontare o usare in un messaggio:
total = read_text(region=(820, 400, 180, 40), single_line=True)
message_box("The order total was ${total}")
2. Scegli un'area
Passa sempre region=(x, y, width, height). Leggere tutto il desktop lo rimpicciolisce finché il normale testo dell'interfaccia diventa illeggibile. Un'area grande quanto il campo che ti interessa è veloce e precisa. single_line=True unisce in una sola riga qualsiasi cosa venga restituita, che è quello che vuoi per un numero o un nome. Ogni numero dell'area può essere una variabile o una somma, così un'area può seguire una corrispondenza trovata con wait_for.
3. Tre lettori
| engine= | Che cos'è | Consuma crediti | Viaggia con un programma esportato |
|---|---|---|---|
| "builtin" | Il predefinito. Funziona sul tuo computer. | No | Sì |
| "tesseract" | Un secondo lettore locale. Legge alcuni schermi meglio e altri peggio di quello integrato, e accetta page_mode= per controllare come l'immagine viene divisa in righe. Provalo quando una lettura ci va vicino ma è sbagliata. | No | Sì |
| "ai" | Un modello di trascrizione sul nostro server, per il testo che entrambi i lettori locali leggono male. | Sì | No |
Il motore si sceglie per ogni passaggio, così una macro può usare il lettore gratuito ovunque e il lettore IA sull'unico campo che conta.
4. Ripulisci e usa il risultato
total = read_text(region=(820, 400, 180, 40)).to_number()
if total < 1000:
notify("Total looks low: ${total}")
I metodi ripuliscono ciò che è stato restituito; .to_number() è quello che userai di più. Un'area senza testo salva una stringa vuota e l'esecuzione continua, quindi prova la condizione che scrivi sia con un'area vuota sia con un valore. Il pannello «Variabili» mostra ogni variabile in tempo reale durante un'esecuzione, ed è il modo più rapido per vedere che cosa ha restituito davvero il lettore.
5. Quando conviene chiedere all'IA
read_text trascrive. Per ragionare sullo schermo, usa ask_ai: «quante righe sono rosse?», «c'è una finestra di errore?». Tre ruoli: "count" restituisce un numero e dove si trova ciascuna cosa, così la macro può farci clic sopra; "explain" restituisce una frase per un registro o una notifica; "read" trascrive con il modello che hai scelto. Dagli un'area piccola per lo stesso motivo: un modello può contare le cose su tutto il desktop senza poi riuscire a localizzarle. Ogni chiamata consuma crediti e un'esecuzione è limitata a 60 chiamate all'IA. I dettagli sono nel manuale.
6. Sorveglia un testo mentre una macro è in esecuzione
Un passaggio legge una volta sola, dove lo metti. Una riga di sorveglianza impostata su «Chiedi all'IA» guarda per tutta l'esecuzione, oppure per conto suo dopo «Avvia sorveglianza», e scatta quando la risposta compare o scompare. Può mostrare una finestra a comparsa, mandare un messaggio su Telegram o Discord con uno screenshot, oppure fermare la macro. È così che vieni avvisato del banner «sessione scaduta» alle 3 di notte, senza un passaggio apposta in ogni ciclo.
7. Costi, piani ed esportazione
- La lettura del testo dallo schermo e ask_ai sono compresi nel piano Pro, che include anche 3.000 crediti al mese. I due lettori locali non consumano mai un credito.
- engine="ai", ask_ai e le righe di sorveglianza con l'IA consumano crediti e bloccano l'esportazione come programma. Una macro che legge con il lettore integrato o con Tesseract si esporta senza problemi, con il lettore dentro il file.
- Piani e pacchetti di crediti sono nella pagina dei prezzi.