Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
* Tasti funzione da file Batch
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
Marcusdj
Mortale devoto
Mortale devoto


Registrato: 13/09/06 11:17
Messaggi: 5

MessaggioInviato: 13 Set 2006 11:29    Oggetto: * Tasti funzione da file Batch Rispondi citando

Ho visto che in questo forum ci sono diversi esperti di file Batch, ne approfitto quindi per chiedervi un aiuto. E' possibile realizzare un file batch che simula i tasti F1-F12, nonchè le combinazioni di tasti Alt+F1 o Ctrl+N, etc...? In pratica vorrei realizzare un file Batch che simuli questi tasti senza doverli premere da tastiera. Vi ringrazio per l'aiuto che spero riuscirete a darmi...
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 17:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 13 Set 2006 14:43    Oggetto: Rispondi citando

cioè tu lanci un file batch e questo fa sì che sembri che tu abbia premuto F1 o F2 o Alt+F5 o Ctrl+N ?

1) Ma l'effetto di quei tasti dipende da in quale programma li consideri.
E come invii quella pressione "fittizia" di tasti ad un programma specifico?

Ma si tratta di un programam lanciato dallo stesso file batch (rindirizzando l'input) ?


2) In ogni caso, per lanciara un file batch, devi scrivere qulcosa (o premere una combianzione di tasti tipo appunto ctrl+G o clickare un'icona che sono stati associati a tale file batch)

A quel punto mi sa che fai prima a premere direttamente la combinazione richiesta


p.s.: a meno che tu non stessi chiedendo il contrario. Vuoi premere una combianzione ctrl+N che avvi unfile batch?
Top
Profilo Invia messaggio privato
Marcusdj
Mortale devoto
Mortale devoto


Registrato: 13/09/06 11:17
Messaggi: 5

MessaggioInviato: 13 Set 2006 16:23    Oggetto: Rispondi citando

Il file Batch dovrebbe essere realizzato in modo tale che, inizialmente aprisse un generico programma e poi ripetesse una serie di operazioni cicliche all'interno del programma stesso. Queste operazioni di cui parlo si realizzano proprio tramite la composizione di tasti...Alt+F5, o Ctrl+N.
In pratica se io dovessi compiere queste operazioni manualmente dovrei prima aprire il programma e poi ripetere una serie di operazioni, premendo i tasti Ctrl+N o Alt+F5...Quindi ciò che vorrei è rendere il tutto automatico!!! E' possibile?
Top
Profilo Invia messaggio privato
horus
Macchinista
Macchinista


Registrato: 22/03/05 09:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 13 Set 2006 16:27    Oggetto: Rispondi citando

Il problema credo che stia nel fatto che quando un programma simula una pressione di tasti lo fa nel suo contesto quindi non credo che tu possa comandare un secondo programma, molto meglio sarebbe passare dei parametri o simili.

Ovviamente posso essere smentito da chiunque in quanto non ho fatto nessuna prova prima di scrivere questo messaggio.
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 17:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 13 Set 2006 18:26    Oggetto: Rispondi citando

quindi tu vuoi automatizzare nontnato il file batch, ma l'esecuzione dei singoli programmi che dal file batch sono lanciati.

Questo però dipende dal singolo programma

Puoi ottenerlo usando le opzioni da mettere nella riga di comando (se il programm ne prevede di adatte) o altrimenti scelgiendo un altro programma che faccia l'operazione in automatico.


Faccio un esempio:

Se voglio concellare un file, posso aprire risorse del computer, arrivare alla cartella che contiene il file, selezonare il file, e cancellarlo con vari metodi (tasto destro sul file, elimina. Oppure menù file, elimina. Oppure trasinare il file sul cestino).
Ma questi metodi non sono automatizzabili (non tramite un file batch, perlomeno).

Conviene utilizzare un altro sistema, ad es. dal prompt dei comandi poi dare il comando
Codice:
del c:\esempio\prova.txt



Allo stesso modo si può fare un file batch contenente i seguenti comandi
Codice:
del c:\esempio\prova.txt
del c:\esempio\prova.jpg
del /q  c:\esempio2\*.*


notare che l'ultima riga cancella tutti ( *.* ) i file della directory ma lascia la directory. (avrei potuto scrivere c:\esempio2 ottenendo lo stesso risultato ) . In questo caso però il comando del chiederebbe conferma. Per far sì che non lo chiea, e quindi automatizzare totalmente ho aggiunto l'opzione /q.

A questo punto basta lanciare il file batch (puoi anche associarci un'icona in windows) e, senza dover inetrvenire manualmente, i 2 file nella directory esempio e tutti i file della directory esempio2 saranno cancellati.


Non so se il tuo caso sia analogo, e quindi la mia spiegazione ti possa servire,
spero perlomeno di aver chiarito come un file batch possa automatizzare.

Se nel tuo caso non è posisbile automatizzare col rogramma che usi, apri una discusisone nella sezione software generale (o, se esiste, un'altra più specifica ad. es. Grafica e fotografia digitale)
Top
Profilo Invia messaggio privato
Marcusdj
Mortale devoto
Mortale devoto


Registrato: 13/09/06 11:17
Messaggi: 5

MessaggioInviato: 13 Set 2006 19:29    Oggetto: Rispondi citando

Si credo di aver capito cosa intendi, ma il mio caso è differente. Non è molto facile da spiegare, ma proverò comunque a fornirti un esempio per chiarirti cosa intendo. Supponi di avere un programma di disegno (ad esempio Autocad). Quando lo apri, ti trovi la barra in alto composta dai vari menu a tendina: "File", "Modifica", "Visualizza", ecc...
Cliccando su ognuna di queste voci, ti si apre il menu a tendina e scorrendolo puoi scegliere una qualsiasi operazione. Un altro modo per aprire il menu a tendina (una volta che il programma è aperto) è premere una combinazione di tasti tipo: "Alt+F", "Alt+V", ecc...
Ciò che vorrei fare in automatico è aprire il programma di disegno, aprire il menu a tendina "Visualizza" (Alt+V) e scegliere un'operazione all'interno di questo menu...il tutto quindi tramite una file batch. Finora sono in grado di aprire il programma di disegno, però poi non so come agire sui menu a tendina del programma stesso.
Spero di essermi spiegato. Comunque grazie mille per il tuo aiuto...
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 17:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 13 Set 2006 19:50    Oggetto: Rispondi citando

Queste cose però le devi fare con degli automatismi (eventulmente) presenti nel singolo programma.
(ad es. so -per sentito dire- che Autocad ha delle funzioni dette macro, presumo simili concettulemnte alle macro di MS Office).

eventualmente puoi cambiare programma,
o affiancare un programma che faccia esclusivamente quella funzione (ad es. ruotare un'immagine e salvarla in un nuovo file)

Come dicevo, apri pure una discussione in una sezione adatta (Grafica e fotografia digitale, ad es.)


Inoltre protrebbe esserci un metodo di windows di automatizzare una sequanza di comandi (intesa come pressioni di tasti,click di muse, ecc.) ma non ne sono a conoscenza.
(ricordo che c'era in window 3.1 ma era molto limitato. Con le verisoni successive non c'ho mai fatto caso) Magari apri una discussione in merito nella sezione windows.
Top
Profilo Invia messaggio privato
Marcusdj
Mortale devoto
Mortale devoto


Registrato: 13/09/06 11:17
Messaggi: 5

MessaggioInviato: 13 Set 2006 20:02    Oggetto: Rispondi citando

Ok grazie mille per la collaborazione, proverò a seguire il tuo consiglio e aprire una discussione su un forum di grafica.
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11559
Residenza: Tokelau

MessaggioInviato: 21 Set 2006 09:49    Oggetto: Rispondi citando

... non l'ho provato di persona ma -se ho capito bene- questo programma potrebbe fare al caso tuo...
Top
Profilo Invia messaggio privato HomePage
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 16:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 21 Set 2006 23:06    Oggetto: Rispondi citando

A costo di sembrare monotono...

Codice:
 
' VB Script Document
option explicit

  dim WshShell

  set WshShell = WScript.CreateObject("WScript.Shell")
  WshShell.Run "calc"
  WScript.Sleep 100
  WshShell.AppActivate "Calcolatrice"
  WScript.Sleep 100
  WshShell.SendKeys "1{+}"
  WScript.Sleep 500
  WshShell.SendKeys "2"
  WScript.Sleep 500
  WshShell.SendKeys "~"
  WScript.Sleep 500
  WshShell.SendKeys "*3"
  WScript.Sleep 500
  WshShell.SendKeys "~"
  WScript.Sleep 2500


questo codice salvato in un file con estensione vbs:
chiama la calcolatrice ed esegue un'operazione.
I valori da assegnare a ciò che è racchiuso tra doppi apici dopo la WshShell.Senkeys possono essere :

Codice:

Tasto             Argomento
BACKSPACE         {BACKSPACE}, {BS} o {BKSP}
INTERR            {BREAK}
BLOC MAIUSC       {CAPSLOCK}
CANC o CANCELLA   {DELETE} o {DEL}
Freccia GIÙ       {DOWN}
FINE              {END}
INVIO             {INVIO} o ~
ESC               {ESC}
GUIDA             {HELP}
HOME              {HOME}
INS o INSERISCI   {INSERT} o {INS}
Freccia SINISTRA  {LEFT}
BLOC NUM          {NUMLOCK}
PGGIÙ             {PGDN}
PGSU              {PGUP}
STAMP             {PRTSC}
Freccia DESTRA    {RIGHT}
BLOC SCROLL       {SCROLLLOCK}
TAB               {TAB}
Freccia SU        {UP}
F1                {F1}
F2                {F2}
F3                {F3}
F4                {F4}
F5                {F5}
F6                {F6}
F7                {F7}
F8                {F8}
F9                {F9}
F10               {F10}
F11               {F11}
F12               {F12}
F13               {F13}
F14               {F14}
F15               {F15}
F16               {F16}

------------------------
Per inviare i caratteri da tastiera compresi
in una normale combinazione di tasti con MAIUSC, CTRL o ALT,
creare un argomento stringa composto che rappresenti la combinazione.
Eseguire questa operazione facendo precedere il tasto normale con uno
o più dei seguenti caratteri speciali:

Tasto     Carattere speciale
MAIUSC    +
CTRL      ^
ALT       %
------------------------


Si può trasformare il codice a piacimento, compreso il richiamo che deve effettuare; nell'esempio calc è un nome predefinito di Windows e "Calcolatrice" è l'intestazione del form.

Se la necessità è reiterare la pressione di alcuni tasti come F12, c'è da presupporre che il programma chiamato sia interattivo e che debba reagire
di conseguenza...
per esempio:

mio_programma, il cui form ha l'intestazione "myProgram"
ha la necessità di una pressione tripla di F12 (non so a cosa serva ma è un esempio)
le istruzioni da modificare sarebbero
Codice:

  WshShell.Run "unità:\cartella\mio_programma.exe"
  WScript.Sleep 100
  WshShell.AppActivate "myProgram"


per premere tre volte il tasto F12 sarà sufficiente inserire al punto voluto:
Codice:

dim n
for n = 1 to 3
    WshShell.SendKeys "{F12}"
    WScript.Sleep 500
next
Top
Profilo Invia messaggio privato
Marcusdj
Mortale devoto
Mortale devoto


Registrato: 13/09/06 11:17
Messaggi: 5

MessaggioInviato: 24 Set 2006 10:50    Oggetto: Rispondi citando

Vi ringrazio per i vostri preziosi consigli...mi sono stati molto di aiuto!!! siete mitici.
Top
Profilo Invia messaggio privato
anyfile
Semidio
Semidio


Registrato: 27/08/05 16:20
Messaggi: 408

MessaggioInviato: 11 Nov 2006 22:35    Oggetto: Rispondi

Un tempo, ai tempi di Windows 3.1, c'era un'apposito programma che si chiamava registratore. Facevi partire la registrazione e registrava cosa facevi con il mouse o con la tastiera, poi quando usavi la registrazione era come se avessi premuto quei tasti. (e anche i tasti funzione erano registrati).

Ora mi pare che questo programma non esista piu' (perche' ti dicono invece di usare le macro dentro Office ...)

Il punto però è che se tu devi fare qualcosa in automatico non dovresti lanciare un programma che richiede l'intervento dell'utilizzatore, ma dovrebbe essere il programma stesso a fare tutto.

Per fare un esempio se tu vuoi cancellare tutti i file piu' grossi di 1 MB in una cartella puoi aprire esplora risorse, selezionare la cartella, visualizzare i file, dicendo di farti vedere quanto e' grande un file e poi selezionare uno ad uno i file e cancellarli (qui ci sono diverse possibilita', puoi passarlo uno ad uno e scegliere a ognuno se cancellarlo o tenerlo, oppure passare uno ad uno i file scegliere se selezionarli o meno tenendo premuto il tasto CTRL e poi alla fin cancellarli tutti, oppure far ordinare la visualizzazione per dimensione, selezionalrli tutti assieme e cancellarli).

Ma questo non sarebbe un'automazzizione e il processo non potrebbe essere fatto in batch (cioe' non e' che registrando quello che fai in una direttory, poi puoi usare gli stessi tasti premuti per far la stessa cosa in un altra directory).

La soluzione e' utilizare un programma (o una funzione o un file-batch o qualsiasi altra cosa) che facci aesattamente quello che deve fare. cioe' il programma si deve occupare, nell'esempio precedente, di determinare lui quali sono i file da cancellare e cancellarli.

Ora il tuo probelma e' che devi operare su dei file prodotti da un programam di CAD. Ahime' questi file hanno in genere formati proprietari. Per questo e' difficile, se non impossibile, fare dei programmi che agiscano su questi file.

L'unica tua possibilita' e' che assieme all'eseguibile del programma ci siano altri eseguibili e che uno di questi faccia al caso tuo.

Ad esempio gimp oltre avere l'eseguibile gimp ha anche l'eseguibile gimp-remote che permette di passare dei comandi all'applicazione principale.

Oppure se ad sempio tu dovessi scaricare dei file in ftp (l'esempio e' un po' vecchiotto, c'e'e ancora gente che lo fa?) anziche' utilizzare un client ftp, dove poi bisogna scrivere a mano il nome dei file da scaricare, bisognerebbe utilizzare dei programmi per fare il downoload ftp in batch, con programmi tipo wget oppure ftpbatch o simili.

Oppure potrebbe essere che il programma disponga di una funzione per prendere l'input da un file. Nell'esempio di prima del trasferimento FTP ho trovato che il programma ftp (di non so quale verisone di windows) ha un'opzione per leggere i comandi da un file. testo della spiegazione dal sito della MS

Comunque morale di tutta la storia: NON usate formati proprietari ... non ci sarebbe bisogno di tutti questi pasticci ... (basterebbe fare un programma che faccio giusto quello che serve, senza dover aprire una pesante applicazione per poi poter far una cosa molto semplice)
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi