PDA

View Full Version : un programma simile a instant boot di asrock esiste?


animabella
26-03-2015, 21:29
salve, ho potuto provare su molte schede madri asrock la funzione di instant boot, che funziona in viceversa alla normale ibernazione di windows. chiude il sistema, lo riavvia e lo mette in ibernazione una volta comparso il desktop.

vorrei sapere se siete a conoscenza di una applicazione simile per windows 7, visto che già per se, windows 8 è veloce di suo.

vorrei fare che invece di fare la chiusura di windows, avvio la funzione in questa applicazione, quindi mi riavvia il pc e mi carica windows, una volta dentro, automaticamente mi mette il pc in ibernazione, stop.

cosiché alla prossima accensione del pc ho già windows caricato pulito e subito pronto.

animabella
27-03-2015, 02:09
Ho cercato dappertutto ma non trovo nulla. A nessun programmatore è venuta questa mia idea. Adesso stavo pensando di creare uno script vbs o altro tipo di linguaggio dove inserire dei comandi.

x_Master_x
27-03-2015, 11:17
Instant Boot non un semplice programma ma installa anche dei driver proprietari. In ogni caso per come hai descritto quello che vuoi fare, non ci vorrà molto e puoi scriverlo da solo.
Un eseguibile ( o un VBS ) che ha almeno un parametro ( esempio /a tanto per dirne uno ) da linea di comando.

Se eseguito senza parametri:
1) Crea una nuova task che avvia l'eseguibile/script con parametro ( schtasks o interfaccia COM ) all'accesso dell'utente
2) Riavvia il PC

Se eseguito con paramentro /a
1) Elimina la task creata in precedenza, per evitare che ad ogni riavvio il PC esegua l'eseguibile/script
2) Iberna il PC

animabella
27-03-2015, 15:15
esatto, solo che io non so nulla di programmazione di script, ci vorrebbe qualcuno che lo sappia fare.

e stavo pensando una volta riavviato il pc ed entrato in windows di attendere automaticamente 60 secondi in modo da far caricare più programmi di escuzione automatica, driver e servizi in memoria possibile e poi eseguire l'ibernazione, perché l'entrata in windows con istantanea ibernazione mi sembra un pò frettolosa.

ho trovato questi comandi:
shutdown -s -t 0 per spegnere il PC,
shutdown -r -t 0 per riavviarlo.
Il valore del parametro -t corrisponde al numero di secondi da attendere prima di iniziare lo spegnimento.


interessante, da linea di comando cmd se lancio shutdown ci sono tutti i parametri incluso riavvio ed ibernazione, ci studio un pò.

x_Master_x
27-03-2015, 16:04
Non c'é bisogno di essere un esperto per fare quello script, sono sicuro che ci riuscirai da solo. Altrimenti per ogni dubbio esistono i motori di ricerca o puoi chiedere direttamente in questa discussione.

P.S. Visto il tuo grado di preparazione puoi anche fare due script separati, ti ho già illustrato come. Ricordati di guardare anche l'help di schtasks da CMD per creare/rimuovere una task.

animabella
27-03-2015, 16:15
io non so usare il vbs, solo il batch .bat, sono rimasto fermo al ms-dos :D

quindi lo script inserisce un task e poi riavvia il pc, riavviato il pc, windows esegue il task, il task non è altro che un altro scriptin cui c'è il comando di rimozione del precedente task ed esecuzione dell'ibernazione dopo tot secondi.

intanto lo creo in batch, poi vediamo come farlo in altro linguaggio.

animabella
27-03-2015, 20:25
ho lavorato un po sul batc ma sono ad un punto difficile, in pratica per avviare il primo script, il file batch richiede esecuzione da amministratore e quindi lo devo eseguire con tasto destro e mettere esegui come amministratore, il secondo script che lancia invece il task non funziona perché il task lo lancia senza amministratore e quindi non funziona, però npn voglio disabilitare l'UAC User Account Control. :cry:

primo file: Spegni.cmd
SCHTASKS /Create /TN QuickBoot /SC ONLOGON /DELAY 0001:00 /TR "C:\Users\Acer\Desktop\QuickBoot.cmd"
SHUTDOWN /R /F /T 0

secondo file: QuickBoot.cmd
SCHTASKS /Delete /TN QuickBoot /F

SHUTDOWN /H

edit...

tralascio runas, sono fuori strada, ma ho trovato qualcosa di buono qui http://www.hwupgrade.it/forum/showthread.php?t=1949697

x_Master_x
27-03-2015, 21:44
Non serve quella guida, crea la task che avvia QuickBoot.cmd come utente SYSTEM e con i privilegi elevati, nessun UAC o finestra.

animabella
27-03-2015, 21:49
Non serve quella guida, crea la task che avvia QuickBoot.cmd come utente SYSTEM e con i privilegi elevati, nessun UAC o finestra.

a questo ci stavo pensando proprio leggendo quella guida, sto vedendo i comandi da aggiungere a SCHTASKS.

ma il problema è eseguire il primo script Spegni.cmd, mi compare un errore di accesso negato, perché non è stato avviato con privilegio di amministratore, e io non lo voglio avviare come amministratore perché voglio saltare uac e farglielo fare senza avviso.

C:\Users\Acer\Desktop>PAUSE
Premere un tasto per continuare . . .

C:\Users\Acer\Desktop>SCHTASKS /Create /TN QuickBoot /SC ONLOGON /DELAY 0001:00
/TR "C:\Users\Acer\Desktop\QuickBoot.cmd" /ru acer
ERRORE: Accesso negato.

C:\Users\Acer\Desktop>pause
Premere un tasto per continuare . . .


stavo vedendo la guida la seconda parte riguardo il colegamento, che con un piccolo programmino si può saltare l'avviso uac http://www.hwupgrade.it/forum/showpost.php?p=39180051&postcount=94

edit

ho eseguito quel programmino e mi ha creato un collegamento con questa sintassi: C:\Windows\system32\schtasks.exe /run /tn elevated_Spegni_potkseDrecAsresUC

edit

ah... in pratica mi ha aggiunto un altro task, ora vedo di sistemarlo un pò.

animabella
27-03-2015, 22:44
:D :D :D

Evviva! Funziona!

Ecco qui

1. ho creato manualmente un task chiamato "QuickBoot pre-avvio", questo task è fisso e rimane sempre inserito ma mai eseguito automaticamente, gli ho dato privilegio elevato, e come azione solo di eseguire il programma "C:\Users\Acer\Desktop\QuickBoot 1.cmd"

2. ho creato un collegamento sul desktop con questa descrizione: C:\Windows\System32\schtasks.exe /run /tn "QuickBoot pre-avvio"

3. ho creato un file batch chiamato QuickBoot 1.cmd e dentro queste descrizioni:
SCHTASKS /Create /TN "QuickBoot avvio" /SC ONLOGON /DELAY 0001:00 /F /RL HIGHEST /TR "'C:\Users\Acer\Desktop\QuickBoot 2.cmd'"

SHUTDOWN /R /F /T 0

4. ho creato un altro file batch chiamato QuickBoot 2.cmd e dentro queste descrizioni:
SCHTASKS /Delete /TN "QuickBoot avvio" /F

SHUTDOWN /H

stop.

adesso se qualcuno mi può aiutare vorrei diminuire i passaggi ed avere meno file possibili, per adesso ho 1 file di collegamento e 2 file batch; stavo pensando di integrare il secondo file batch dentro il primo coi comandi goto, if e find, per cercare nel registro di sistema se è presente la chiave del task "QuickBoot avvio", cosi se non è presene, crea il task, se è presente passa alla seconda fase.

animabella
27-03-2015, 22:54
come tempi di avvio non siamo ai livelli di windows 8 però un grande passo è stato fatto cosi nel mio pc, vedo che ancora doveva caricare molte cose al risveglio, forse è meglio che porto a 2 o 3 minuti l'avvio dell'ibernazione.

però sto vedendo che cosi mi compaiono le finestrelle del terminale, devo vedere come nasconderle o al meno avviarle a icone.

edit

ho visto in giro dei convertitoti bat2exe con la possibilità di nascondere o ridurre a icona la finestra, ora vedo che trovo

edit, ho trovato un programma splendido, consente addirittura di nascondere la finestra, si avvia l'exe senza che compare nulla =) inoltre si può mettere la password per lanciarlo :stordita:

x_Master_x
28-03-2015, 10:37
Se proprio ci tieni:

' x_Master_x
Option Explicit
Dim objShell, sTaskName

