Vai al contenuto

WINDOWS 7 - Creare un collegamento sul desktop per lo Stand-by (Sospensione)


J-Gian

Messaggi Raccomandati:

Ho provato a disattivare l'ibernazione dalle configurazioni di risparmio energetico, ma non cambia nulla: da comando me lo iberna sempre! :-\

Invece procedendo dal pulsante presente nella barra di avvio, la scelta funziona regolarmente...

Se qualcuno riesce a fare un programmino glielo allego in questa pagina e lo facciamo girare, così diventa uno spot! :-D Infondo leggendo in giro pare esserci richiesta.

Link al commento
Condividi su altri Social

  • Risposte 20
  • Creato
  • Ultima Risposta

I più attivi nella discussione

I più attivi nella discussione

Ho provato pure io, il punto è che a me il comando "rundll32.exe powrprof.dll,SetSuspendState 0,1,0" non manda in sospensione, ma sempre in ibernazione... Anche quando questa è disattivata (via comando o via menù...).

Quindi impiega una decina di secondi buoni a riavviarsi...

Eppure da qualche parte ci deve essere, perché mediante il pulsante che avevo sulla tastiera riuscivo ad attivare la sospensione (ibrida o meno che fosse) ed a riaccendere il PC in secondi.

Che caspita sarà??? :gratta:

Link al commento
Condividi su altri Social

Ho provato pure io, il punto è che a me il comando "rundll32.exe powrprof.dll,SetSuspendState 0,1,0" non manda in sospensione, ma sempre in ibernazione... Anche quando questa è disattivata (via comando o via menù...).

Quindi impiega una decina di secondi buoni a riavviarsi...

Eppure da qualche parte ci deve essere, perché mediante il pulsante che avevo sulla tastiera riuscivo ad attivare la sospensione (ibrida o meno che fosse) ed a riaccendere il PC in secondi.

Che caspita sarà??? :gratta:

Il like è per l'avatar :idol:

Ho verificato e come avevo paventato nel primo post di risposta, la chiamata a SetSuspendState() via rundll32.exe non funzia per il semplice fatto che l'interfaccia che run32dll si aspetta non è compatibile con la signature di SetSuspendState().

Guarda qui:

INFO: Windows Rundll and Rundll32 Interface

Detto in altri termini, rundll32 vuole:



void CALLBACK EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

Tuttavia SetSuspendState() ha il seguente prototitpo:


BOOLEAN WINAPI SetSuspendState(
_In_ BOOLEAN Hibernate,
_In_ BOOLEAN ForceCritical,
_In_ BOOLEAN DisableWakeEvent
);

In pratica stai chiamando la funzione con spazzatura al posto dei giusti parametri.

Un programmino che faccia al caso tuo e usi i parametri che pensavi di usare nel primo post potrebbe essere questo:


#include <Windows.h>
#include <PowrProf.h>

#pragma comment(lib, "PowrProf.lib")

int main()
{
/* questo può essere migliorato, permettendo di scegliere fra Hybernate e Sleep con un parametro stabilito da linea di comando */
SetSuspendState(FALSE, TRUE, FALSE);
return 0;
}

Ovviamente il tutto è rigorosamente "untested".

Modificato da loric
copiaincollato la riga sbagliata

Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona".

Link al commento
Condividi su altri Social

Ragazzi questa discussione mi ha riportato indietro di 15 anni...quando programmavo ancora...

Non bisogna mai smettere di programmare, un giorno il mondo sarà degli informatici.

O almeno così si diceva ai tempi di questo:

Non ancora, non ho mai smanettato su programmi che poi siano veramente funzionali, il C l'ho usato solo su compilatori didattici.

In altre parole, non so neanche da che parte iniziare... :) Appena avrò un po' di tempo m'ingegnerò ;)

OK :)

Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona".

Link al commento
Condividi su altri Social

Ecchime.

Provato su PC con Windows 7. Funzia.

Questo è il sorgente per Visual C++ Express (applicazione console CLR).


// sleeper.cpp : file di progetto principale.

#include "stdafx.h"

#include <Windows.h>
#include <PowrProf.h>


#pragma comment(lib, "PowrProf.lib")

using namespace System;

int main(array<System::String ^> ^args)
{
SetSuspendState(FALSE, FALSE, FALSE);
return 0;
}

Visual C++ Express richiede un codice di registrazione dopo un dato periodo, ma detto codice è gratuito.

Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona".

Link al commento
Condividi su altri Social

Guest EC2277

Non esiste più la combinazione di tasti Alt+F4 che faceva apparire direttamente il menù di spengimento?

Link al commento
Condividi su altri Social

Crea un account o accedi per lasciare un commento

Devi essere iscritto per commentare e visualizzare le sezioni protette!

Crea un account

Iscriviti nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

×
×
  • Crea Nuovo...

 

Stiamo sperimentando dei banner pubblicitari a minima invasività: fai una prova e poi facci sapere come va!

Per accedere al forum, disabilita l'AdBlock per questo sito e poi clicca su accetta: ci sarai di grande aiuto! Grazie!

Se non sai come si fa, puoi pensarci più avanti, cliccando su "ci penso" per continuare temporaneamente a navigare. Periodicamente ricomparità questo avviso come promemoria.