あなたのBIOSは、高度な電源管理(APM)のバージョン1.2以降をサポートしている場合、タイマーに基づいてスリープ/スタンバイ]または休止状態から目を覚ますことが可能であるべきです。 Windowsでは、エンドユーザーがタスクスケジューラを使用してこれを行うことができます。プログラムで実行する場合は、Task Scheduler interfacesを使用できます。仮に
#include <mstask.h>
#include <time.h>
int main() {
HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr)) {
ITaskScheduler *scheduler;
hr = CoCreateInstance(CLSID_CTaskScheduler, NULL, CLSCTX_INPROC_SERVER, IID_ITaskScheduler, (void**)&scheduler);
if (SUCCEEDED(hr)) {
ITask *task;
hr = scheduler->NewWorkItem(L"Wake Timer", CLSID_CTask, IID_ITask, (LPUNKNOWN*)&task);
if (SUCCEEDED(hr)) {
WORD index;
ITaskTrigger *trigger;
hr = task->CreateTrigger(&index, &trigger);
if (SUCCEEDED(hr)) {
time_t t = time(NULL) + 120;
struct tm *ltime = localtime(&t);
TASK_TRIGGER triggertime;
memset(&triggertime, 0, sizeof(triggertime));
triggertime.cbTriggerSize = sizeof(TASK_TRIGGER);
triggertime.wBeginYear = ltime->tm_year+1900;
triggertime.wBeginMonth = ltime->tm_mon+1;
triggertime.wBeginDay = ltime->tm_mday;
triggertime.wStartHour = ltime->tm_hour;
triggertime.wStartMinute = ltime->tm_min;
triggertime.TriggerType = TASK_TIME_TRIGGER_ONCE;
trigger->SetTrigger(&triggertime);
trigger->Release();
}
task->SetFlags(TASK_FLAG_DELETE_WHEN_DONE|TASK_FLAG_SYSTEM_REQUIRED|TASK_FLAG_RUN_ONLY_IF_LOGGED_ON);
task->SetAccountInformation(L"", NULL);
IPersistFile *file;
hr = task->QueryInterface(IID_IPersistFile, (void**)&file);
if (SUCCEEDED(hr)) {
file->Save(NULL, TRUE);
file->Release();
}
task->Release();
}
scheduler->Release();
}
CoUninitialize();
}
return 0;
}
あなたの場合:
私はここでは、Javaを介してこれを行うだろうか知らないが、将来的に最大2分のコンピュータを復帰するタスクを作成するいくつかの例のCコードですWindowsでこれを行うことができますが、他のオペレーティングシステムには同等のAPIが必要です。
これには必ずLAN接続が必要です。 _a java program_がLAN接続なしでPCを起動できれば素晴らしいだろう。 – Apurv
多分私はここに何かを見逃していますが、理解しているように、あなたはオフになっているPCでソフトウェアを実行したいですか? –
はい...そのようなもの...同様に、私たちの携帯電話が自動的にオンになると、特定の時間にアラームが設定されている場合。 –