View Full Version : Chiusura programmi a determinati orari


melomanu
23-05-2005, 13:23
Raga, nn so se la cosa sia possibile, ma vorrei capire se è possibile chiudere un programma che si ha in esecuzione, a determinati orari..
Mi spiego..
Supponiamo che imposti, tramite le operazioni pianificate, che all' avvio di windows vengano avviati vari programmi, e che imposti, sempre tramite o.p., la chiusura del pc in automatico ogni sera alle 21:00.
Visto che , in teoria, se ho un programma aperto e chiudo il pc senza prima chiudere il suddetto programma, potrei avere perdita dei dati o danneggiarli, mi chiedevo se è possibile creare un qualcosa che , impostando io gli avvenimenti, lui chiuda i programmi prima che si spenga il pc..

spero nn sia na cosa abominevole, premettendo anche che di script e compagnia bella nn ci capisco un tubo..

melomanu
23-05-2005, 21:48
raga nessuno sa come aiutarmi ??

posso credere che la cosa sia impossibile ?! :( :confused:

melomanu
24-05-2005, 10:05
up :(

sb3rla
24-05-2005, 11:19
ciao!

se cerchi su internet il programma AMPwinoff dovrebe risolvere i tuoi problemi...

puoi impostare l'ora di spegnimento del tuo PC,la chiusura della connessione e dei programmi in esecuzione prime dello shutdown ed anche la possibilità di fare uno screenshot prima della chiusura...
poi ci sono altre impostazioni molto interessanti...

lo trovi anche qui (http://www.ampsoft.net/utilities/WinOFF.php)

ciao!

melomanu
24-05-2005, 12:57
ciao !!! mitico ragazzo :D :D mi informo subito su questo software

:)

melomanu
24-05-2005, 13:13
mmm.. allora, ho dato un'occhiata a questo programma, ed è molto carino...
solo che non ho trovato alcuna voce che mi permetta di selezionare i programmi da chiudere prima dello shutdown..

ho visto solo una voce dove ti fa scegliere un programma da ESEGUIRE prima dello shutdown, ma non da CHIUDERE..

forse ho sbagliato io a leggere le opzioni... :confused: :confused:

melomanu
25-05-2005, 10:22
up :eek: :eek: :(

tonyrid
25-05-2005, 21:39
scarichi il tool kill.exe
http://www.ppedv.de/dwnld/kill.zip

dopo averlo scaricato lo estrai nella cartella di sistema "c:\windows"

lo puoi usare per chiudere applicazioni creando un batch che schedulerai ad un determinato orario da te scelto scivendoci:


esempio: (per chiudere acrobat reader)

kill acrord32.exe

i nomi dei processi li vedi dal task manager
ciao :)

melomanu
26-05-2005, 14:54
non ho capito come si usi questo kill :confused: :confused:

Manp
26-05-2005, 14:56
scarichi il tool kill.exe
http://www.ppedv.de/dwnld/kill.zip

dopo averlo scaricato lo estrai nella cartella di sistema "c:\windows"

lo puoi usare per chiudere applicazioni creando un batch che schedulerai ad un determinato orario da te scelto scivendoci:


esempio: (per chiudere acrobat reader)

kill acrord32.exe

i nomi dei processi li vedi dal task manager
ciao :)

forse non tutti sanno che esiste il comando taskkill sotto windows :p

:)

Manp
26-05-2005, 15:06
prova così:

Pannello di Controllo -> Operazioni pianificate

tasto destro nella cartella Operazioni pianificate -> Nuovo -> dai un nome alla nuova operazione -> tasto destro sulla stessa -> Proprietà

in Esegui scrivi:

taskkill /im notepad.exe /f

e in Pianificazione metti le impostazioni che ti servono... a questo punto se l'exe che hai specificato (al posto di notepad.exe metti quello che voui) è attivo verrà terminato all'ora che hai specificato... altrimenti nn succede nulla...

sinceramente non credo sia il modo migliore, perchè killare un applicazione non è proprio uguale a chiuderla e quindi potrebbe crearti problemi... ma sinceramente non mi viene in mente un altro modo per farlo

:)

melomanu
26-05-2005, 18:45
mmmm... in effetti, sembra "bruta" come soluzione, anche xè ripeto il mio obiettivo era di chiudere un programma senza magari compromettere dati o altro... posso credere che in effetti non esista un metodo per creare questo tipo di operazione pianificata ?

ad esempio, se nn sbaglio in alcuni software per l'encoding, esistono delle opzioni del tipo " spegni pc al termine" oppure " chiudi programma al termine dell'encoding "..

:confused:

Manp
26-05-2005, 18:48
bhe, l'opzione all'interno del programma è un una cavolata per i programmatori...

