Discussione:
Rientro dallo stato di power save on
(troppo vecchio per rispondere)
Daniele
2021-08-17 10:42:06 UTC
Permalink
Ciao a tutti,
c'e' un modo per sapere quando il pc rientra dallo stato di power save?
Situazione:
Programma che gira ... e sta riproducendo un file musicale, dopo 10
minuti entra lo spegnimento automatico del monitor che, evidentemente,
ferma la musica.
In qualche modo si esce dalla funzione di power save (tramite mouse e/o
tastiera), il monitor si riaccende ma la musica rimane spenta.

Con

procedure TForm1.AppEventMessage(var Msg: tagMSG; var Handled: Boolean);
begin
if (Msg.Message = WM_SYSCOMMAND) and (Msg.wParam = SC_MONITORPOWER) then
begin
// Monitor off ...
Sleep(5);
end;
end;

riesco ad intercettare il momento in cui si spegne lo schermo ....
Ma non riesco ad intercettare il momento in cui lo schermo si riaccende.

Qualche suggerimento ??

Grazie

Daniele
brunello
2021-08-17 15:07:29 UTC
Permalink
Post by Daniele
Ciao a tutti,
c'e' un modo per sapere quando il pc rientra dallo stato di power save?
Programma che gira ... e sta riproducendo un file musicale, dopo 10
minuti entra lo spegnimento automatico del monitor che, evidentemente,
ferma la musica.
penso che sia più corretto impedire al computer di entrare in power save quando sta riproducendo un file musicale, nelle librerie Jvcl c'era un componente TJvScreenSaveSuppressor, ciao Brunello
Alberto Salvati
2021-08-17 15:45:19 UTC
Permalink
Post by brunello
penso che sia più corretto impedire al computer di entrare in power save quando sta riproducendo un file musicale, nelle librerie Jvcl c'era un componente TJvScreenSaveSuppressor, ciao Brunello
No. un tuo programma non può e non deve mettere il naso sulle impostazioni di sistema stabilite dall'utente.
Se io da utente beccassi una cosa del genere inizierei ad urlare...
Decido IO le impostazioni di risparmio energetico e tu sviluppatore ti devi fare i cazzi tuoi, punto.

A.
Alberto Salvati
2021-08-17 15:45:13 UTC
Permalink
Post by Daniele
Programma che gira ... e sta riproducendo un file musicale, dopo 10
minuti entra lo spegnimento automatico del monitor che, evidentemente,
ferma la musica.
Cosa vuol dire "evidentemente"?
Post by Daniele
In qualche modo si esce dalla funzione di power save (tramite mouse e/o
tastiera), il monitor si riaccende ma la musica rimane spenta.
Hai fatto qualche ricerca? Trovato qualcosa? Se si cosa? Se no, cosa hai cercato?

A.
Daniele
2021-08-19 08:38:33 UTC
Permalink
Ciao Alberto,
il monitor in questione e' collegato al pc via HDMI.
Da quello che ho letto in rete, quando parte la disattivazione del
monitor se e' collegato via HDMI tutto quanto e' multimediale si ferma.

Ho cosi' ampliato la ricerca e, sebbene io concordo con te sul fatto di
non toccare le impostazioni che ha fatto l'utente, microsoft dice che in
caso di applicazioni di questo genere (multimediali tipo media player
ecc..) la strada da prendere e' proprio quella di bypassare questi
settaggi
(https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadexecutionstate).

Oltre al componente delle jvcl, ho trovato questa unit (magari a
qualcuno puo' servire)

https://delphidabbler.github.io/delphi-tips/tips/127.html

Ho due domande per te ....
1 - Sai come modificare questa unit in modo da avere una funzione che
ritorna il settaggio fatto dall'utente ?
2 - Senza toccare i settaggi dell'utente, come posso intercettare il
rientro dallo stato di "riapsrmio energetico" del monitor e riprendere
la musica da dove si e' fermata? (questo problema pare sia specifico per
i monitor hdmi)

Ti ringrazio per l'attenzione