sTaskName = "QuickBoot Avvio"
Set objShell = WScript.CreateObject("WScript.Shell")
If WScript.Arguments.Count = 0 Then
objShell.Run "SCHTASKS /Create /TN """ & sTaskName & """ /SC ONLOGON /DELAY 0003:00 /F /RL HIGHEST /TR """ & WScript.ScriptFullName & " -hibernate" & """", 0, True
objShell.Run "SHUTDOWN /R /F /T 0", 0, True
WScript.Quit
End If
If WScript.Arguments(0) = "-hibernate" Then
objShell.Run "SCHTASKS /Delete /TN """ & sTaskName & """ /F", 0, True
objShell.Run "SHUTDOWN /H", 0, True
WScript.Quit
End If


Una volta salvato il VBS, non devi fare altro che la task elevata senza prompt da lanciare con il collegamento allo script ( wscript.exe "X:\Percorso\File.vbs" )

Per il resto farà tutto il mio codice che ti invito a studiare ;)

animabella
28-03-2015, 21:09
devo fare un collegamento alla task come ho fatto per "2. ho creato un collegamento sul desktop con questa descrizione: C:\Windows\System32\schtasks.exe /run /tn "QuickBoot pre-avvio", giusto?

non lo capisco lo script, mi puoi spiegare?

' x_Master_x
Option Explicit
Dim objShell, sTaskName crea una shell in memoria con una valore che prenderà posto nella prossima riga

sTaskName = "QuickBoot Avvio" inserisce nella precdente shell il nome quickboot avvio
Set objShell = WScript.CreateObject("WScript.Shell") non capisco
If WScript.Arguments.Count = 0 Then se l'argomento è 0 allora passa alla riga successiva altrimenti salta alla prossima scelta, ma questo 0 chi lo comunica?
objShell.Run "SCHTASKS /Create /TN """ & sTaskName & """ /SC ONLOGON /DELAY 0003:00 /F /RL HIGHEST /TR """ & WScript.ScriptFullName & " -hibernate" & """", 0, True esegue il comando
objShell.Run "SHUTDOWN /R /F /T 0", 0, True esegue il secondo comando
WScript.Quit fine script
End If fine if
If WScript.Arguments(0) = "-hibernate" Then se l'argomento 0 ha il valore hibernate allora esegui la prossima riga, ma come prima chi gli da lo 0 e da dove lo prende?
objShell.Run "SCHTASKS /Delete /TN """ & sTaskName & """ /F", 0, True segue il comando
objShell.Run "SHUTDOWN /H", 0, True esegue il comando
WScript.Quit fine script
End If fine if

x_Master_x
29-03-2015, 19:59
Devo "spiegarti" un linguaggio di programmazione? :D
WScript e CreateObject sono le funzioni più usate e in riferimento alla seconda premette di espandere le funzionalità dello script, il comando Run viene dall'utilizzo di WScript.Shell, senza quella linea non sarebbe possibile avviare un programma. L'esempio base di WScript é WScript.Echo, una finestra di messaggio. Per quanto riguarda Arguments.Count riporta il numero di argomenti, quindi se il numero é zero vuol dire che lo script é stato lanciato senza nessun argomento, 1 con un argomento etc. Arguments(0) a differenza del numero riporta il nome del primo argomento, 1 é il secondo e così via. Da "dove viene" non mi é chiaro cosa significhi...viene da WScript.
Inutile che mi dilunghi, se ti interessa imparare milioni di guide ( anche di Microsoft ) ti aspettano.

animabella
29-03-2015, 22:54
Devo "spiegarti" un linguaggio di programmazione? :D
WScript e CreateObject sono le funzioni più usate e in riferimento alla seconda premette di espandere le funzionalità dello script, il comando Run viene dall'utilizzo di WScript.Shell, senza quella linea non sarebbe possibile avviare un programma. L'esempio base di WScript é WScript.Echo, una finestra di messaggio. Per quanto riguarda Arguments.Count riporta il numero di argomenti, quindi se il numero é zero vuol dire che lo script é stato lanciato senza nessun argomento, 1 con un argomento etc. Arguments(0) a differenza del numero riporta il nome del primo argomento, 1 é il secondo e così via. Da "dove viene" non mi é chiaro cosa significhi...viene da WScript.
Inutile che mi dilunghi, se ti interessa imparare milioni di guide ( anche di Microsoft ) ti aspettano.

grazie, ho capito, l'argomento viene dal primo run /TR """ & WScript.ScriptFullName & " -hibernate" & """", 0, True

animabella
29-03-2015, 22:56
Grazie, ho visto ora che crea la task col lancio dello script con l'argomento -hibernate