Thema: 

Standby verhindern

Diskutiere Standby verhindern im Programmieren Forum im Bereich Windows Mobile 6.5 und älter; Hallo. Weiss jemand wie ich von meinen Programm aus verhindern kann, dass mein Pocket PC in den Standby-Modus geht? Ich

  1. #1

    Frage Standby verhindern

    Hallo.
    Weiss jemand wie ich von meinen Programm aus verhindern kann, dass mein Pocket PC in den Standby-Modus geht? Ich programmiere C# mit dem compact framework 3.5. Das Windows auf meinen Pocket PC ist Windows Mobile 6

    Dankbar für jeden Tip, Armin

  2. #2

    AW: Standby verhindern

    Hallo

    da sehe ich zwei Fälle:
    1) PPC geht automatisch nach x Minuten in den Standby
    2) der User drückt die Powertaste

    Um 1) zu verhindern könnte man mit einem Timer alle x Sekunden SystemIdleTimerReset() aufrufen.
    Bei 2) muss das Drücken der Taste abgefangen werden. Hier bin ich mir nicht sicher, ob das einfach und generell für verschiedene ppcs lösbar ist. Suche mal nach "intercepting hardware button" oder so!

    heliosdev

    P.S.: Der Akku wird an diesem Programm keine Freude haben!

  3. Die folgenden Benutzer danken heliosdev für diesen wertvollen Beitrag:

    yjeanrenaud (28.08.2008)

  4. #3

    AW: Standby verhindern

    Nun, es geht auch einfacher. Je nach dem, wie sehr sich der Hersteller an das DDK hällt, kannst du
    in HKLM\SYSTEM\CurrentControlSet\Control\Power den Wert BattPowerOff und/oder ExtPowerOff auf 0 setzen.
    andernfalls SystemIdleTimerReset() über P/Invoke verwenden und in regelmässigen Abständen aufrufen.

    Es gibt dazu auch ein sehr schönes, umfassendes Beispiel bei Codeguru: Windows Mobile Power Management:
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Win32;
    using Microsoft.Win32;
    
    namespace PreventSleep
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            // Look in the registry to see what the shortest timeout
            // period is. Note that Zero is a special value with respect
            // to timeouts. It indicates that a timeout will not occur.
            // As long as as SystemIdleTimeerReset is called on intervals
            // that are shorter than the smallest non-zero timeout value
            // then the device will not sleep from idleness. This does
            // not prevent the device from sleeping due to the power 
            // button being pressed. 
            int ShortestTimeoutInterval()
            {
                int retVal = 1000;
                RegistryKey key = Registry.LocalMachine.OpenSubKey(@"\SYSTEM\CurrentControlSet\Control\Power");
                object oBatteryTimeout = key.GetValue("BattPowerOff");
                object oACTimeOut = key.GetValue("ExtPowerOff");
                object oScreenPowerOff = key.GetValue("ScreenPowerOff");
    
                if (oBatteryTimeout is int)
                {
                    int v =  (int)oBatteryTimeout;
                    if(v>0)
                        retVal = Math.Min(retVal,v);
                 }
                if (oACTimeOut is int)
                {
                    int v = (int)oACTimeOut;
                    if(v>0)
                        retVal = Math.Min(retVal, v);
                 }
                if (oScreenPowerOff is int)
                {
                    int v = (int)oScreenPowerOff;
                    if(v>0)
                        retVal = Math.Min(retVal, v);
               }
    
                return retVal*9/10;
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                // Set the interval on our timer and start the
                // timer.  It will run for the duration of the
                // program
                int interval = ShortestTimeoutInterval();
                resetTimer.Interval = interval;
                resetTimer.Enabled = true;
            }
    
            private void miQuit_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
            // Call the SystemIdleTimerReset method to prevent the 
            // device from sleeping
            private void resetTimer_Tick(object sender, EventArgs e)
            {
                CoreDLL.SystemIdleTimerReset();
            }
        }
    }

  5. Die folgenden Benutzer danken yjeanrenaud für diesen wertvollen Beitrag:

    heliosdev (28.08.2008)

  6. #4

    AW: Standby verhindern

    Wo bekomm ich den die Core.dll her?
    Ich kann die nirgends finden.

  7. #5

    AW: Standby verhindern

    die heisst coredll.dll und ist teil von windows mobile, liegt im \windows-Verzeichnis.

Antworten
Du betrachtest Standby verhindern im Forum Programmieren im Bereich Windows Mobile 6.5 und älter von PocketPC.ch.

Standby verhindern

Ähnliche Themen

  1. Absturz im Standby
    Von mawim im Forum HTC Touch Diamond
    Antworten: 10
    Letzter Beitrag: 26.03.2009, 13:10
  2. Automatisches Tastatur aufklappen verhindern !
    Von Touch User im Forum HTC Touch Diamond
    Antworten: 8
    Letzter Beitrag: 22.11.2008, 17:55
  3. Automatischer Internetaufbau übers Mobilfunknetz verhindern
    Von Unregistriert im Forum HTC Touch Diamond
    Antworten: 4
    Letzter Beitrag: 24.07.2008, 10:55
  4. Gespräch beenden (Anrufflag verhindern)
    Von huefi2 im Forum HTC Touch
    Antworten: 1
    Letzter Beitrag: 23.02.2008, 15:30
  5. Antworten: 2
    Letzter Beitrag: 14.01.2005, 11:47

Besucher haben diese Seite mit folgenden Suchbegriffen gefunden:

c# standby verhindern

windows ce standby

winapi windows ruhezustand verhindern

c# aus standby aufwecken windows mobile

windows mobile 6 standby

c# ruhezustand verhindern

windows ce standby verhindern

c# energiesparmodus verhindern

windows mobile abschalten verhindernvb.net ruhezustand abfangenc# netcf stop standbyvb.net windows mobile tasten abfragenc standby verhindernwinapi ruhezustand verhindernwindows ce ruhezustandwindows mobile standby verhindernc# verhindern gerät standbyc# standby unterdrückenschlafmodus wm6 verhindernstandby .net c# preventavoid standby windows mobilewindows mobile sleep mode system idle reset buttonvb.net information sleep moduswindows mobile sleep modus verhindernpower taste abfangen mobile vb.net

Stichworte