Ciao
Daniele
brunello
2021-08-19 10:13:37 UTC
Permalink
Post by Daniele
1 - Sai come modificare questa unit in modo da avere una funzione che
ritorna il settaggio fatto dall'utente ?
se non ricordo male il componente delle jvcl non modifica nessun parametro impedisce solo il blocco del computer, ciao
brunello
2021-08-19 10:23:20 UTC
Permalink
se non ricordo male il componente delle jvcl non modifica nessun parametro impedisce solo il blocco del computer quando attivato, ciao
Daniele
2021-08-20 08:04:46 UTC
Permalink
Ciao Brunello,
Post by brunello
Post by Daniele
1 - Sai come modificare questa unit in modo da avere una funzione che
ritorna il settaggio fatto dall'utente ?
se non ricordo male il componente delle jvcl non modifica nessun parametro impedisce solo il blocco del computer, ciao
Questo componente evita che lo screen saver entri in funzione, ma non fa
nulla sulla disattivazione del monitor.
Inoltre ci sono delle differenze tra monitor hdmi e vga ..... In questi
casi le informazioni che ho trovato (molto poche) sono vaghe e driver
dipendenti (sempre che ho capito ben quello che c'era scritto !!)

Grazie per l'intresse

Ciao
Daniele
Alberto Salvati
2021-08-20 16:28:01 UTC
Permalink
Post by Daniele
Ciao Alberto,
il monitor in questione e' collegato al pc via HDMI.
Da quello che ho letto in rete, quando parte la disattivazione del
monitor se e' collegato via HDMI tutto quanto e' multimediale si ferma.
Se l'utente ha impostato le opzioni di risparmio energetico, ci sta.
Se vuole che le cose rimangano attive, sta a lui stesso modificare le impostazioni.
Post by Daniele
Ho cosi' ampliato la ricerca e, sebbene io concordo con te sul fatto di
non toccare le impostazioni che ha fatto l'utente, microsoft dice che in
Non lo dico "io"...è un fatto di logica e buon senso.
Post by Daniele
(https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadexecutionstate).
Sa tanto di workaround.
Inoltre questa cosa è pericolosa.
Se sei su un pc fisso, sei per forza connesso alle rete elettrica e le impostazioni di risparmio energetico sono relativamente utili.
Ma se sei un un notebook e metti un qualche bypass per aggirare le impostazioni di risparmio energetico cosa potrebbe succedere se la batteria va giù?
O meglio, se metti il bypass e il notebook fa casino, come dimostreresti all'utente che TU NON C'ENTRI.......?
Post by Daniele
1 - Sai come modificare questa unit in modo da avere una funzione che
ritorna il settaggio fatto dall'utente ?
No.
Post by Daniele
2 - Senza toccare i settaggi dell'utente, come posso intercettare il
rientro dallo stato di "riapsrmio energetico" del monitor e riprendere
la musica da dove si e' fermata? (questo problema pare sia specifico per
i monitor hdmi)
Tutto (o quasi) quello che noi sviluppatori possiamo fare su windows è dettagliato su MSDN.
Che sia delphi, c#, java, python o vb.net (puah!) passi, direttamente (delphi) o indirettamente da quanto descritto su MSDN.
Hai notato che il componente che hai condiviso (scritto alla cazzo, tra parentesi) non fa altro che chiamare una API di windows...?
Molti componenti delphi compresa la VCL fanno la stessa cosa.

Ergo, la risposta alla 1a domanda è "hai già cercato su MSDN?".
La risposta alla 2a domanda è "bho".

Secondo me, se l'utente attiva il risparmio energetico e gli si blocca la musica sul più bello, saranno problemi suoi.
Se vuole che la musica non si fermi basta disativare il risparmio energetico, punto.
Sbattersi su cose del genere per me è solo una perdita di tempo.

Nota..
Su android, allo spegnimento dello schermo la maggior parte delle cose si fermano.
Ovviamente (ma non per tutti) questa cosa su uno smartphone ha senso, visto che la maggior parte (non tutti) dei dispositivi in commercio hanno batterie che con uso massivo a stento durano una giornata.
Ma se tu hai una tua app che *DEVE* funzionare a prescindere, la tua app *DEVE* prevedere un qualcosa che ogni n unità di tempo, se lo schermo è spento dia "la sveglia" al device, gli faccia fare ciò che serve e poi lo rimetta a nanna.
Questa cosa può essere importante per le app INDUSTRIALI.
Se:
1) ci sono dati da inviare ASAP
2) la connettività non è subito disponibile
3) il device va in standby PRIMA che la connettività sia disponibile

i dati restano sul device, punto.
Un esempio lampante è Whatsup, che ti fa scrivere i msg a prescindere e poi appena può (aka, connettività disponibile...) li invia.
Immagina un app tipo whatsup che ti fa scrivere msg solo in presenza di connettività....


{$POLEMIC MODE ON}
Fermo restando che ci sono app che, in assenza di connettività, non possono funzionare, in tutti gli altri casi una app mobile, per quanto possibile, deve basarsi sull'ovvio (ma non per tutti) presupposto che la connettività NON E' SCONTATA.
{$POLEMIC MODE OFF}

A.
Daniele
2021-08-23 09:37:20 UTC
Permalink
Ciao Alberto,
come deto in precedenza ..... la penso come te.
L'approccio, che sa tanto di "aggiramento", funziona cosi' bene che ...
se per caso il sistema va in crash perdi pure le impostazioni
dell'utente e il risparmio energetico rimane disattivato.

Ergo, ho adottato un mio personalissimo "aggiramento":
Nel caso l'utente voglia sentire musica, si apre un bella finestra dove
chiede se vuole la continuita', quindi saltare il power managment, o meno.
Nel caso in cui lasci le impostazioni attive, un attimo prima di andare
in risparmio energetico sepngo tutto. Quando rientra ... se vuole
riparte con la musica.
Poco ortodosso .... !!!

Rispondendo anche a Mario: Ho trovato diversi post in giro in cui
tentavano di capire quando il sistema usciva dal risparmio energetico
intecettando la pressione di un tasto o il movimento del mouse.
Qui si entra in altre problematiche.

Come sempre,se vi viene in mente qualcosa di nuovo discutiamone !!

Sulle app, come sempre .... anche qui concordo con te !!

Grazie

Ciao
Daniele

MBulu
2021-08-21 15:10:40 UTC
Permalink
Post by Daniele
Ciao a tutti,
c'e' un modo per sapere quando il pc rientra dallo stato di power save?
Se non trovi altro, potresti provare ad "aggirare" il problema.
Praticamente, hai detto di riuscire a capire quando si spegne lo schermo,
quindi in quel momento puoi far partire un timer che ogni 5 secondi
verifica se è stato spostato il mouse o è stato premuto qualche tasto.
Se è così, fai ripartire la musica e fermi il timer.
Non è perfetto al 100%, perché qualcuno potrebbe

Ciao, Mario
Continua a leggere su narkive:
Loading...