Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi WM_POWERBROADCAST in DLL? (https://www.delphipraxis.net/136934-wm_powerbroadcast-dll.html)

schwa226 10. Jul 2009 15:49


WM_POWERBROADCAST in DLL?
 
Hi,

ich möchte gern in meiner DLL Standby/Hibernate überprüfen!

Aber leider kommt immer die Meldung:
Zitat:

[DCC Fehler] uMain.pas(19): E2070 Unbekannte Direktive: 'message'
Delphi-Quellcode:
procedure WMPowerBroadcast(var MyMessage: TMessage); message WM_POWERBROADCAST;
Wenn ich die Procedure in einer Class benutze geht es. Wie kann ich das in einer DLL machen?
Extra eine Class erstellen?

Habe mir einmal zum probieren eine Class erstellt:
Delphi-Quellcode:
type

  TPowerWatch = class(TObject)

  public
    constructor Create;
    destructor Destroy; override;
    procedure WMPowerBroadcast(var MyMessage: TMessage); message WM_POWERBROADCAST;
  end;
jedoch bekomme ich keine Meldung das der PC in den Standby geht!

Apollonius 10. Jul 2009 15:53

Re: WM_POWERBROADCAST in DLL?
 
WM steht für Window Message. Du musst also ein Fenster erstellen.

schwa226 10. Jul 2009 15:56

Re: WM_POWERBROADCAST in DLL?
 
Bedeutet das ich ein dummy form mit visible := false erstellen muss?
Geht das nicht anders?

EDIT:
Hab also eine dummy Form eingefügt. Jetzt bekomme ich die Message!

Danke!

Sprint 10. Jul 2009 16:19

Re: WM_POWERBROADCAST in DLL?
 
Du musst nicht unbedingt eine Dummy Form nehmen. Dafür gibt es in Delphi extra eine Funktion.

AllocateHWnd.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 Uhr.

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