Главная страница
    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.081 c
15-1352291019
Inovet
2012-11-07 16:23
2013.03.22
Скончаося Кругляков Эдуард Павлович


2-1334410535
tolbase
2012-04-14 17:35
2013.03.22
Delphi 7! Как отловить событие minimize формы?


15-1347628556
Baks
2012-09-14 17:15
2013.03.22
Подскажите функцию сравнения чисел


2-1330269660
Незнающий усталости
2012-02-26 19:21
2013.03.22
Как задать фокус ячейки?


15-1350903963
asafr
2012-10-22 15:06
2013.03.22
Экскурс в будущее (заметки путешественника по времени)





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