cmq non mi viene in mente nulla così su due piedi, anche perchè non ci ho mai pensato prima :stordita:

:)

melomanu
27-05-2005, 09:45
uufff.... forza ragazzi troviamo una soluzione.. a sto punto, che entrino in campo i programmers :sofico:

Manp
27-05-2005, 16:23
per farlo si può fare... ci sono un paio di modi per farlo con uno script visual basic...

il più semplice che mi viene in mente è mandare una combinazione di tasti (tipo ALT+F4) all'applicazione, ma se son programmi che ti chiedono di salvare e tu una volta vuoi farlo e un altra no?

c'è anche un altro modo più "fine" ma credo non funzionerebbe con tutti i programmi

:)

melomanu
27-05-2005, 16:57
per cui se ho ben capito, si potrebbe creare uno scriètino ( sono ignorante al massimo su ste cose, dovresti quindi suggerirmi un qualcosa da leggere per crearlo ) affinchè possa chiudere un programma secondo le mie esigenze ?...

porto ad esempio il caso di client p2p, tipo emule o dc++, o software tipo outlook: se mentre scarichi un file, o la posta, ti si chiude il pc senza chiudere il programma, i download se ne vanno a farsi friggere, e si potrebbero perdere email ( una volta ho perso 3 email in download xè manco la luce -_- )..

impostando ad esempio la chiusura di emule, o outlook, ad un certo orario, potrei spegnere in automatico il pc 5 minuti dopo, senza perdere nulla...

è possibile secondo voi ??

:confused:

Manp
27-05-2005, 17:01
se è solo per emule, spegnendo il pc non succede niente

:)

Manp
27-05-2005, 17:39
lo scriptino (in vbs) potrebbe essere una cosa così:

Set WshShell = WScript.CreateObject("WScript.Shell")

Set WMI = GetObject("winmgmts:\\.\root\cimv2")
Set Apps = WMI.ExecQuery("SELECT * from Win32_Process WHERE Name='notepad.exe'")

For Each Process in Apps
WshShell.AppActivate(Process.Handle)
WScript.Sleep 1000
WshShell.SendKeys("%{F4}")
Next

questo chiude tutte le istanze di notepad aperte ad esempio... però se il notepad chiede di salvare si ferma, ovviamente andrebbe modificato ma l'idea c'è

se è solo per emule basterebbe una cosa così:

Set WMI = GetObject("winmgmts:\\.\root\cimv2")
Set Apps = WMI.ExecQuery("SELECT * from Win32_Process WHERE Name='emule.exe'")

For Each Process in Apps
WshShell.AppActivate(Process.Handle)
WScript.Sleep 1000
WshShell.SendKeys("%{F4}")
Next

ho messo una pausa di 1 secondo tra un comando e l'altro ma credo basterebbe anche meno, è per essere sicuro che vada

:)

Manp
27-05-2005, 17:50
se un programma ti chiede qualcosa prima di uscire (tipo una richiesta conferma) basta aggiungere comandi del tipo

WshShell.SendKeys("{LEFT}")
WshShell.SendKeys("{RIGHT}")
per spostarsi tra i tasti (sì/no ad esempio) e
WshShell.SendKeys("~")
per dare invio, ognuno preceduto da uno
WScript.Sleep 1000
per sicurezza

non è molto elegante ma funziona

se invece le finestre possono aprirsi o no (come per una richiesta di salvataggio in caso di modifiche) bisogna lavorarci un pochino di più

:)

melomanu
27-05-2005, 19:02
azzarola , ho dovuto rileggere 5 volte quelle righe di codice per capire cosa significassero :eek: :sofico: ... cmq, se ho ben capito, con quel tipo di scriptino potrei chiudere delle applicazioni, anche se mi chiedono la conferma di uscita, esatto?...

così facendo, non dovrei rovinare nulla a livello dati..

:confused:

Manp
27-05-2005, 19:22
in toeria sì... ma solo se ti chiedono una conferma che è sempre uguale

in poche parole devi far fare allo script passo passo quello che faresti tu con la tastiera, se c'è un menu tipo "Uscire Sì/No" e il tasto selezionato di default è "No" ti devi spostare a dx o sx con i tasti freccia su "Sì" e poi premere Invio... inviandogli questi comandi uno a uno (con in mezzo il solito sleep per sicurezza)

negli altri casi invece tu non puoi sapere a prescindere se ti chiederà di salvare un documento modificato (dovresti sapere a priori mentre scrivi lo script se in effetti il documento è stato modificato o meno) e quindi lo script va modificato un po'

copiali in un "file.vbs", fai le tue prove e vedi se fanno al caso tuo, poi oh è solo una cosetta fatta alla veloce :p

:)

zetolo
11-02-2009, 01:48
Per chi dovesse avere la necessità questo è lo script completo per emule.. testato e funzionante..
va ricopiato in un file .txt rinominato in .vbs e poi richiamato con la pianificazione

Set WshShell = WScript.CreateObject("WScript.Shell")
Set WMI = GetObject("winmgmts:\\.\root\cimv2")
Set Apps = WMI.ExecQuery("SELECT * from Win32_Process WHERE Name='eMule_AdnzA.exe'")

For Each Process in Apps
WshShell.AppActivate(Process.Handle)
WScript.Sleep 1000
WshShell.SendKeys("%{F4}")
WScript.Sleep 1000
WshShell.SendKeys("{LEFT}")
WScript.Sleep 1000
WshShell.SendKeys("~")

Next

W_o_M
05-09-2010, 14:28
Per chi dovesse avere la necessità questo è lo script completo per emule.. testato e funzionante..
va ricopiato in un file .txt rinominato in .vbs e poi richiamato con la pianificazione

Set WshShell = WScript.CreateObject("WScript.Shell")
Set WMI = GetObject("winmgmts:\\.\root\cimv2")
Set Apps = WMI.ExecQuery("SELECT * from Win32_Process WHERE Name='eMule.exe'")

For Each Process in Apps
WshShell.AppActivate(Process.Handle)
WScript.Sleep 1000
WshShell.SendKeys("%{F4}")
WScript.Sleep 1000
WshShell.SendKeys("{LEFT}")
WScript.Sleep 1000
WshShell.SendKeys("~")

NextHo un problema in Win XP: questo script funziona bene se emule è aperto in finestra o minimizzato sulla barra delle applicazioni; se invece emule è minimizzato nella icin tray, invece di chiudere emule, mi si apre la finestrella con i pulsanti sospensione/standby/spegnimento/riavvio e parte lo spegnimento (suppongo a causa della funzione F4).
E' possibile sistemarlo per farlo funzionare anche con emule nella icon tray ?
Grazie

zetolo
06-09-2010, 03:54
Come hai intuito lo script non fa altro che dare alt+f4 e l'ok dopo 1000 secondi al processo ATTIVO di nuome emule.exe.
Non sono molto bravo con il visual basic però credo che anzichè googlare e cercare istruzioni che chiudano il processo da background (terminazione a mio avviso impropria perchè rischia di danneggiare i file che scarichi) credo sia più semplice lasciare emule aperto e non minimizzarlo nell'icon tray.
Killare bruscamente un processo può comportare delle perdite di informazioni se le aree di memoria non si svuotano in tempo dopo aver salvato il tutto sul disco..
Non voglio farti una lezione di sistemi operativi ma sappi che è meglio se chiudi emule con la [X] in alto a destra :P ..talvolta per killare da taskmanager il processo mi sono trovato file anche di diversi giga corrotti e ho dovuto riscaricare tutto quanto da capo :muro:

W_o_M
08-09-2010, 10:42
Ciao. Grazie per la risposta, ho compreso e mi trovo d'accordo. Il mio problema è semplicemente che, se emule è minimizzato nella icon tray, il comando f4 non agisce sul processo emule.exe, ma funziona come se facessi alt+f4 sul desktop, aprendo la finestra di spegnimento, confermandolo automaticamente per via del comando successivo. Quello che non capisco è perché ciò accade, dato che nello script è indicato che i comandi devono agire sul processo emule.exe.

sergran2
30-08-2012, 18:52
Ciao a tutti, mi aggiungo a questa discussione perchè pure a me interessa molto questo argomento. In pratuica io non ho bisong che si chiudano i programmi ad una determinata ora, bensì che quando chiudo windows tramite un file bat mi venga chiusi dei programmi e nel caso serva, salvati i documenti.
NOn ho ben capito come funziona la soluzione che avete consigliato prima.. purtroppo pure io sono "0" di programmazione
Grazie

Khronos
30-08-2012, 22:11
Ciao a tutti, mi aggiungo a questa discussione perchè pure a me interessa molto questo argomento. In pratuica io non ho bisong che si chiudano i programmi ad una determinata ora, bensì che quando chiudo windows tramite un file bat mi venga chiusi dei programmi e nel caso serva, salvati i documenti.
NOn ho ben capito come funziona la soluzione che avete consigliato prima.. purtroppo pure io sono "0" di programmazione
Grazie

"dei" programmi è troppo generico.
elenca programmi e modalità d'uso di essi.

secondo me, fai MOOLTO prima (e facevano anche prima gli utenti qui sopra) a considerare la semplicissima IBERNAZIONE (sotto XP chiamata SOSPENSIONE), che salva lo stato del pc di quel momento, e spegne totalmente. alla riaccensione, ricarica lo stato del pc com'era prima.