Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2008.12.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.009 c
9-1175779923
ElectriC
2007-04-05 17:32
2008.12.07
Запрет нажатия системных клавиш


8-1188236379
Dmitry_12_08_73
2007-08-27 21:39
2008.12.07
Считать время с FTP-сервера


2-1225438987
zxc
2008-10-31 10:43
2008.12.07
Clipboard


2-1225117209
Zhekson
2008-10-27 17:20
2008.12.07
Как запретить выделение и вставку в компоненте класса TEdit???


10-1150820217
TStas
2006-06-20 20:16
2008.12.07
Можно ли читать из Ворда?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский