PDA

Visualizza versione completa : [windows xp]eseguire un programma dal pulsante chiudi sessione


xmatrix83
28-09-2006, 23.37.45
scusate vorrei eseguire un batch quando spingo il pulsante chiudi sessione, è possibile in qualche modo??

xmatrix83
29-09-2006, 00.03.50
in alternativa mi andrebbe bene fare in modo che lo script di fine sessione impostato su gpedit.msc mi faccia vedere il file batch lanciato

borgata
29-09-2006, 00.59.45
Start/esegui:
gpedit.msc

Si apre la finestra di gestione dei criteri di gruppo.

Ci si porta su Impostazioni Windows (sulla sinistra)
Sulla destra doppio click su Script (avvio/arresto)
Doppio click su Chiudi Sessione

E si aggiunge il file da eseguire.
Questo file deve essere messo nella cartella WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutd own
(si apre in automatico premendo il pulsante "visualizza file")

xmatrix83
29-09-2006, 02.55.18
si questo lo facevo, il problema è che lo script viene eseguito in background, a me invece servirebbe che si veda, è possibile'?

borgata
29-09-2006, 10.04.35
prova a mostrare il codice dello script

xmatrix83
29-09-2006, 16.47.13
in che senso a mostrare il codice dello script??
io faccio semplicemente lanciare un file batch che effettua un backup...

soltanto che in partica volevo fare un count down di 5 secondi per poter premere ctrl+c e bloccarlo

Ma visto che parte in background non funziona il ctrl+c

gsmet
01-10-2006, 02.51.17
soluzione veloce...

prova

start "" "<nomescriptqui>"

ficca questa riga in un altro script e fai richiamare il tuo script... vedi se così va... ma temo che siccome viene eseguito con account system non verrà mai visualizzato... :(

borgata
01-10-2006, 11.23.26
volevo vedere il codice per rendermi conto se c'era qualche cosa che non andava...
Guarda se gpedit consente l'esecuzione in foreground, in alternavita potrebbe essere un parametro del comando start (o exec, insomma, quello che usi per avviare l'aplicazione).

L'idea di gsmet comunque potrebbe funzionare.

gsmet
01-10-2006, 12.59.18
Un altra idea, ma non so se può funzionare è far partire un servizio. Se tu crei un serivizio con SrvAny o FireDaemon e gli dici che lo vuoi interattivo col desktop e nello script metti "net start <nomeserviziocreato>" sicuramente il srvizio verrà visualizzato a schermo.

xmatrix83
01-10-2006, 15.31.19
mmm bella idea
dopo ci provo

gsmet
01-10-2006, 15.44.31
Il problema sai cos'è... è che sei in fase di chiusura del sistema operativo e li non molte cose possono essere avviate...

xmatrix83
01-10-2006, 16.24.23
allora, facendo partire un primo batch cosi fatto:
start /wait c:\backup.bat
exit

funziona, il secondo batch me lo visualizza.
soltanto che cè un problema, io volevo che lo visualizasse per poterlo bloccare con il ctrl+c... cosi facendo purtroppo il primo batch non mi si chiude... e di conseguenza non si spegne il pc :)

Sapete come posso fare??

gsmet
01-10-2006, 16.36.26
Si, non devi scrivere

start /wait c:\backup.bat


ma

start "" c:\backup.bat


Riprova!

xmatrix83
01-10-2006, 16.49.53
è no, cosi non va bene, xche il primo si chiude immediatamente e si spegne il pc... devo farlo rimanere aperto tutto il tempo che il secondo sta aperto...

quindi ci vuole /wait, solo che se il secondo non lo termino va tutto bene, se lo termino anche il primo mi dice premere "s" per terminare, ma non posso premerlo xche è in background...

xmatrix83
01-10-2006, 17.34.09
mmmm possibile che non ci sia un modo per dare il consenso automatico per la terminazione del batch??

gsmet
01-10-2006, 18.23.02
si LOL


fai un file di testo con scritto dentro s e vai a capo

quindi richiama il batch così

nomescript.bat < nomefileditesto

:P

xmatrix83
01-10-2006, 21.48.52
grazie mille a tutti sono riuscito perfettamente a fare quello che intendevo fare :)!!!!

gsmet
01-10-2006, 23.29.27
Sei riuscito con l'ultimo che ho detto?!

xmatrix83
02-10-2006, 00.53.07
si si! grazie mille! pero' non capisco, quella risposta la prende in input ogni volta che gli serve?? posso metterne + di una sullo stesso file??

borgata
02-10-2006, 01.19.31
il comando suggeritoti praticamente dice di avviare il comando prendendo come parametri formali in input quelli contenuti nel file "nomefileditesto".
Se il comando accetta più parametri in input, puoi scriverli tutti all'interno del file.

gsmet
02-10-2006, 02.11.16
Non esattamente!

Il comando che ho fornito istruisce il batch a ricevere lo "standard input" da un file... non dalla tastiera :P

Il che vuol dire che mettiamo che il vostro batch faccia 100 domande...

Se voi fate un file di testo con 100 righe e un "a capo" e per ognuna delle 100 è una risposta corretta alla relativa domanda, il tutto funzionerà egregiamente se lo passate con l'operatore "<".

I parametri sono una cosa diversa, penso ti sia confuso.

borgata
02-10-2006, 10.46.54
hai perfettamente ragione, l'avevo buttata sui parametri perchè mi pareva più facile da capire, ma in effetti, era piuttosto incorretto.