Permalänk

Få hibernate event c# express

Hej allihopa,

har skrivit ett litet program på jobbet här och jag använder mig mycket av formclosing och formload för att göra vissa event. Problemet är att jag skulle även vilja göra det när de stänger igen sina laptops, med andra ord vill jag ha kunna få hibernate event? Skulle vara fint med ett wake up event också!

Har googlat runt lite men inte hittat något som verkade som det jag ville ha

Någon som har en aning?

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Hedersmedlem

Titta på
Microsoft.Win32.SystemEvents.PowerModeChanged
eller
Microsoft.Win32.SystemEvents.SessionSwitch

Permalänk
Citat:

Ursprungligen inskrivet av Elgot
Titta på
Microsoft.Win32.SystemEvents.PowerModeChanged
eller
Microsoft.Win32.SystemEvents.SessionSwitch

Guld värd supermånga tack

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk

Får det inte att funka, är det jag som är lite blind nu eller?:S

public event PowerModeChangedEventHandler PowerModeChanged; public event SessionSwitchEventHandler SessionChanged; private void Form1_Load(object sender, EventArgs e) { this.PowerModeChanged += new PowerModeChangedEventHandler(Form1_PowerModeChanged); this.SessionChanged += new SessionSwitchEventHandler(Form1_SessionChanged); }

Men funktionerna anropas inte? Har testat att låsa datorn men får inge svar

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KurreKula
Får det inte att funka, är det jag som är lite blind nu eller?:S

public event PowerModeChangedEventHandler PowerModeChanged; public event SessionSwitchEventHandler SessionChanged; private void Form1_Load(object sender, EventArgs e) { this.PowerModeChanged += new PowerModeChangedEventHandler(Form1_PowerModeChanged); this.SessionChanged += new SessionSwitchEventHandler(Form1_SessionChanged); }

Men funktionerna anropas inte? Har testat att låsa datorn men får inge svar

Är inte säker, men är det inte så att du har skapat egna events nu? Du måste själv anropa PowerModeChanged för att du ska få den händelsen?

Testa att istället skriva

Microsoft.Win32.SystemEvents.PowerModeChanged += new Microsoft.Win32.PowerModeChangedEventHandler(funktion);

Permalänk
Citat:

Ursprungligen inskrivet av tredora
Är inte säker, men är det inte så att du har skapat egna events nu? Du måste själv anropa PowerModeChanged för att du ska få den händelsen?

Testa att istället skriva

Microsoft.Win32.SystemEvents.PowerModeChanged += new Microsoft.Win32.PowerModeChangedEventHandler(funktion);

Kan testa det men tvivlar på att det ger en skillnad då jag har "using Microsoft.Win32;" :/

Använder mig av de inbyggda eventsen som finns i Microsoft.Win32, skriver inte eget

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Hedersmedlem

using System; using System.Windows.Forms; namespace systemevent { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Microsoft.Win32.SystemEvents.PowerModeChanged += new Microsoft.Win32.PowerModeChangedEventHandler(SystemEvents_PowerModeChanged); Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch); } void SystemEvents_SessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e) { textBox1.AppendText(e.ToString() + ": " + e.Reason + "\r\n"); } void SystemEvents_PowerModeChanged(object sender, Microsoft.Win32.PowerModeChangedEventArgs e) { textBox1.AppendText(e.ToString() + ": " + e.Mode.ToString() + "\r\n"); } } }

Ovanstående ger följande vid låsning och upplåsning:

Permalänk

Kan det vara dessa rader som förstor för mig?

public event PowerModeChangedEventHandler PowerModeChanged; public event SessionSwitchEventHandler SessionChanged;

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av KurreKula
Kan det vara dessa rader som förstor för mig?

public event PowerModeChangedEventHandler PowerModeChanged; public event SessionSwitchEventHandler SessionChanged;

Förmodligen.

Permalänk
Medlem

Ja, för där ser det ut som du definierar event variabeln själv. Det du skall göra är att adda dina eventhandlers till systemets eventvariabel (eller vad det nu heter). Jämför med Elgots += i Form1_Load i exemplet.

Fungerade det när du tog bord det?

Visa signatur

Crap.

Permalänk

Mjo, det funkar nu:)

Blev väl så att jag definierade att jag själv skulla bestämma när eventet gick igång?

Jag fick en Form1_SessionSwitched (nåt sånt) när jag gjorde själv men när jag tog bort de där raderna blev det:
SystemEvents_SessionSwitch så funkade det super

tack alla för hjälpen!

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Mmm, så blev det ja.
Kul att det funkar, de där eventsen skall jag lägga på minnet - kan vara bra att ha om man behöver reagera på att datorn stängs ned med hibernate.

Visa signatur

Crap.