Как программно отправить машину в Sleep????
Как программно отправить машину в Sleep????
Зайди сюда:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/power/base/power_management_functions.asp
Здесь тебе могут понадобиться функции
SetSuspendState
SetSystemPowerState
Как программно отправить машину в 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.
// 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);
}
При таком коде не компилиться, ругаеться на то что не может подлинковать Powrprof.lib ??????
#pragma comment(lib,"Powrprof.lib")
А она (.lib) у тебя есть?
Посмотри, может пути до неё не прописаны.
А она (.lib) у тебя есть?
Посмотри, может пути до неё не прописаны.
Да проверял я, все нормально...
И в windir ложил и в папку с проектом... ничего не получилось...
Да проверял я, все нормально...
И в windir ложил и в папку с проектом... ничего не получилось...
Причем тут WinDir?
Нужен валидный путь до .lib
Он указывается либо в глобальных настройках VС, либо в настройках проекта.
Причем тут WinDir?
Нужен валидный путь до .lib
Он указывается либо в глобальных настройках VС, либо в настройках проекта.
Строка Да проверял я, все нормально... означает, что я проверял настройки проэкта и настройки VC, все нормально, но компилить все равно не хочет...
Строка Да проверял я, все нормально... означает, что я проверял настройки проэкта и настройки VC, все нормально, но компилить все равно не хочет...
Вся проблема в том, что ты пытаешься компилировать и линковать .cpp файл, а надо .c
Как следствие неправильное расширенное имя функции.
Четыре варианта решения проблемы:
1. sleep.cpp переименовать в sleep.c;
2. подключать библиотеку динамически и получать имя метода: LoadLibrary, GetProcAddress;
3. дописать в powrprof.h в начало:
extern "C" {
#endif
и в конец
} // extern "C"
#endif
4. самый простой: написать в sleep.cpp
#include <Powrprof.h>
} // extern "C"
P.S. А вообще-то, проблемка с линкером плевая, думал, ты справишься...