Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Powersave deaktivieren (Win: ok, Android: ok, iOS: ???) (https://www.delphipraxis.net/195724-powersave-deaktivieren-win-ok-android-ok-ios.html)

knaeuel 27. Mär 2018 08:29

AW: Powersave deaktivieren (Win: ok, Android: ok, iOS: ???)
 
Zitat:

Zitat von DeddyH (Beitrag 1397275)
Man müsste nur den verlinkten Artikel lesen:
Zitat:

A TUIApplication factory class, and a UIApplication interface are defined in the iOSapi.UIKit.pas file that ships with Delphi.

nicht böse gemeint, aber: man müsste nur zu Ende lesen ;)

Zitat:

Zitat von KodeZwerg (Beitrag 1397291)
Sorry ich habe völlig falsch beschrieben bzw vergessen das was ich meinte zu erwähnen.
Ich muss für Windows das "SetThreadExecutionState()" (mit meinen erwähnten Definitionen) in einer Timer-Event immer wieder aufrufen lassen, ein einmaliger Aufruf brachte mich nicht ans Ziel, daß das System weder einschläft noch das sich der Monitor auf Standby schaltet.
Liegt es an mir oder ist das für Windows normal? (mich stört es nicht da es kaum Resourcen kostet)

Entgegen meiner Ansage habe ich mit Windows noch nicht getestet. Sobald es soweit ist, melde ich mich hier mit Ergebnissen.

Zitat:

Zitat von HolgerX (Beitrag 1397312)
Hmm..

Bei den PowerSave.. genügt es einmal zum Programmstart PowerCreateRequest/PowerSetRequest zu verwenden.
Hingegen funktioniert SetThreadExecutionState (soweit ich mich noch erinnern kann ;) ) nur unter XP ohne Timer...

Hatte vor Jahren für einen Mediaplayer damit experimentiert ;)

Hier dann abhängign vom OS unter XP/Vista das SetThreadExecutionState und ab W7 PowerCreateRequest/PowerSetRequest verwendet.
Ich fand es auch interessant, dass man sich den Status aller Programme per powercfg auflisten lassen konnte und somit direkt prüfen kann, ob der Eintrag auch richtig angekommen ist ;)

von mir auch noch Danke! Ich werde der Sache noch nachgehen.

DeddyH 27. Mär 2018 09:40

AW: Powersave deaktivieren (Win: ok, Android: ok, iOS: ???)
 
3 Minuten nach meiner Antwort editieren und dann ironisch tun, das hab ich gern ;)

KodeZwerg 27. Mär 2018 10:16

AW: Powersave deaktivieren (Win: ok, Android: ok, iOS: ???)
 
Für Windows gilt noch zu beachten das, falls aktiviert, ein Bildschirmschoner nicht per SetThreadExecutionState() "überbrückt" wird.
Wie PowerSave das regelt weiß ich nicht, ich habe mir eine simple Routine gebaut dir mir einen Registrierungswert vorübergehend abändert. Interessanter Weise ist der Wert eine Null bzw eine Eins aber als String geschrieben.
Es gibt glaube ich auch ein Api Befehl speziell dafür, nur liegt der mir gerade nicht vor.
(HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive = "0" oder "1")

knaeuel 27. Mär 2018 11:50

AW: Powersave deaktivieren (Win: ok, Android: ok, iOS: ???)
 
Zitat:

Zitat von DeddyH (Beitrag 1397327)
3 Minuten nach meiner Antwort editieren und dann ironisch tun, das hab ich gern ;)

ok, erwischt ;)

Zitat:

Zitat von KodeZwerg (Beitrag 1397330)
Für Windows gilt noch zu beachten das, falls aktiviert, ein Bildschirmschoner nicht per SetThreadExecutionState() "überbrückt" wird.
Wie PowerSave das regelt weiß ich nicht, ich habe mir eine simple Routine gebaut dir mir einen Registrierungswert vorübergehend abändert. Interessanter Weise ist der Wert eine Null bzw eine Eins aber als String geschrieben.
Es gibt glaube ich auch ein Api Befehl speziell dafür, nur liegt der mir gerade nicht vor.
(HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive = "0" oder "1")

danke für den weiteren Hinweis!

HolgerX 27. Mär 2018 18:22

AW: Powersave deaktivieren (Win: ok, Android: ok, iOS: ???)
 
Hmm..


Zitat:

Zitat von KodeZwerg (Beitrag 1397330)
Für Windows gilt noch zu beachten das, falls aktiviert, ein Bildschirmschoner nicht per SetThreadExecutionState() "überbrückt" wird.
Wie PowerSave das regelt weiß ich nicht, ich habe mir eine simple Routine gebaut dir mir einen Registrierungswert vorübergehend abändert. Interessanter Weise ist der Wert eine Null bzw eine Eins aber als String geschrieben.
Es gibt glaube ich auch ein Api Befehl speziell dafür, nur liegt der mir gerade nicht vor.
(HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive = "0" oder "1")

Soweit ich mich erinnere wirkt PowerSave auf jede Art (ScreenSaver, Sperrbildschirm..) der Unterbrechung ;)
Jedoch erst ab Win7.

Das deaktivieren des ScreenSavers dürfte in z.B. einer Domaine schwieriger sein und dürfte dann auch keine Auswirkung auf den Sperrbildschirm haben.
Auch ist dies gefährlich, wenn z.B. deine Applikation nach Deaktivierung mit z.B. einem Fehler (Windows ärgert einen immer.. ;) ) sich verabschiedet, da dann die Deaktivierung nicht rückgängig gemacht würde.
Und Du musst Dir beim Deaktivieren 'merken' ob der Bildschirmschoner überhaupt aktiviert war ;)

Eine weitere Alternative ist natürlich das Simulieren einer z.B. Mausbewegung (SendInput), die funktioniert meines Wissens auch auf jedem Windows.. ;)

KodeZwerg 27. Mär 2018 23:11

AW: Powersave deaktivieren (Win: ok, Android: ok, iOS: ???)
 
Danke für diese kleine PowerSave Vertiefung, gut zu Wissen das es anscheinend ein "all-in-one" Heilmittel für so ein vorhaben (ab Windows 7) darstellt.
Das mit virtuelle Mausbewegung hatte ich zu erst auch genutzt bis das bewegen der Maus etwas anderes bewirken sollte (kleines Panel mit paar Funktionen wird eingeblendet bzw bei Maus inaktivität ausgeblendet)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz