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

Вниз

Как отключить Alt+Tab В XP?   Найти похожие ветки 

 
OPOPO   (2012-06-16 00:22) [0]

Для своего приложения нужно отключить эту связку. Как?


 
TUser ©   (2012-06-16 00:24) [1]

хук?


 
DVM ©   (2012-06-16 00:32) [2]


{******************************************************************************}  
{* Module:  DisableLowLevelKeys.cpp                                           *}
{* Notices: Written 2000 Jeffrey Richter                                      *}
{*                                                                            *}
{* Translated by: Dmitry Muratov                                              *}
{* 2008                                                                       *}
{******************************************************************************}  

program DisableLowLevelKeys;

uses
Windows, Messages;

const
LLKHF_ALTDOWN  = KF_ALTDOWN shr 8;
WH_KEYBOARD_LL = 13;

type

TKBDLLHOOKSTRUCT = record
  vkCode: DWORD;
  scanCode: DWORD;
  flags: DWORD;
  time: DWORD;
  dwExtraInfo: DWORD;
end;
PKBDLLHOOKSTRUCT = ^TKBDLLHOOKSTRUCT;

var
hhkLowLevelKybd: HHOOK;

//------------------------------------------------------------------------------

function LowLevelKeyboardProc(nCode: integer;  wParam: WPARAM;  lParam: LPARAM): LRESULT; stdcall;
var
fEatKeystroke: boolean;
p: PKBDLLHOOKSTRUCT;
begin
fEatKeystroke := false;
if nCode = HC_ACTION then
  begin
    case wParam of
      WM_KEYDOWN,
      WM_SYSKEYDOWN,
      WM_KEYUP,
      WM_SYSKEYUP:
        begin
          p := PKBDLLHOOKSTRUCT(lParam);
          fEatKeystroke := ((p^.vkCode = VK_LWIN) or (p^.vkCode = VK_RWIN)) or
                           ((p^.vkCode = VK_TAB) and ((p^.flags and LLKHF_ALTDOWN) <> 0)) or
                           ((p^.vkCode = VK_ESCAPE) and ((p^.flags and LLKHF_ALTDOWN) <> 0)) or
                           ((p^.vkCode = VK_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000) <> 0)) or
                           ((p^.vkCode = VK_F4) and ((p^.flags and LLKHF_ALTDOWN) <> 0));
        end;
    end;
  end;
if fEatKeystroke then
  result := 1
else
  result :=  CallNextHookEx(0, nCode, wParam, lParam);
end;

//------------------------------------------------------------------------------

begin
// Install the low-level keyboard & mouse hooks
hhkLowLevelKybd := SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);

// Keep this app running until we"re told to stop
MessageBox(0,
           PChar("Alt+Esc, Ctrl+Esc, WIN, Alt+F4, and Alt+Tab are now disabled." + #13#10 +
                 "Click "Ok" to terminate this application and re-enable these keys."),
           PChar("Disable Low-Level Keys"),
           MB_OK);

// Remove hooks
UnhookWindowsHookEx(hhkLowLevelKybd);
end.



 
Юрий Зотов ©   (2012-06-16 01:11) [3]

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


 
OPOPO   (2012-06-16 01:24) [4]


> Юрий Зотов ©   (16.06.12 01:11) [3]


Как тогда в играх делают?


 
icelex ©   (2012-06-16 01:28) [5]

прячут сцену и восстанавливают


 
Германн ©   (2012-06-16 01:28) [6]

Имхо, Alt+Tab единственный нормальный способ переключиться из "полноэкранного" приложения. Если этот способ не работает, то дальше только три кнопки могут помочь. Вопрос - зачем такое нужно?


 
Юрий Зотов ©   (2012-06-16 01:29) [7]


> OPOPO   (16.06.12 01:24) [4]

Можно никак не делать. Зачем нарушать привычное юзеру поведение Alt+Tab?

Да и чем оно мешает? Если юзер жмет Alt+Tab, значит он хочет переключиться на другую задачу. Его право.


 
icelex ©   (2012-06-16 01:36) [8]


> Да и чем оно мешает? Если юзер жмет Alt+Tab, значит он хочет
> переключиться на другую задачу. Его право.

авторы вредоносного ПО считают иначе :)


 
Германн ©   (2012-06-16 01:39) [9]


> icelex ©   (16.06.12 01:36) [8]
>
>
> > Да и чем оно мешает? Если юзер жмет Alt+Tab, значит он
> хочет
> > переключиться на другую задачу. Его право.
>
> авторы вредоносного ПО считают иначе :)

Авторы вредоносного ПО могут считать иначе. Но Alt+Tab для них далеко не самое главное препятствие.


 
Германн ©   (2012-06-16 01:43) [10]

И даже более того. Авторы вредоносного ПО вполне могут обойтись без запрета Alt+Tab.


 
icelex ©   (2012-06-16 01:46) [11]


> Германн ©   (16.06.12 01:43) [10]
> И даже более того. Авторы вредоносного ПО вполне могут обойтись
> без запрета Alt+Tab.

мне кажется, все начинающие засранцы-недоделы начинают именно с этого


 
Германн ©   (2012-06-16 01:55) [12]


> мне кажется, все начинающие засранцы-недоделы начинают именно
> с этого

Ну это уж очень "начинающие". Такой WinLock очень просто снимается любым детсадовцем.
Имхо, автор имеет в виду нечто иное.


 
icelex ©   (2012-06-16 01:58) [13]

да кто их шибко умных знает...
всегда лучше надеяться на лучшее в людях


 
Германн ©   (2012-06-16 02:01) [14]


> icelex ©   (16.06.12 01:58) [13]
>
> да кто их шибко умных знает

Мастера DELPHI! кто же ещё! :)


 
Дмитрий С ©   (2012-06-16 02:35) [15]

А меня всегда было два вопроса:
1. Кто обрабатывает комбинацию Ctrl+Shift+Esc.
2. Как приложения вроде RDP Client или виртуальных машин перехватывают комбинации Alt+Tab или Ctrl+Shift+Esc.


 
Inovet ©   (2012-06-16 02:56) [16]

> [4] OPOPO   (16.06.12 01:24)
> Как тогда в играх делают?

Поубивал бы.


 
Давайте будем жрать!   (2012-06-16 09:37) [17]


> Германн ©   (16.06.12 01:28) [6]
частенько помогает win+r taskkill /f /im xxx.exe вслепую :-D но надо помнить имя экзешника


 
robt   (2012-06-16 12:43) [18]


> Как тогда в играх делают?

эта "опция",также как игнор Win включена в directx


 
antonn ©   (2012-06-16 14:59) [19]


> авторы вредоносного ПО считают иначе :)

авторы АТМ считаю тоже иначе :)


 
OPOPO   (2012-06-17 00:27) [20]

Раньше можно было отключить SPI-функцией вроде как.


 
sniknik ©   (2012-06-17 11:52) [21]

> авторы АТМ считаю тоже иначе :)
авторы ПВН опровергают авторов АТМ.



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

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.065 c
15-1331924751
Lamer?
2012-03-16 23:05
2013.03.22
Delphi xe


15-1335731403
Юрий
2012-04-30 00:30
2013.03.22
С днем рождения ! 30 апреля 2012 понедельник


15-1336595403
Юрий
2012-05-10 00:30
2013.03.22
С днем рождения ! 10 мая 2012 четверг


15-1352449269
tur0k_mag
2012-11-09 12:21
2013.03.22
cxTreeList + поле типа Combobox


6-1261579139
ZV
2009-12-23 17:38
2013.03.22
Client и Server. Как сделать надежно и просто ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский