Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2008, 12:42   #1
Патрон
Форумчанин
 
Аватар для Патрон
 
Регистрация: 07.03.2008
Сообщений: 151
Хорошо Быстрый вызов программы с помощью мыши

Помогите пожалуйста, никак не могу сделать чтобы программу можно было вызвать ото-всюду нажатем на колесо мыши (при этом программа сидит в трее)... Заранее спасибо
Патрон вне форума Ответить с цитированием
Старый 17.07.2008, 12:45   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
вызвать ото-всюду нажатем на колесо мыши
Видимо нужно хук прикрутить к твоей программе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.07.2008, 14:36   #3
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Код:
unit Unit1;

 interface

 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
   Dialogs, AppEvnts, StdCtrls, ExtCtrls;

 type
   TForm1 = class(TForm)
    ApplicationEvents1: TApplicationEvents;
     procedure ApplicationEvents1Message(var Msg: tagMSG;
       var Handled: Boolean);
     procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;

 var
   Form1: TForm1;

 implementation

 {$R *.dfm}

 var
   JHook: THandle;

function JournalProc(Code, wParam: Integer; var EventStrut: TEventMsg): Integer; stdcall;
 begin
   Result := CallNextHookEx(JHook, Code, wParam, Longint(@EventStrut));
   if Code = HC_ACTION then
if EventStrut.message=WM_MBUTTONDOWN then
     if form1.Showing then form1.Hide else begin
    form1.Show;
 with form1 do
   SetWindowPos(Handle,
               HWND_TOPMOST,
               Left,
               Top,
               Width,
                Height,
               SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
     end;
 end;

 procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
   var Handled: Boolean);
 begin
   Handled := False;
   if (Msg.message = WM_CANCELJOURNAL) then         //при нажатии Ctrl+alt+del hook останавливается,
     JHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, hInstance, 0);//мы его запускаем заново
 end;

 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
 begin
      UnhookWindowsHookEx(JHook);
 end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   JHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, hInstance, 0);
end;

end.
Вложения
Тип файла: rar project1.rar (2.0 Кб, 14 просмотров)
NikLik вне форума Ответить с цитированием
Старый 17.07.2008, 15:40   #4
Патрон
Форумчанин
 
Аватар для Патрон
 
Регистрация: 07.03.2008
Сообщений: 151
Хорошо

NikLik, отлично, спасибо большое!! +1
Патрон вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ещё одна прога для студентов, тестирование с помощью программы ADSoft Tester - взлом пароля rpy3uH Софт 70 23.12.2021 21:47
Открытие файла с помощью моей программы igroman Общие вопросы Delphi 3 09.06.2008 09:12
Помогите! Как реализовать перемещение панель GroupControl с помощью мыши. Slavon Общие вопросы .NET 0 14.05.2008 13:49
Выбор программы или Открыть с помощью Умелец Свободное общение 7 14.07.2007 21:17
Как перемещать TShape с помощью мыши? SaCREDO Помощь студентам 1 29.03.2007 00:37