Ich versuche, meinen PC aufzuwecken, falls er in den Schlafmodus geraten ist. Ich habe dieses Code-Snippet auf einer Website gefunden, aber die Messagebox, die ich am Ende hinzugefügt habe, kommt immer sofort zurück.WaitForSingleObject sofort signalisiert
Ich habe auch mein System für die Verwendung von Weckern in den Stromoptionen aktiviert.
[DllImport("kernel32.dll")]
public static extern IntPtr CreateWaitableTimer(IntPtr lpTimerAttributes,
bool bManualReset, string lpTimerName);
[DllImport("kernel32.dll")]
public static extern bool SetWaitableTimer(IntPtr hTimer, [In] ref long
pDueTime, int lPeriod, IntPtr pfnCompletionRoutine, IntPtr
lpArgToCompletionRoutine, bool fResume);
[DllImport("kernel32", SetLastError = true, ExactSpelling = true)]
public static extern Int32 WaitForSingleObject(IntPtr handle, uint
milliseconds);
static IntPtr handle;
private void SetWaitForWakeUpTime()
{
long duetime = 1200000000;
handle = CreateWaitableTimer(IntPtr.Zero, true, "MyWaitabletimer");
SetWaitableTimer(handle, ref duetime, 0, IntPtr.Zero, IntPtr.Zero, true);
uint INFINITE = 0xFFFFFFFF;
int ret = WaitForSingleObject(handle, INFINITE);
MessageBox.Show("wake up !");
}
und ich es so nennen:
private void buttonTest_Click(object sender, EventArgs e)
{
SetWaitForWakeUpTime();
}
Theoretisch sollte dies erst nach 2 Minuten signalisiert wird, nicht wahr? Warum wird es sofort signalisiert und wie korrigiere ich es?
Ihnen sehr danken. Warum sollte jemand einen positiven Wert brauchen? Wer braucht eine Zeit im Jahr 1600? Ich denke, ich verstehe die eigentliche Bedeutung der absoluten Zeit nicht ganz ... – Lesic