For HTTP commands are used object TIdHTTP. Application is minimized and has own tray icon.
Hotkeys are served by WM_HOTKEY message.
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdContext, IdHTTP, IdTCPConnection,
IdTCPClient, IdCmdTCPClient, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPClient, Vcl.StdCtrls, Vcl.ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
IdHTTP1: TIdHTTP;
Button2: TButton;
TrayIcon1: TTrayIcon;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TrayIcon1DblClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure WMHotkey( Var msg: TWMHotkey ) ; message WM_HOTKEY;
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
{ ..here you can see example of testing connection to idHTTP }
IdHTTP1.Request.Clear;
IdHTTP1.Request.BasicAuthentication:= true;
IdHTTP1.Request.Authentication.Username := 'admin';
IdHTTP1.Request.Authentication.Password := 'xxx'; }
idHTTP1.Connect;
idHTTP1.Get( 'http://10.36.1.29/command/presetposition.cgi?PresetCall=1,24' );
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
{ -- hotkeys registration }
RegisterHotkey( handle, 1, MOD_CONTROL, ord( '1' ) );
RegisterHotkey( handle, 2, MOD_CONTROL, ord( '2' ) );
RegisterHotkey( handle, 3, MOD_CONTROL, ord( '3' ) );
RegisterHotkey( handle, 4, MOD_CONTROL, ord( '4' ) );
RegisterHotkey( handle, 5, MOD_CONTROL, ord( '5' ) );
RegisterHotkey( handle, 6, MOD_CONTROL, ord( '6' ) );
RegisterHotkey( handle, 7, MOD_CONTROL, ord( '7' ) );
RegisterHotkey( handle, 8, MOD_CONTROL, ord( '8' ) );
RegisterHotkey( handle, 9, MOD_CONTROL, ord( '9' ) );
{ -- tray settings }
TrayIcon1.Hint := 'Version 1.0 - click for close.';
TrayIcon1.AnimateInterval := 200;
{ set up a hint balloon }
TrayIcon1.BalloonTitle := 'CTRL + [1..9].';
TrayIcon1.BalloonHint := 'Press for camera change';
TrayIcon1.BalloonFlags := bfInfo;
{ initial calling for connection }
idHTTP1.Get( 'http://10.36.1.29/command/presetposition.cgi?PresetCall=3,24' );
{ hide the window and set its state to wsMinimized. }
Hide();
WindowState := wsMinimized;
{ show animated tray icon and also a hint balloon. }
TrayIcon1.Visible := True;
TrayIcon1.Animate := True;
TrayIcon1.ShowBalloonHint;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotkey( Handle, 1 );
UnRegisterHotkey( Handle, 2 );
UnRegisterHotkey( Handle, 3 );
UnRegisterHotkey( Handle, 4 );
UnRegisterHotkey( Handle, 5 );
UnRegisterHotkey( Handle, 6 );
UnRegisterHotkey( Handle, 7 );
UnRegisterHotkey( Handle, 8 );
UnRegisterHotkey( Handle, 9 );
end;
procedure TForm1.TrayIcon1DblClick(Sender: TObject);
begin
close;
end;
procedure TForm1.WMHotkey( Var msg: TWMHotkey );
begin
{ reaction for hotkey }
idHTTP1.Get( 'http://10.36.1.29/command/presetposition.cgi?PresetCall=' +
IntToStr( msg.HotKey ) + ',24' );
end;
end.
No comments:
Post a Comment