Einzelnen Beitrag anzeigen

BlackGuest

Registriert seit: 30. Jan 2009
52 Beiträge
 
Delphi XE7 Professional
 
#5

Re: Batchdatei mit ShellExecute nach Standby bzw. Ruhezustan

  Alt 30. Jan 2009, 22:57
So, ich habe den Qelltext mal abgeändert.

aktueller Stand:
Delphi-Quellcode:
procedure TMainForm.WMPowerBroadcast(var Msg: TMessage);
 var path: String;
const
  PBT_APMQUERYSUSPEND = $0000;
  PBT_APMBATTERYLOW = $0009;
  PBT_APMQUERYSTANDBY = $0001;
  PBT_APMQUERYSUSPENDFAILED = $0002;
  PBT_APMQUERYSTANDBYFAILED = $0003;
  PBT_APMSUSPEND = $0004;
  PBT_APMSTANDBY = $0005;
  PBT_APMRESUMECRITICAL = $0006;
  PBT_APMRESUMESUSPEND = $0007;
  PBT_APMRESUMESTANDBY = $0008;
  PBTF_APMRESUMEFROMFAILURE = $00000001;
  PBT_APMPOWERSTATUSCHANGE = $000A;
  PBT_APMOEMEVENT = $000B;
begin
  if Msg.wParam=PBT_APMRESUMESUSPEND then
    if (WUfromSuspendPrg<>'')and(Fileexists(WUfromSuspendPrg)) then
     begin
// MessageDlg('Resume from Suspend Mode', mtInformation,[mbOk], 0);
      path:=extractFilePath(WUfromSuspendPrg);
      ShellExecute(Handle,'open',PChar(WUfromSuspendPrg),'',PChar(Path),1);
     end;
end;
Beim Erwachen aus dem Standby passier gar nichts. ShellExecute sollte zwar abgearbeitet werden aber es passiert nichts. Lasse ich den MessageDlg drin, wird das Batchfile nach dem OK sauber abgearbeitet.
Beim Erwachen aus dem Ruhezustand bekomme ich wieder eine Zugriffsverletzung ('access violation at...".

Scheint also doch so zu sein, dass der Aufruf irgendwie zu früh erfolgt.

Gruß
BlackGuest
  Mit Zitat antworten Zitat