INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

automatisch Standby od. Ruhezustand und wieder aufwachen?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.09.2009, 20:28 (Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2009 20:32 von rolfk.)
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
automatisch Standby od. Ruhezustand und wieder aufwachen?
Kompliziert würde ich diese zwei VIs nicht gerade nennen. FindWindowA.vi schwirrt schon im Netz rum seit etwa LabVIEW 4 und macht nichts anderes als eine einfache Windows API Funktion aufrufen. Dazu kannst Du Dich schlauer machen bei MDSN msdn.microsoft.com. Dort sind alle öffentlichen Windows APIs mehr oder weniger ausführlich dokumentiert.

Um das zu machen was SuspendandResume.vi macht gibt es wohl keine einfachere Methode. Was mir bei dem VI auffällt ist eine etwas magere Fehlerbehandlung.

1) CreateWaitableTimer() kann fehlschlagen und gibt dann ein NULL Handle zurück.
2) SetWaitableTimer() gibt im Erfolgsfall ein Zahl ungleich 0 zurück. Das ist meistens 1 aber MSDN sagt nichts darüber sondern sagt einfach bei Erfolg kommt etwas anderes als 0 und im Fehlerfall dann eben halt 0. Die Case Struktur macht das nicht ganz korrekt (funktioniert aber solange nichts schief geht).
3) Das Handle das CreateWaitableTimer() zurückgibt sollte eigentlich am Ende mit CloseHandle() geschlossen werden. Aber das ist hier keine grosse Katastrophe da das Objekt bei CreateWaitableTimer() mit einem Namen geöffnet wird. Das heisst bei erneuten Ausführen dieses VIs wird Windows das bereits erzeugte und noch nicht geschlossene Timerobjekt mit dem Namen "Timer" wiederverwenden, also nicht ein neues Objekt erzeugen, was ein Speicherleck verursachen würde. Aber der Name "Timer" ist nicht gerade originell gewählt und wenn ein nicht Timerobjekt mit diesem Namen durch irgendeine andere Windowsapplikation schon erzeugt wurde, schlägt der Aufruf von CreateWaitableTimer() fehl (und gibt diese Funktion ein NULL Handle zurück). Und wenn irgendeine andere Applikation schon ein Timerobjekt mit diesem Namen erzeugt hat, werden beide auf dasselbe Objekt zugreifen und sich dadurch in die Quere kommen.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
automatisch Standby od. Ruhezustand und wieder aufwachen? - rolfk - 08.09.2009 20:28

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  automatisch Standby od. Ruhezustand und wieder aufwachen? #2 ABoe12 3 9.017 15.07.2015 23:11
Letzter Beitrag: ABoe12
  Monitor in Standby schalten und wieder aufwecken finu 3 7.750 04.01.2009 12:42
Letzter Beitrag: markusx_83

Gehe zu: