Vai al contenuto

Creare un "do - when"


Xero

Messaggi raccomandati

Mi spiego meglio.

Ho creato un piccolo script (scritto in Applescript) che verifica la presenza di files in una cartella temporanea, e se la cartella è piena mi avvisa di ciò.

Vorrei sfruttarlo per essere avvisato, quando connetto l'HD esterno, se vi sono dei files da trasferire...infatti uso questa cartella come "buffer" temporaneo, che riempio finché non collego l'hard disk e quindi trasferisco.

Il tutto si riduce a lanciare l'applicazione quando collego l'hard disk.

Ho visto che tramite DOW (do something when, un pref pane) è possibile eseguire ciò, ma vorrei evitare di poggiarmi ad altri programmi.

Come dovrei procedere? Immagino serva un demone che monitora i dischi montati, e appena rileva quello giusto lancia lo script.

Ma il demone come potrei scriverlo? non credo sia nulla di semplice che un po' di Applescript o C++ ( a livelli elementari) possa risolvere...

Illuminatemi, anche se è difficile da fare, almeno vorrei conoscere la teoria :fiorellino:

«Learn all you can from the mistakes of others. You won't have time to make them all yourself» A. Sheinwold

Link al commento
Condividi su altri siti

con applescript (e molti altri linguaggi) puoi monitorare la presenza della periferica, ma a mio parere sarebbe uno spreco di processore notevole…

"Errore di configurazione di Windows: mouse e tastiera scollegati. Premere F1 per riavviare."

"Assimilation is futile: Microsoft delenda est!"

6/6/2005: è l'inizio della fine.

Home Page | multiXFinder | OpenArena | SuspendNow!

Link al commento
Condividi su altri siti

con applescript (e molti altri linguaggi) puoi monitorare la presenza della periferica, ma a mio parere sarebbe uno spreco di processore notevole…

Ti ringrazio, sullo spreco di risorse sarei d'accordo, non fosse che vi sono programmi che già eseguono operazioni simili (ad esempio quando collego il mouse logitech viene avviata l'utility che consente la gestione dei tasti multimediali) e non usano molte risorse.

In linea di massima come dovrei procedere? tentar non nuoce, se il processo diventa troppo esoso stop, finisce lì, ma la curiosità resta :ciao:

(va bene anche un link in qualsiasi lingua decifrabile [ita, eng, fra] )

«Learn all you can from the mistakes of others. You won't have time to make them all yourself» A. Sheinwold

Link al commento
Condividi su altri siti

Ti ringrazio, sullo spreco di risorse sarei d'accordo, non fosse che vi sono programmi che già eseguono operazioni simili (ad esempio quando collego il mouse logitech viene avviata l'utility che consente la gestione dei tasti multimediali) e non usano molte risorse.

Ma non sono scritti in applescript!

Usano gli eventi di sistema invece del "polling" (controllo continuo della presenza della periferica), non ho la minima idea di come implementare una cosa del genere in applescript, ammesso che sia possibile.

In linea di massima come dovrei procedere? tentar non nuoce, se il processo diventa troppo esoso stop, finisce lì, ma la curiosità resta :fiorellino:

(va bene anche un link in qualsiasi lingua decifrabile [ita, eng, fra] )

Controllando continuamente?

Io fare un'applicazione applescript studio che "on idle" controlla la presenza della periferica, ma continuo a rimanere del parere che sia una follia.

"Errore di configurazione di Windows: mouse e tastiera scollegati. Premere F1 per riavviare."

"Assimilation is futile: Microsoft delenda est!"

6/6/2005: è l'inizio della fine.

Home Page | multiXFinder | OpenArena | SuspendNow!

Link al commento
Condividi su altri siti

Aaah ok ora siamo d'accordo.

Credevo che in Applescript fosse possibile realizzare un programma che passivamente rilevi il collegamento della periferica senza eseguire un controllo continuo (eresia?). Se così non fosse ovviamente il programma sarebbe uno spreco di risorse.

Mentre per volersi poggiare sugli eventi di sistema quali linguaggi occorrerebbero?

«Learn all you can from the mistakes of others. You won't have time to make them all yourself» A. Sheinwold

Link al commento
Condividi su altri siti

Aaah ok ora siamo d'accordo.

Credevo che in Applescript fosse possibile realizzare un programma che passivamente rilevi il collegamento della periferica senza eseguire un controllo continuo (eresia?). Se così non fosse ovviamente il programma sarebbe uno spreco di risorse.

Da quel che ne so non è possibile, ma sarei più che lieto di sbagliarmi.

Mentre per volersi poggiare sugli eventi di sistema quali linguaggi occorrerebbero?

Temo di non avere le competenze necessarie per rispondere…:fiorellino:

Di certo lo puoi fare sia in cocoa (objective-c) che in carbon (c++, c o altro) che, penso, in java.

"Errore di configurazione di Windows: mouse e tastiera scollegati. Premere F1 per riavviare."

"Assimilation is futile: Microsoft delenda est!"

6/6/2005: è l'inizio della fine.

Home Page | multiXFinder | OpenArena | SuspendNow!

Link al commento
Condividi su altri siti

se fai uno script bash che verifica la presenza di nuovi volumi in /Volumes?

Non ciuccia tante risorse, perchè lo metti in sleep.

Se ad esempio vuoi controllare ogni minuto, esegui quelle 2 o 3 istruzioni bash poi metti in sleep il processo con:

sleep 60

"Chi ha giocato Del Duca-Samb non ha paura di niente" - Carlo Mazzone, da allenatore della Roma, prima di un derby contro la Lazio.

Link al commento
Condividi su altri siti

Perfetto ti ringrazio infinitamente per la disponibilità :ciao:
:rofl:
se fai uno script bash che verifica la presenza di nuovi volumi in /Volumes?

Non ciuccia tante risorse, perchè lo metti in sleep.

Se ad esempio vuoi controllare ogni minuto, esegui quelle 2 o 3 istruzioni bash poi metti in sleep il processo con:

sleep 60

questo lo fai tranquillamente anche in applescript (delay 2).

Ma ogni tot secondi controllerà.

"Errore di configurazione di Windows: mouse e tastiera scollegati. Premere F1 per riavviare."

"Assimilation is futile: Microsoft delenda est!"

6/6/2005: è l'inizio della fine.

Home Page | multiXFinder | OpenArena | SuspendNow!

Link al commento
Condividi su altri siti

beh, allora se non ci sono funzioni che evitano il busy waiting, mi sembra l'unica soluzione.

Poi, svolgere 3 istruzioni ogni 60 o 30 secondi non mi sembra eccessivo.

Stavo pensando ad un eventuale utilizzo della select, ma mi sembra impossibile. Se mi viene in mente qualcosa comunue lo scrivo

"Chi ha giocato Del Duca-Samb non ha paura di niente" - Carlo Mazzone, da allenatore della Roma, prima di un derby contro la Lazio.

Link al commento
Condividi su altri siti

beh, allora se non ci sono funzioni che evitano il busy waiting, mi sembra l'unica soluzione.

Integrate non ne conosco, ma programmi che ti permettono di eseguire del codice al collegamento di una periferica ne esistono eccome.

Poi, svolgere 3 istruzioni ogni 60 o 30 secondi non mi sembra eccessivo.

A me sì.

Stavo pensando ad un eventuale utilizzo della select, ma mi sembra impossibile. Se mi viene in mente qualcosa comunue lo scrivo

della "select" in che senso?

"Errore di configurazione di Windows: mouse e tastiera scollegati. Premere F1 per riavviare."

"Assimilation is futile: Microsoft delenda est!"

6/6/2005: è l'inizio della fine.

Home Page | multiXFinder | OpenArena | SuspendNow!

Link al commento
Condividi su altri siti

Integrate non ne conosco, ma programmi che ti permettono di eseguire del codice al collegamento di una periferica ne esistono eccome.

A me sì.

della "select" in che senso?

Parlo della syscall select, ma per il momento mi sembra una soluzione impraticabile. Forse perchè ancora sono le 11 e non ho acceso il cervello :fiorellino:

