Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как программно отправить машину в Sleep????

3.7K
04 сентября 2003 года
0x333
15 / / 27.08.2003
Как программно отправить машину в Sleep????
831
05 сентября 2003 года
S_T
117 / / 23.10.2002
Цитата:
Originally posted by 0x333
Как программно отправить машину в Sleep????


Зайди сюда:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/power/base/power_management_functions.asp

Здесь тебе могут понадобиться функции
SetSuspendState
SetSystemPowerState

3
05 сентября 2003 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by 0x333
Как программно отправить машину в Sleep????



Я вижу, ты всех разбудил... :D

Смотря, что ты под этим понимаешь.
Если хочешь показать скринсервер, то смотри в MSDN
"How to Lock a Workstation from the Command Line", там это делается через
SendMessage(HWND_TOPMOST, WM_SYSCOMMAND, SC_SCREENSAVE, 0)

Если хочешь заниматься Power Managment-ом, то и смотри в MSDN "Power Management", а точнее метод SetSuspendState.

3.7K
05 сентября 2003 года
0x333
15 / / 27.08.2003
Хочу заниматься именно Power Managment-ом, делаю свой Desktop Manager, вот и захотелось на своем десктопе функцию Sleep, а то обидно есть и PowerOff и Reboot и LogOff...
3.7K
05 сентября 2003 года
0x333
15 / / 27.08.2003
При таком коде не компилиться, ругаеться на то что не может подлинковать Powrprof.lib ??????

// sleep.cpp : Defines the entry point for the application.
//
#pragma comment(lib,"Powrprof.lib")
#include "stdafx.h"
#include "sleep.h"
#include <Powrprof.h>
#define MAX_LOADSTRING 100

// Global Variables:
HINSTANCE hInst; // current instance
TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name

// Forward declarations of functions included in this code module:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{

SetSuspendState(0,1,0);
}
3
05 сентября 2003 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by 0x333
При таком коде не компилиться, ругаеться на то что не может подлинковать Powrprof.lib ??????

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



А она (.lib) у тебя есть?
Посмотри, может пути до неё не прописаны.

3.7K
05 сентября 2003 года
0x333
15 / / 27.08.2003
Цитата:
Originally posted by Green


А она (.lib) у тебя есть?
Посмотри, может пути до неё не прописаны.



Да проверял я, все нормально...
И в windir ложил и в папку с проектом... ничего не получилось...

3
05 сентября 2003 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by 0x333


Да проверял я, все нормально...
И в windir ложил и в папку с проектом... ничего не получилось...



Причем тут WinDir?
Нужен валидный путь до .lib
Он указывается либо в глобальных настройках VС, либо в настройках проекта.

3.7K
05 сентября 2003 года
0x333
15 / / 27.08.2003
Цитата:
Originally posted by Green


Причем тут WinDir?
Нужен валидный путь до .lib
Он указывается либо в глобальных настройках VС, либо в настройках проекта.



Строка Да проверял я, все нормально... означает, что я проверял настройки проэкта и настройки VC, все нормально, но компилить все равно не хочет...

3
05 сентября 2003 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by 0x333

Строка Да проверял я, все нормально... означает, что я проверял настройки проэкта и настройки VC, все нормально, но компилить все равно не хочет...



Вся проблема в том, что ты пытаешься компилировать и линковать .cpp файл, а надо .c
Как следствие неправильное расширенное имя функции.

Четыре варианта решения проблемы:
1. sleep.cpp переименовать в sleep.c;
2. подключать библиотеку динамически и получать имя метода: LoadLibrary, GetProcAddress;
3. дописать в powrprof.h в начало:

 
Код:
#ifdef __cplusplus
extern "C" {
#endif

и в конец
 
Код:
#ifdef __cplusplus
}  // extern "C"
#endif

4. самый простой: написать в sleep.cpp
 
Код:
extern "C" {
#include <Powrprof.h>
} // extern "C"


P.S. А вообще-то, проблемка с линкером плевая, думал, ты справишься...
3.7K
08 сентября 2003 года
0x333
15 / / 27.08.2003
Да проблема в том, что на данный момент мои задачи - это справляеться с проблемами в J2SE и J2EE, либо J2ME, а C++ - это хобби поэтому слишком долго копать времени нет...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог