Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Блокировка клавиш 
V
    Опции темы
gta4kv
Дата 13.4.2007, 17:49 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Всем бодрый вечер.

Вообщем появилось такая нужда, заблокировать комбинации клавиш "Ctrl-Alt-Delete","Alt+F4","Alt-Tab". И прочие комбинации, с помощью которых можно выйти из программы. ( К вирусам это ни как не относится ).

Смысл в том что сам код надо запихнуть в DLL'ку и прикрутить её к Vb.NET проекту, поскольку в VB нету таких возможностей..

Посколько я С++ дуб -  smile  smile 

Заранее благодарен. 
PM MAIL   Вверх
_hunter
Дата 13.4.2007, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



поиск по форуму спасет отца советской демократии... -- таких тем (даже с примерами) кучу уже понаподнимали...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
v2v
Дата 13.4.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56




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


Хотя с другой стороны тебе наверное что то другое надо нежели перехват нажатий клавиш, бо: правое нажатие клавиш на часах (правый нижний угол) и выбираем: Диспечер задач).


--------------------
PM   Вверх
gta4kv
Дата 13.4.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Дык часов то тоже не будет!
Да и подставить "свою" правую кнопку, в VB не проблема. 

ps. Полез в поиск.

PM MAIL   Вверх
gta4kv
Дата 13.4.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Вы будите меня пинать, но ничего подходящего не нашел. ( Может из-за того что у меня .net язык? )

Можно или указать меня на тему или лучше сюда пример?  smile  smile 

Я вроде уже написал что я С++.дуб))
PM MAIL   Вверх
Greeen
Дата 13.4.2007, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Раз
Три
Два
Еще с десяток можно найти если постараться.


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
gta4kv
Дата 13.4.2007, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Воспользовался ссылкой из первого примера ( http://www.uinc.ru/articles/zametki/001.shtml )
Застрял на .cpp файле ( смотрите по той же ссылке ) 

Получил такие ошибки : http://img222.imageshack.us/img222/6818/spfb7.png
PM MAIL   Вверх
Greeen
Дата 13.4.2007, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Что за среда/компилятор? Винда?

Это сообщение отредактировал(а) Greeen - 13.4.2007, 19:48


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
gta4kv
Дата 13.4.2007, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Винда

Visual Studio 2005.
PM MAIL   Вверх
Greeen
Дата 13.4.2007, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



smile))) понятно что винда. не виста случаем?


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
gta4kv
Дата 13.4.2007, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Нет. XP.

Что бы под вистой пахало нужен апдейт 500мб.. Так что Visual Studio у меня под XP.
PM MAIL   Вверх
Greeen
Дата 13.4.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Странно на самом деле. Эти функции в user32.dll находятся. Покажи код, может чего напутал.

Так так, только заметил, а зачем тебе .NET для хука?

Это сообщение отредактировал(а) Greeen - 13.4.2007, 19:58


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
gta4kv
Дата 13.4.2007, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Цитата(Greeen @ 13.4.2007,  19:57)
Странно на самом деле. Эти функции в user32.dll находятся. Покажи код, может чего напутал.

Так так, только заметил, а зачем тебе .NET для хука?

.NET а с чего ты решил что мне именно NET нужен?


Код :

Код

// This is the main DLL file.

#include "stdafx.h"

#include "Lock.h"

// Глобальные переменные
HINSTANCE hInstance = NULL; // The instance of the DLL

// Описание нашей хук-функци
LRESULT CALLBACK KeyboardMsgProc ( int, WPARAM, LPARAM );


#pragma data_seg(".SData")
HHOOK hMsgHook = NULL; // Handle нашего хука
UINT KBoardMessage = NULL; // Сообщение, которое мы будем посылать
                           // родительскому приложению
HWND hParentWnd = NULL; // Окно родительского приложения
#pragma data_seg( )

//Директива линкеру создать разделяемую(shared) секцию с атрибутами RWS
#pragma comment(linker,"/SECTION:.SData,RWS")

// Далее, обычная DllMain
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    if (ul_reason_for_call == DLL_PROCESS_ATTACH)
        hInstance = (HINSTANCE)hModule;

    return TRUE;
}

// Две функции SetHook и UnsetHook

MYHOOKDLL_API int SetHook (HWND hWnd, // window which 
                    // should receive notification messages
        UINT UpdateMsg) // notification message
{
    if (hWnd == NULL) return -1;
    
    // Save received parameters
    hParentWnd = hWnd;
    KBoardMessage = UpdateMsg;
    
    // Set hook
    hMsgHook= ::SetWindowsHookEx (WH_GETMESSAGE, KeyboardMsgProc, hInstance, 0);
    
    // If we are failed...
    if (hMsgHook == NULL)
        return -1;
        
    return 0;
};

MYHOOKDLL_API int UnSetHook()
{
    UnhookWindowsHookEx (hMsgHook);
    
    hMsgHook = NULL;
    
    return 0;
};


LRESULT CALLBACK KeyboardMsgProc (int code, WPARAM wParam, LPARAM lParam)
{
    if (code >= 0)
    {
        MSG * msg = (MSG * )lParam;


        if ((lParam)
            &&(msg->message == WM_CHAR)
            &&(wParam == PM_REMOVE))

    
            PostMessage (hParentWnd, KBoardMessage, msg->wParam, 0 );
    }


    return CallNextHookEx (hMsgHook, code ,wParam , lParam);
};



PM MAIL   Вверх
Greeen
Дата 13.4.2007, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Иди в свойства проекта (Project->Properties) и ставь Use Managed Extensions - NO


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
gta4kv
Дата 13.4.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



В какой это может быть вкладке ? Я что то не нашел.  smile 

Это сообщение отредактировал(а) gta4kv - 13.4.2007, 20:11
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0785 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.