Vi faccio sapere...

"Chi ha giocato Del Duca-Samb non ha paura di niente" - Carlo Mazzone, da allenatore della Roma, prima di un derby contro la Lazio.

Link al commento
Condividi su altri siti

Capito. Non so se abbia effettivamente qualche vantaggio rispetto ad un polling sul punto di mount…

"Errore di configurazione di Windows: mouse e tastiera scollegati. Premere F1 per riavviare."

"Assimilation is futile: Microsoft delenda est!"

6/6/2005: è l'inizio della fine.

Home Page | multiXFinder | OpenArena | SuspendNow!

Link al commento
Condividi su altri siti

poll() e select() sono molto simili.

Entrambe evitano "spreco" di risorse.

Però mi sto chiedendo come utilizzarle.

E' possibile associare un file descriptor fisso ad un determinato sottoalbero del filesystem (in questo caso il device da montare)?

"Chi ha giocato Del Duca-Samb non ha paura di niente" - Carlo Mazzone, da allenatore della Roma, prima di un derby contro la Lazio.

Link al commento
Condividi su altri siti

Entrambe evitano "spreco" di risorse.

"evitano"? al limite "limitano", ma "evitano" non direi proprio…

E' possibile associare un file descriptor fisso ad un determinato sottoalbero del filesystem (in questo caso il device da montare)?

OS X non supporta le uuid, al momento, però probabilmente puoi ottenere qualcosa di utile da ioreg o persino da system_profiler.

"Errore di configurazione di Windows: mouse e tastiera scollegati. Premere F1 per riavviare."

"Assimilation is futile: Microsoft delenda est!"

6/6/2005: è l'inizio della fine.

Home Page | multiXFinder | OpenArena | SuspendNow!

Link al commento
Condividi su altri siti

Mi spiego meglio.

Ho creato un piccolo script (scritto in Applescript) che verifica la presenza di files in una cartella temporanea, e se la cartella è piena mi avvisa di ciò.

Vorrei sfruttarlo per essere avvisato, quando connetto l'HD esterno, se vi sono dei files da trasferire...infatti uso questa cartella come "buffer" temporaneo, che riempio finché non collego l'hard disk e quindi trasferisco.

Il tutto si riduce a lanciare l'applicazione quando collego l'hard disk.

Ho visto che tramite DOW (do something when, un pref pane) è possibile eseguire ciò, ma vorrei evitare di poggiarmi ad altri programmi.

Come dovrei procedere? Immagino serva un demone che monitora i dischi montati, e appena rileva quello giusto lancia lo script.

Ma il demone come potrei scriverlo? non credo sia nulla di semplice che un po' di Applescript o C++ ( a livelli elementari) possa risolvere...

Illuminatemi, anche se è difficile da fare, almeno vorrei conoscere la teoria :confused:

Programmatore fallito ahah

il mio flickr

Link al commento
Condividi su altri siti

Programmatore fallito ahah

Complimenti per l'utile commento.

"Errore di configurazione di Windows: mouse e tastiera scollegati. Premere F1 per riavviare."

"Assimilation is futile: Microsoft delenda est!"

6/6/2005: è l'inizio della fine.

Home Page | multiXFinder | OpenArena | SuspendNow!

Link al commento
Condividi su altri siti

Programmatore fallito ahah
Complimenti per l'utile commento.

Bravo Jack :confused: (cmq tranquillo, è un amico...almeno così ama essere definito :ciao:)

«Learn all you can from the mistakes of others. You won't have time to make them all yourself» A. Sheinwold

Link al commento
Condividi su altri siti

Bravo Jack :confused: (cmq tranquillo, è un amico...almeno così ama essere definito :devil:)

Capito.:ciao:

"Errore di configurazione di Windows: mouse e tastiera scollegati. Premere F1 per riavviare."

"Assimilation is futile: Microsoft delenda est!"

6/6/2005: è l'inizio della fine.

Home Page | multiXFinder | OpenArena | SuspendNow!

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...