Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Here part of code that detect when laptop is running on batteries (if not it triggers some event):</p> <pre><code>uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, WTSSessionNotification, StdCtrls, MediaPlayer, Buttons, ShellAPI, Settings, ExtCtrls; const WM_ICONTRAY = WM_USER + 1; type TSettingsForm = class(TForm) OpenDialog: TOpenDialog; pnl1: TPanel; InfoLabel: TLabel; grp1: TGroupBox; AlarmSoundLabel: TLabel; lbl1: TLabel; checkIfLocked: TCheckBox; Filename: TEdit; Browse: TBitBtn; TestSound: TBitBtn; btn1: TBitBtn; lbl2: TLabel; procedure Minimize(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure TestSoundClick(Sender: TObject); procedure BrowseClick(Sender: TObject); procedure checkIfLockedClick(Sender: TObject); procedure OpenHomepage(Sender: TObject); procedure btn1Click(Sender: TObject); private TrayIconData: TNotifyIconData; procedure CheckForAC; protected procedure WndProc(var Message: TMessage); override; public { Public declarations } Function SecuredLockWorkStation : Boolean ; end; var SettingsForm: TSettingsForm; implementation {$R *.DFM} {$R WindowsXP.RES} var MPlayer: TMPlayer; mySettings: TSettings; isLocked: boolean = false; // true if A/C is connected, false if not function ACConnected: boolean; var PowerStatus: TSystemPowerStatus; begin GetSystemPowerStatus(PowerStatus); result := (PowerStatus.ACLineStatus = 1); end; // handles application.minimize; do not really // minimize, but hide settings window procedure TSettingsForm.Minimize(Sender: TObject); begin Application.Restore; self.Hide; end; // processes window messages (notification about // power status changes, locking of workstation and // tray icon activity) procedure TSettingsForm.WndProc(var Message: TMessage); begin case Message.Msg of WM_WTSSESSION_CHANGE: begin if Message.wParam = WTS_SESSION_LOCK then isLocked := true; if Message.wParam = WTS_SESSION_UNLOCK then begin isLocked := false; if MPlayer.isPlaying then MPlayer.Close; end; end; WM_POWERBROADCAST: begin if (isLocked) or (checkIfLocked.checked=false) then CheckForAC; end; WM_ICONTRAY: begin case Message.lParam of WM_LBUTTONDOWN: begin if SettingsForm.visible then SettingsForm.Hide else SettingsForm.Show; end; WM_RBUTTONUP: begin if SettingsForm.visible then SettingsForm.Hide else SettingsForm.Close; end; end; end; end; inherited; end; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload