Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.02;
Скачать: CL | DM;

Вниз

Хоткеи в сервисе   Найти похожие ветки 

 
TerminalHead ©   (2005-09-06 21:03) [0]

У меня есть программа которая работает только на хоткеях. Тоесть практически все время она невидима для пользователя и реагирует только на хоткеи. Вот так она выглядит:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Winsvc, Tlhelp32, Shellapi, Unit2, Unit3;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
    procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY;
    procedure WMQueryOpen(var Msg: TWMQueryOpen); message WM_QUERYOPEN;
 public
     { Public declarations }
 end;

var
 Form1: TForm1;
 Handle:THandle;
 megacheck1,megacheck2:boolean;
implementation
procedure TForm1.WMQueryOpen(var Msg: TWMQueryOpen);
begin
 Msg.Result := 0;
end;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
const VK_O = 79;
const VK_F = 70;
const VK_D = 65;
begin
 RegisterHotKey(Handle, 66, MOD_CONTROL + MOD_Alt, VK_F);
 RegisterHotKey(Handle, 15, MOD_CONTROL + MOD_Alt, VK_O);
 RegisterHotkey(Handle, 34, MOD_ALT or MOD_CONTROL or MOD_SHIFT, VK_F6);
 RegisterHotkey(Handle, 1111, MOD_ALT or MOD_SHIFT, VK_F11);
 RegisterHotKey(Handle, 89, MOD_Alt, VK_D);
 end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 UnRegisterHotkey( Handle, 34 );
 UnRegisterHotkey( Handle, 15 );
 UnRegisterHotkey( Handle, 1111 );
 UnRegisterHotkey( Handle, 66 );
 UnRegisterHotkey( Handle, 89 );
end;

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
  if Msg.HotKey = 89 then begin
{Дальше идет код программы}
end;
end.

Возможно ли перенести это в сервисное приложение ?
И если возможно, то как это сделать?
Или если необходимо то как по другому реализовать хоткеи в сервисе ?


 
Eraser ©   (2005-09-06 21:42) [1]

Вполне возможно. В сервисе необходимо сделать пустое окно-заглушку и организовать цикл обработки сообщений, возможно удобнее это сделать в отдельном потоке.



Страницы: 1 вся ветка

Текущий архив: 2005.10.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.071 c
2-1124473635
Michael5
2005-08-19 21:47
2005.10.02
Можно ли получить инфу о ходе выполнения запроса к БД?


1-1126012628
July
2005-09-06 17:17
2005.10.02
копирование объектов runtime


14-1126638921
WonderfulDay
2005-09-13 23:15
2005.10.02
sv1021h vs sv4002h


3-1124694730
PChI
2005-08-22 11:12
2005.10.02
Сортировка в dxDbGrid


14-1126108538
Ксардас
2005-09-07 19:55
2005.10.02
Первые проблемы с ServicePAck2