Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 o .NET o Quello Che Vi Pare - ACPI

Considerato che addirittura Google fallisce miseramente quando gli
chiedo informazioni di programmazione su questo argomento, mi aspetto
che in pochi rispondano a questa domanda. Forse nessuno.
Ma io la scrivo lo stesso :D
Avrei la necessità di ripristinare il computer dallo stato di Standby
o di Ibernazione. Ho letto di un certo Advanced Configuration and
Power Interface (appunto ACPI) che mi permetterebbe di farlo.
Solo che io non so da dove partire...
Se qualcuno potesse illuminarmi ne sarei mooooolto felice. Grazie!

 Se qualcuno potesse illuminarmi ne sarei mooooolto felice. Grazie!
Magari dico una stupidaggine, ma quando il pc è in quelli state, non c'è
software o servizio che giri.
Sarebbe quasi come chiedere di accendere un pc tramite programma.
E' una cosa hardware più che software. 
Al limite potrebbe essere possibile risvergliarlo tramite lan da un altro
pc, un po' come si può accendere (se il bios della scheda madre lo
prevede).
WakeOnLan e simili per capirci.

On 4 Feb, 18:03, "Andrea [Work]" <andrea.isworkDELET...@gmail.invalid>
wrote:

In realtà l'ACPI è una "cosa" per "parlare alla scheda madre". Perciò
non sarebbe direttamente il programma ad accendere il PC, ma lui
direbbe soltanto all'hardware di farlo. Una specie di operazione
pianificata.
Inoltre c'è un programma che già lo fa, si chiama WakeupOnStandBy,
proprio grazie a questo ACPI. Io l'ho provato, e sulla mia scheda
madre funziona alla perfezione. Risveglia sia dallo standby che
dall'ibernazione.
Ciao!

 pianificata.
Quello che non mi torna, è che mentre il pc è in uno stato praticamente
spento, i software non pensavo girassero.

 Invia il messaggio alle parti di basso livello del PC -> All'ora
prestabilita il PC si avvia perchè trova questo messaggio in coda.
E' come se andassi ad impostare manualmente sul BIOS l'opzione
WakeOnTime, solo che lo faccio tramite la mia applicazione, o meglio
ancora tramite queste ACPI che sono come delle API che il pc mette a
disposizione.
Ciao

 prestabilita il PC si avvia perchè trova questo messaggio in coda.
Ah, il messaggio naturalmente viene inviato a PC acceso


Addormentarlo
http://209.85.129.132/search?q=cache:KzgNQrnS-pYJ:www.c-sharpcorner.com/UploadFile/thiagu304/desktopfunctions02112007140806PM/desktopfunctions.aspx+dotnet+suspend+pc&hl=it&ct=clnk&cd=1&gl=it
http://tomyad.blogspot.com/
http://tomyad.blogspot.com/2008/08/standby-hibernate.html
e sopratutto
http://msdn.microsoft.com/en-us/library/system.windows.forms.application.setsuspendstate.aspx
per riattivarlo devi inviare un segnale WOL (se non hai disattivato
anche quei messaggi....quindi attenzione a come iberni o sospendi)
....a parte il timer come hai detto tu....
il pc riparte all'arrivo di una particolare chiamata ricevuta via lan
http://msdn.microsoft.com/en-us/library/bb968807(VS.85).aspx
a questo link c'è tutto il power management
in particolare
http://msdn.microsoft.com/en-us/library/aa373235(VS.85).aspx

 wrote:
e per non stare tanto ad impazzare
leggi questo
http://www.pcreview.co.uk/forums/thread-3406138.php
per costruire il "magic packet"
come consigliano
http://software.bootblock.co.uk/?id=wakeonlanex
oppure
http://www.depicus.com/wake-on-lan/wake-on-lan-gui.aspx
oppure
http://www.depicus.com/wake-on-lan/wake-on-lan-cmd.aspx
....una shell execute dal server e sei a posto!
bye man...
facci sapere come hai risolto!


wrote:
Sembrerebbe ottima la soluzione del SetWaitableTimer che ho letto
distrattamente in una delle *millemila* pagine che hai linkato!
Leggo un po' più attentamente e poi provo appena ho tempo...
Anche le altre pagine che riguardano il WakeOnLan penso che mi saranno
utili.
Grazie!

Maremma impestata, risolto!!!
Sei un grande!!
Questo è il codice 
VB.NET
 che ho scritto per intercettare il
risveglio:
Protected Overrides Sub WndProc(ByRef m As
System.Windows.Forms.Message)
   If m.Msg = &H218 Then 'WM_POWERBROADCAST
       If m.WParam = &H12 Then 'PBT_APMRESUMEAUTOMATIC
           Me.Text = Now
       End If
   End If
   MyBase.WndProc(m)
End Sub
Il resto del codice è un po' lungo, ma in sostanza usa principalmente
le API CreateWaitableTimer, OpenWaitableTimer, SetWaitableTimer,
ecc...
Ottimo, ottimo, ottimo!
Grazie mille, ciao!