Autor Beitrag
margul
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 27.05.08 20:15 
Hallo zusammen, ich lese hier schon eine Weile passiv mit, jetzt hab ich aber Mal ein konkretes Problem, dass ich so leider nirgends gefunden habe.

Ich schreibe gerade eine kleine Handheldappliaktion(sprich für .NET Compact Framework), die unter anderem darauf reagieren soll, wenn der HH in den Standby-Modus versetzt bzw. wieder zurückgeholt wird.

Das ich dabei die WindowMessage WM_POWERBROADCAST empfangen sollte, und dass das im Compact Framework am besten mit der Klasse WndProcHooker (msdn.microsoft.com/d...ms229658(VS.80).aspx)
geht, hab ich schon soweit rausgefunden, aber wie ich das ganze jetzt realisieren soll, ist mir noch nicht klar, vor allem wie ich die Messages empfange...

Hat da vielleicht jemand ein Code-Beispiel zum nachvollziehen, oder kann mich da jemand sonst irgendwie auf die richtige Spur bringen?
Oder hat jemand ganz eine andere Lösungsidee?

Ich bin für jeden Lösungsansatz dankbar
Viele Grüße
Markus
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 27.05.08 21:00 
Hallo und :welcome:!

Wenn Du nur eine Message abfangen willst, könnte das hier besser für Dich sein, insbesondere weil es explizit das Compact Framework im Auge hat: msdn.microsoft.com/e...ibrary/aa446525.aspx

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
margul Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 27.05.08 22:42 
Vielen Dank schon mal, das sieht auf jeden Fall etwas weniger umfangreich aus.
Ich muss zugeben, dass ich noch ein ziemlicher Anfänger bin, was C# und Programmieren allgemein betrifft, deswegen muss ich noch etwas weiter fragen:

Ich hab jetzt mal die vorgegebene MyMessageWindow-Klasse in mein Projekt eingebunden:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
class MyMessageWindow : MessageWindow
    {

        protected override void WndProc(ref Message msg)
        {

//Überprüfen, ob es sich um die WM_POWERBROADCAST-Message handelt
            if (msg.Msg == 536)
            {

//Überprüfen, ob der Handheld in den Standby-Modus versetzt wird
                if (Convert.ToInt32(msg.WParam)==acht)
                {
                    //Form1.reader.Disconnect();
                    MessageBox.Show("hallo");

                }
            }

            // call the base class WndProc for default message handling
            base.WndProc(ref msg);
        }
    }




Aber verstehe ich das jetzt richtig, dass ich die ganzen anderen in dem Beispiel vorkommen Icon-Klassen nicht brauche?
Und wie empfange ich jetzt in der Praxis meine Messages, muss ich die MyMessageWindow-Klasse irgendwie instanzieren oder wie funktioniert das genau?

Moderiert von user profile iconChristian S.: Highlight- durch C#-Tags ersetzt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 27.05.08 23:21 
Hm. Irgendwie glaube ich langsam, der Code war doch nicht so gut. :?

In der Doku zur MessageWindow-Klasse steht das hier:
Zitat:
You can receive only the Windows-based messages that you generate using MessageWindow or those with a native control.

Und auf den zweiten Blick wird in dem verlinkten Beispiel auch nur auf eine Message reagiert, die man selber erzeugt hat.

Ich bin ratlos :nixweiss:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".