Ждущий режим
От: XaKeP Россия  
Дата: 21.07.04 08:21
Оценка:
Как програмно перейти в ждущий режим (не спящий, а именно ждущий)?
Панки не умерли — они просто так пахнут...
Re: Ждущий режим
От: rus blood Россия  
Дата: 21.07.04 08:52
Оценка: :)
Здравствуйте, XaKeP, Вы писали:

XKP>Как програмно перейти в ждущий режим (не спящий, а именно ждущий)?


Ждущий чего?
Имею скафандр — готов путешествовать!
Re[2]: Ждущий режим
От: XaKeP Россия  
Дата: 22.07.04 07:30
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Ждущий чего?


Ползователя вестимо.
"Понижает энергопотребление... бла-бла-бла, что позволяет быстро возобновить сеанс работы."
Панки не умерли — они просто так пахнут...
Re[3]: Ждущий режим
От: rus blood Россия  
Дата: 22.07.04 07:50
Оценка:
Здравствуйте, XaKeP, Вы писали:

XKP>Ползователя вестимо.


Странный вопрос именно в win api.
Большинство gui-программ работают именно в таком ждущем режиме...
В чем конретно проблема?
Имею скафандр — готов путешествовать!
Re[3]: Ждущий режим
От: AlexBS Украина  
Дата: 22.07.04 07:55
Оценка: 4 (1)
Здравствуйте, XaKeP, Вы писали:


XKP>Здравствуйте, rus blood, Вы писали:


RB>>Ждущий чего?


XKP>Ползователя вестимо.

XKP>"Понижает энергопотребление... бла-бла-бла, что позволяет быстро возобновить сеанс работы."



typedef BOOLEAN (*PFNSETSUSPENDSTATE)(BOOLEAN, BOOLEAN, BOOLEAN);

BOOL SuspendComputer(BOOL bHibernate, BOOL bForce, BOOL bDisableWakeup)
{
    PFNSETSUSPENDSTATE pfnSetSuspendState;
    HINSTANCE hInstPowrProf;
    BOOLEAN bResult;
    OSVERSIONINFO osvi;
    osvi.dwOSVersionInfoSize = sizeof(osvi);
    GetVersionEx(&osvi);

#if 0
    if ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion == 0))
#else

    if (osvi.dwMajorVersion == 4)
#endif
    {
        if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
        {
            return FALSE;
        }

        return SetSystemPowerState (!bHibernate, bForce);
    }

    hInstPowrProf = LoadLibrary(TEXT("POWRPROF.DLL"));

    if (!hInstPowrProf)
    {
        return FALSE;
    }

    pfnSetSuspendState =
        (PFNSETSUSPENDSTATE)GetProcAddress(hInstPowrProf,
                                           "SetSuspendState");
    if (!pfnSetSuspendState) {
        FreeLibrary (hInstPowrProf);
        return FALSE;
    }


    bResult = pfnSetSuspendState((BOOLEAN)bHibernate, (BOOLEAN)bForce,
                                 (BOOLEAN) bDisableWakeup);

    FreeLibrary (hInstPowrProf);

    return (BOOL) bResult;
}
Re[4]: Ждущий режим
От: XaKeP Россия  
Дата: 22.07.04 08:03
Оценка:
Здравствуйте, AlexBS, Вы писали:


ABS>
ABS>typedef BOOLEAN (*PFNSETSUSPENDSTATE)(BOOLEAN, BOOLEAN, BOOLEAN);

ABS>BOOL SuspendComputer(BOOL bHibernate, BOOL bForce, BOOL bDisableWakeup)
ABS>{
ABS>    PFNSETSUSPENDSTATE pfnSetSuspendState;
ABS>    HINSTANCE hInstPowrProf;
ABS>    BOOLEAN bResult;
ABS>    OSVERSIONINFO osvi;
ABS>    osvi.dwOSVersionInfoSize = sizeof(osvi);
ABS>    GetVersionEx(&osvi);

ABS>#if 0
ABS>    if ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion == 0))
ABS>#else

ABS>    if (osvi.dwMajorVersion == 4)
ABS>#endif
ABS>    {
ABS>        if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
ABS>        {
ABS>            return FALSE;
ABS>        }

ABS>        return SetSystemPowerState (!bHibernate, bForce);
ABS>    }

ABS>    hInstPowrProf = LoadLibrary(TEXT("POWRPROF.DLL"));

ABS>    if (!hInstPowrProf)
ABS>    {
ABS>        return FALSE;
ABS>    }

ABS>    pfnSetSuspendState =
ABS>        (PFNSETSUSPENDSTATE)GetProcAddress(hInstPowrProf,
ABS>                                           "SetSuspendState");
ABS>    if (!pfnSetSuspendState) {
ABS>        FreeLibrary (hInstPowrProf);
ABS>        return FALSE;
ABS>    }


ABS>    bResult = pfnSetSuspendState((BOOLEAN)bHibernate, (BOOLEAN)bForce,
ABS>                                 (BOOLEAN) bDisableWakeup);

ABS>    FreeLibrary (hInstPowrProf);

ABS>    return (BOOL) bResult;
ABS>}
ABS>



Насколько я понимаю, это всё для спящего режима, а мне нужен ждущий.
Панки не умерли — они просто так пахнут...
Re[5]: Ждущий режим
От: AlexBS Украина  
Дата: 22.07.04 08:06
Оценка:
Здравствуйте, XaKeP, Вы писали:

XKP>Насколько я понимаю, это всё для спящего режима, а мне нужен ждущий.



SuspendComputer( FALSE, TRUE, FALSE );
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.