vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Windows API
Re: Mitteilung vom System falls PC aus Ruhezustand erweckt wird... 
Autor: ModeratorMartoeng (Moderator)
Datum: 06.12.04 20:07

Beispiel wofür genau?


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Mitteilung vom System falls PC aus Ruhezustand erweckt wird... 
Autor: Messiahs
Datum: 05.12.04 17:04

Hallo zusammen,

ich möchte gerne ein Programm starten, sobald der PC aus dem Hibernate / StandBy-Modus erweckt wird.

In script scheint es ja mit "Win32_PowerManagementEvent" zu gehen aber in vb ?

Ich bräuchte also irgendwie die Mitteilung vom System, das der PC aus dem Ruhezustand geweckt wurde... aber wie geht das ?

Bin für jeden Tipp dankbar & Gruss
Messiahs
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mitteilung vom System falls PC aus Ruhezustand erweckt wird... 
Autor: ModeratorMartoeng (Moderator)
Datum: 05.12.04 17:14

Hast Du mal in der MSDN geschaut, ob Windows nicht irgendeine Nachricht dabei verschickt? Wäre ich mir ziemlich sicher.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mitteilung vom System falls PC aus Ruhezustand erweckt wird... 
Autor: Messiahs
Datum: 05.12.04 17:44

guter Hinweis... hab da jetzt schon einiges gefunden. Danke !

Hat vielleicht jemand ein kurzes Beispiel ?

Gruss
Messiahs
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mitteilung vom System falls PC aus Ruhezustand erweckt wird... 
Autor: Messiahs
Datum: 07.12.04 00:51

Sowas wie 'Get resume event' ... ?

bzw. wie bring ich windows bei, das mein pgm. eine Message erhält, fallst das event eintritt...
sry, aber ich bin echt nooby in diesem bereich... hab noch nie mit event gearbeitet.

.... oder bin ich jetzt auf auf dem völlig falschen Pfad ?

Gruss
Messiahs
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mitteilung vom System falls PC aus Ruhezustand erweckt wird... 
Autor: ModeratorMartoeng (Moderator)
Datum: 07.12.04 12:53

get resume event sagt mir jetzt so nichts.
normal mit subclassing. falls es eine nachricht ist, die windows nicht automatisch an alle fenster schickt, dann musst du mit registerwindowmessage nachhelfen.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mitteilung vom System falls PC aus Ruhezustand erweckt wird... 
Autor: Messiahs
Datum: 08.12.04 16:39

Danke für deine Hilfe !

habs nun gefunden. Je nachdem was mach braucht, gibt es 2 Möglichkeiten.

1.)
AddHandler Microsoft.Win32.SystemEvents.PowerModeChanged, AddressOf OnPowerModeChanged
.
.

Private Sub OnPowerModeChanged(ByVal sender As Object, ByVal e As Microsoft.Win32.PowerModeChangedEventArgs)
If e.Mode = Microsoft.Win32.PowerModes.Resume Then
....
ElseIf e.Mode = Microsoft.Win32.PowerModes.Suspend Then
....
End If
End Sub
.
RemoveHandler Microsoft.Win32.SystemEvents.PowerModeChanged, AddressOf OnPowerModeChanged

oder 2.)
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Const WM_POWERBROADCAST As Integer = &H218

Const PBT_APMQUERYSUSPEND As Integer = &H0
Const PBT_APMQUERYSTANDBY As Integer = &H1
Const PBT_APMQUERYSUSPENDFAILED As Integer = &H2
Const PBT_APMQUERYSTANDBYFAILED As Integer = &H3
Const PBT_APMSUSPEND As Integer = &H4
Const PBT_APMSTANDBY As Integer = &H5
Const PBT_APMRESUMECRITICAL As Integer = &H6
Const PBT_APMRESUMESUSPEND As Integer = &H7
Const PBT_APMRESUMESTANDBY As Integer = &H8
Const PBT_APMBATTERYLOW As Integer = &H9
Const PBT_APMPOWERSTATUSCHANGE As Integer = &HA
Const PBT_APMOEMEVENT As Integer = &HB
Const PBT_APMRESUMEAUTOMATIC As Integer = &H12

If m.Msg = WM_POWERBROADCAST Then
If m.WParam.ToInt32 = PBT_APMRESUMESUSPEND Then
Console.WriteLine("manuell")

ElseIf m.WParam.ToInt32 = PBT_APMRESUMEAUTOMATIC Then
Console.WriteLine("auto")

End If
End If
MyBase.WndProc(m)
End Sub

Gruss
Messiahs
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel