![]() |
Re: Ruhezustand blockieren-> Versuch erkennen -> selbs
Da steht aber:
Zitat:
Zitat:
|
Re: Ruhezustand blockieren-> Versuch erkennen -> selbs
Zitat:
Und anscheinend ist für Microsoft "As quickly as possible" = "The system allows approximately 20 seconds" Und das "verstecken" der Daten sollte allerdings sicher nicht mehr als eine, max. zwei Sekunden dauern. Ich kann aus meiner Erfahrung jedenfalls sagen, dass die Zeit ausreicht noch Daten an einen Server zu schicken und auf Antwort zu warten. Aber das sollte ichbins selber entscheiden wie er es machen will. |
Re: Ruhezustand blockieren-> Versuch erkennen -> selbs
Zitat:
|
Re: Ruhezustand blockieren-> Versuch erkennen -> selbs
Zitat:
Zitat:
|
Re: Ruhezustand blockieren-> Versuch erkennen -> selbs
Zitat:
Was machen denn die ganzen "Internet-Cafe Programme", die alle möglichen Sachen vor dem User über die Registry verstecken. Wenn es die Sicherheit erfordert, sollte man schon auch zu solchen Mitteln greifen dürfen. Gruss |
Re: Ruhezustand blockieren-> Versuch erkennen -> selbs
Zitat:
Zitat:
Zitat:
Zitat:
Also ich fände die erste Idee fals machbar schon recht fein (bis jetzt ^^). |
Re: Ruhezustand blockieren-> Versuch erkennen -> selbs
ich mach halt einfach eine boolean-Variable etwa so:
Delphi-Quellcode:
procedure getmessage;
begin if bool then exit; post(abbruchmessage); bool:=true; save; post(shutdownmessage); |
Re: Ruhezustand blockieren-> Versuch erkennen -> selbs
Inzwischen bin ich so weit gekommen:
Delphi-Quellcode:
Aber leider funktioniert das ganze nicht. Wenn ich den Ruhezustand auslöse, erhält er zwar die wmpowerbroadcast, aber erkennt nicht, dass es sich um eine pbt_apmquerysuspend handelt.
procedure TForm1.WMPowerBroadcast(var Msg: TWMPower);
begin showmessage('got message: wmpowerbroadcast'); if ((msg.msg=PBT_APMQUERYSUSPEND) and (not readyforsuspend)) then begin showmessage('message is pbt_apmquerysuspend'); Msg.Result := BROADCAST_QUERY_DENY; if messagedlg('denied. suspend?',mtinformation,[mbyes,mbno],0)=mryes then suspend(self); end else showmessage('message is not pbt_apmquerysuspend'); end; procedure suspend(var form:tform1); begin form.readyforsuspend:=true; form.closeallowed:=true; form.close; setsystempowerstate(true,false); end; |
Re: Ruhezustand blockieren-> Versuch erkennen -> selbs
Schreibe einen PnP-Treiber der den Ruhezustand nicht unterstützt und installiere ihn. Das funzt immer - den Ruhezustand gibt's dann nimmer.
Aber mal ernsthaft, kannst du das mit dem Verstecken der Daten nochmal genauer ausführen?! BTW: Zitat:
|
Re: Ruhezustand blockieren-> Versuch erkennen -> selbs
@treiber: vielleicht eine Stufe zu brutal ;)
ich will den Ruhezustand ja nur verhindern, um dann meine Sachen zu speichern, was unter Umständen länger als 20 Sekunden dauern kann, und dann den Ruhezustand selbst auslösen, so dass es dem User nur "verzögert" scheint. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz