Последние записи
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
14th
Фев
WaitableTimer, вывод компьютера из спящего режима
Мне посоветовали WaitableTimer для вывода компьютера из сна.
Сегодня дотянулись руки, решил глянуть, и реализовать. Полез в интернет за информацией. Нашёл два исходника для шарпа. Проверил каждый как в источнике — компьютер из сна не выходит.
Как я понимаю, гвоздь сегодняшней программы — последний параметр функции SetWaiableTimer — должен быть true, как я правильно понял ?
На основе этих двух исходников соорудил свой под собственные нужды.
using System;
using System.Threading;
using System.Runtime.InteropServices;
namespace Waitable
{
public class WaitableTimer
{
[DllImport("kernel32.dll")]
private static extern IntPtr CreateWaitableTimer(
IntPtr lpTimerAttributes,
bool bManualReset,
string lpTimerName);
[DllImport("kernel32.dll")]
private static extern bool SetWaitableTimer(
IntPtr hTimer,
[In] ref long pDueTime,
int lPeriod,
IntPtr pfnCompletionRoutine,
IntPtr lpArgToCompletionRoutine,
bool fResume);
[DllImport("kernel32", SetLastError = true, ExactSpelling = true)]
private static extern Int32 WaitForSingleObject(IntPtr handle, uint milliseconds);
private static IntPtr handle;
private static Thread mainwait; // давайте жить дружно
private static void SetWaitForWakeUpTime(object input)
{
long duetime=(long)input;
input=null;
handle=CreateWaitableTimer(IntPtr.Zero,true,"LOL_Bot_WaitableTimer");
SetWaitableTimer(handle,ref duetime,0,IntPtr.Zero,IntPtr.Zero,true);
uint INFINITE = 0xFFFFFFFF;
int ret=WaitForSingleObject(handle,INFINITE);
mainwait=null;
}
public static void SetWakeUp(TimeSpan delay)
{
mainwait=new Thread(WaitableTimer.SetWaitForWakeUpTime);
mainwait.Start(-delay.Ticks);
}
}
}
Из-вне вызывается оч просто: WaitableTimer.SetWakeUp(new TimeSpan(0,0,5,0,0));
Перевод в такты и отрицательная задержка делаются «на месте». Абсолютное время (положительная задержка) ещё не пробовал.
Что тут не так ? Как разбудить компьютер ?
17th
Авг
Отследить переход в спящий режим
Konstantin_ua
Есть программа, нужно что бы когда компьютер переходил в спящий режим она закрывалась или как можно отследить событие перехода в сон? Это вообще реально сделать? (читать всё…)
Облако меток
css реестр ассемблер timer SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid canvas поиск файл Pascal форма Файлы интернет Microsoft Office Excel excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)