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

Вниз

Как отключить правую кнопку мыши в программе   Найти похожие ветки 

 
OlegM   (2007-11-13 14:13) [0]

Здрассте
Дело в том что в проге использую флаш ролики, и вот когда на ролике тыкаеш правой кнопкой то вылазит флешевское меню, можно както на время работы программы вырубить правую кнопку, а по завершению включить ее ?


 
stanislav_   (2007-11-13 14:18) [1]

А в настройках самого объекта отабражающего флеш, нельзя?


 
OlegM   (2007-11-13 14:48) [2]


> А в настройках самого объекта отабражающего флеш, нельзя?


Нет там оно все равно показывает пункты меню настройки и о программе


 
KilkennyCat ©   (2007-11-15 01:22) [3]

Используется ActiveX Control?


 
humanoid   (2007-12-26 19:56) [4]

А с помощю како-нибудь системной команды нельзя вырубить эту функцию , а потом при выходе сделать откат....

Меня тоже этот вопрос волнует...


 
БарЛог ©   (2007-12-26 20:55) [5]

Имхо, надо не кнопку запрещать.
Включаешь мышь для левшей, и левая кнопка становится правой, правая - левой :)


 
www   (2007-12-26 22:24) [6]


> когда на ролике тыкаеш правой кнопкой то вылазит флешевское
> меню

и в чем проблема?


 
humanoid   (2007-12-26 23:57) [7]

>>Включаешь мышь для левшей, и левая кнопка становится правой, правая - левой :)

Этож не выход... сами же понимаете (без балды)... Функция левой кнопки должна быть сохранена...

>> и в чем проблема?

Да даже и не про флеш до кучи...

____

Если позволите постараюсь сформулировать четкий вопрос:

Существуют ли методы (включая системные команды Windows) отключать правую клавишу манипулятора (мышь, тач-пад, трек-бол и т.д.) во время исполнения вашего приложения, и в случае её завершения была бы придусмотрена процедура возврата установочной функции операционной системы (в данном случае XP / Vista)???


 
{RASkov} ©   (2007-12-27 00:09) [8]

> [7] humanoid   (26.12.07 23:57)
> Существуют ли методы (включая системные команды Windows)
> отключать правую клавишу манипулятора

Системных таких методов врядли будут), а вот остальное зависит от фантазии.... но если, например, запускается какая-то прога и тут перестает работать правая кнопка мыши, то нафик такая прога нужна???? Нет, я не против идеи, если идею сможешь разумно обосновать, растолковать.... и она окажется действительно нужной.....

Или тебе только в своем приложении нужно "лишить мышь правого батона"? Хотя судя по

> и в случае её завершения была бы придусмотрена процедура
> возврата установочной функции операционной системы

- врядли
:)


 
Германн ©   (2007-12-27 01:25) [9]


> {RASkov} ©   (27.12.07 00:09) [8]


> Нет, я не против идеи, если идею сможешь разумно обосновать,
>  растолковать.... и она окажется действительно нужной...
> ..

Имхо, не сможет. Ведь если правая кнопка используется в программе, значит она в ней нужна. А если её использование в вышеуказанной программе кому-то мешает жить, значит одно из двух: либо программу надо сменить, либо всем известную прокладку. :)


 
humanoid   (2007-12-27 11:40) [10]

>> Имхо, не сможет -
откуда такя уверенность?

OlegM - уже обосновал проблему... отчасти от себя могу добавить, что это это просьба клиента т..к. в контенкстном меню (по правой кнопке) существует on-line ссылка на корпорацию Adobe... во внедренном Flash ролике.

___

Если есть возможность отключать клавиатуру в специфических прикладных программах, то есть вмдимо возможность отключения некоторых функций мыши, тоже должна быть...

___

По сути я задал вопрос конкретный (в надежде получить ответ "ДА" и каким образом это достигается).... а в итоге получаю не четкие рекомендации от знатоков, а филосовские рассуждения на тему БЫТИЯ...


 
Правильный_Вася   (2007-12-27 11:48) [11]

нужно отключать не мышь, а реакцию на нее

> отключать правую клавишу манипулятора во время исполнения вашего приложения, и в случае
> её завершения была бы придусмотрена процедура возврата установочной
> функции операционной системы

ты не в однозадачной ОС работаешь


 
clickmaker ©   (2007-12-27 13:25) [12]


> что это это просьба клиента т..к. в контенкстном меню (по
> правой кнопке) существует on-line ссылка на корпорацию Adobe

и что? Какая-то ненависть к Адобу?


 
Правильный_Вася   (2007-12-27 13:34) [13]


> и что? Какая-то ненависть к Адобу?

ну, клиентам может не нравиться
было у нас в окошке About ссылка на наш сайт, так по директиве службы безопасности клиента пришлось убрать, бо не полагается простым юзерам ходить в инет, а там эксплорер вызывался автоматом и долго терзал юзера, после чего ругался на недоступность и т.п.
короче, клиент всегда прав


 
clickmaker ©   (2007-12-27 13:36) [14]


> короче, клиент всегда прав

"пешеход прав, пока жив" (с)
:)


 
Apollon ©   (2007-12-28 20:41) [15]

а теперь представь, что твоя программа завершилась аварийно и "забыла" включить правую кнопку...


 
humanoid   (2007-12-28 22:42) [16]

>>>а теперь представь, что твоя программа завершилась аварийно и "забыла" включить правую кнопку...

Всеп конечно учитывается... и это тоже... уж поверьте... ПРО ТО ЗНАМО

Для достижения цели, этот допустимый косяк не такой уж весомый в вероятности сбоя программы... и аварийного ее выхода... тем более после перезагрзки систему все вернется "на круги своя"..

И очень вас прошу, Б-га ради, пожалуйста без дополнительных сентенций по темам Мироздания и  опять же Бытия...
_____

Вопрос: Можно ли произвести Глобальный хук на правую кнопку мыши? Если - ДА, то какими известными вам, уважаемые профи, методами....???


 
humanoid   (2007-12-28 22:45) [17]

Конечно, можно отшутиться типа: Метод один - долбани по ней молотком...
___

Это будет видимо смешно...


 
Apollon ©   (2007-12-29 13:22) [18]

а зачем тебе глобальный хук? тут уже упоминалось про многозадачность системы и, по-моему, неправильно будет лишать юзера правой кнопки на время работы твоей программы...


 
humanoid   (2007-12-30 06:19) [19]


> а зачем тебе глобальный хук? тут уже упоминалось про многозадачность
> системы и, по-моему, неправильно будет лишать юзера правой
> кнопки на время работы твоей программы...


Это небольшой интерактивный мануал, представляющий и рассказывающий о другом приложениии, который поставляется вместе с основным программным пакетом...

Я не думаю, что на 10-15 минут уделенного времени (а может и вовсе "неуделенного") этому мануалу, у юзера где-то там поседеет из-за того , что на это время будет лишена возможность правого клика....


 
Ketmar_   (2007-12-30 10:39) [20]

мануал? с пакетом? обратиться в Adobe и купить custom-версию flash player, в которой что надо — оставлено, что не надо — вырезано.


 
humanoid   (2007-12-30 11:19) [21]


> мануал? с пакетом? обратиться в Adobe и купить custom-версию
> flash player, в которой что надо — оставлено, что не надо
> — вырезано


SWF та что в проекте, питается от ActiveX (Flash.OCX) установленой в системе конечного пользователя... никакие дополнительные не подразумевают принудительную установку с нашего диска, а в случае отсутствия данного OCX? ему предлагается его скачать с офсайта ADOBE...

Вообщем это опять философия не в тему.... мне никто так и не ответил...

возможен ли или невозможен глобалный хук, на правую кнопку мыши, если да, то какими методами...

_____

ДА ИЛИ НЕТ - это более чем адвекватный и  вменямый ответ на поставленный вопрос, а не рассусоливание отвлеченных косвенных суждений.

_____

С НОВЫМ ГОДОМ:)


 
Царев Евгений ©   (2007-12-30 18:44) [22]

Имхо ненадо так, но вот D7 WinXP

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, OleCtrls, ShockwaveFlashObjects_TLB{или как его назвали}, Menus;

type
TShockwaveFlash{или как его назвали} = class(ShockwaveFlashObjects_TLB.TShockwaveFlash)
private
procedure WMPopupMenu(var Message: TWMMouse); message WM_RBUTTONDOWN;
end;

type
 TForm1 = class(TForm)
   ShockwaveFlash1: TShockwaveFlash;
   PopupMenu1: TPopupMenu;
   mnuTest1: TMenuItem;
   procedure mnuTest1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

{ TShockwaveFlash }

procedure TShockwaveFlash.WMPopupMenu(var Message: TWMMouse);
var
CurPos: TPoint;
begin
GetCursorPos(CurPos);
Form1.PopupMenu1.Popup(CurPos.X, CurPos.Y);
end;

procedure TForm1.mnuTest1Click(Sender: TObject);
begin
ShowMessage("Test");
end;

end.


С Новым Годом :-)


 
humanoid   (2007-12-30 18:59) [23]

@ Царев Евгений

Спасибо... буду пробовать уже в Новом Году:)))
___

Всех кто принял участие в обсуждении данной темы... желаю... в Новом, Новых начинаний, озарений и гениальных работ! Благополоучия и Здоровья..

Мир вашему Дому!

Гумир:)


 
TStas ©   (2008-01-04 22:16) [24]

А через перехват сообщений от мыши нельзя? И кнопку трогать не нало. Просто просматриваешь сообщение, через ApplicationEvent. Ну и несли там что-то не нравится Handled := True. Только не знаю, как это с флешроликом будет работать.


 
Царев Евгений ©   (2008-01-05 09:53) [25]


> TStas ©   (04.01.08 22:16) [24]


Да работает. И того варварства что я написал ненадо было :)


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, OleCtrls, ShockwaveFlashObjects_TLB, AppEvnts;

type
 TForm1 = class(TForm)
   ShockwaveFlash1: TShockwaveFlash;
   ApplicationEvents1: TApplicationEvents;
   procedure ApplicationEvents1Message(var Msg: tagMSG;
     var Handled: Boolean);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
var
FlashPlayerClass: array[0..MAX_PATH-1] of Char;
begin
Case Msg.message OF
 WM_RBUTTONDOWN:
              begin
                GetClassName(Msg.hwnd,FlashPlayerClass,MAX_PATH);
                if  (FlashPlayerClass = "MacromediaFlashPlayerActiveX") then
                Handled:= True;
              end;
end;
end;

end.



 
TStas ©   (2008-01-05 16:09) [26]

>Царев Евгений Только я сам торможу не меньше Вашего: WM_RBUTTONDOWN. Я-то никак не мог вспомнить, ну вот как выловить, что правая :)


 
arreke   (2008-02-11 13:53) [27]

не забывайти про кнопку меню не клаве, при её нажатии тоже меню выходит.


 
arreke ©   (2008-02-11 14:00) [28]

не забывайти про кнопку меню не клаве, при её нажатии тоже меню выходит.


 
Anatoly Podgoretsky ©   (2008-02-11 14:09) [29]


> Существуют ли методы (включая системные команды Windows)
> отключать правую клавишу манипулятора (мышь, тач-пад, трек-
> бол и т.д.) во время исполнения вашего приложения,

На такое зверство даже Микрософт не решилась.


 
Царев Евгений ©   (2008-02-11 18:25) [30]


> arreke ©   (11.02.08 14:00) [28]
не забывайти про кнопку меню не клаве, при её нажатии тоже меню выходит.


Больше как зверством точно это не назавешь :(


const
FlashPlayerClassName: String = "MacromediaFlashPlayerActiveX";
WM_WINMENUKEY = $100;
implementation

{$R *.dfm}

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
var
TempClass: array [0..49] of Char;
begin
With Msg Do Begin
 Case message Of
    WM_RBUTTONDOWN:
    Begin
      GetClassName(hwnd,TempClass,50);
      if  (StrPas(TempClass) = FlashPlayerClassName) then Handled:= True;
    End;  // WM_RBUTTONDOWN
   WM_WINMENUKEY: Handled:= True;
 End; // Case
End; //With

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ShockwaveFlash1.Movie:= WideString(IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + "01.swf");
end;


 
arreke ©   (2008-02-12 01:32) [31]

СПС, Евгений.
Всё работает.


 
Германн ©   (2008-02-12 01:53) [32]

"Нетрадиционалы"  уже и сюда пролезли, блин. :)


 
Царев Евгений ©   (2008-02-12 07:47) [33]


> arreke ©   (12.02.08 01:32) [31]
> СПС, Евгений.Всё работает.


Не всё, клавиша меню в твоем приложении не работает :)

 Case message Of
  WM_RBUTTONDOWN, WM_WINMENUKEY:
  Begin
     GetClassName(hwnd,TempClass,50);
     if  (StrPas(TempClass) = FlashPlayerClassName) then Handled:= True;
   End;

так сделай.


 
arreke ©   (2008-02-12 14:18) [34]

СПС, и так тоже работает.

Слушай, Евгений, вопрос немного не по этой теме,
глянь сюда - http://www.appcontrols.com/components.html

тут есть интересный компонет, который создаёт анимационный эффект открытия и закрытия формы, но он платный.

Сюществует бесплатный аналог, или может руками можно написать, или легче всё же денежку заплатить и не заморачиваться ?


 
Царев Евгений ©   (2008-02-12 17:11) [35]


> arreke ©   (12.02.08 14:18) [34]

> Слушай, Евгений, вопрос немного не по этой теме, глянь сюда
> - http://www.appcontrols.com/components.html



Ветка не по теме, открой свою, но я комментировать не буду по твоему вопросу, так как знаком с автором, и имею у себя эту библиотеку.



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

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

Наверх




Память: 0.57 MB
Время: 0.013 c
15-1222946859
Поросенок Винни-Пух
2008-10-02 15:27
2008.12.07
недвижимость в мичигане за пару баксов


15-1223242931
обана!
2008-10-06 01:42
2008.12.07
А было бы нефигово


2-1225199988
DJones
2008-10-28 16:19
2008.12.07
Простой опрос прибора на TTimer


15-1222839778
ВадимЛ
2008-10-01 09:42
2008.12.07
Починить Делфи Д5 (пути ?)


6-1196058046
Alex_C
2007-11-26 09:20
2008.12.07
Немогу соединиться с SNTP сервером