Форум программистов, компьютерный форум CyberForum.ru

Глобальный хук. Довести до ума - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Square Head на прямоугольном поле http://www.cyberforum.ru/cpp/thread49383.html
Народ! Помогите пожалуйста. Есть 4 задачи на выбор, нужно решить любую! Не скрою, C++, знаю плоховато, а задачу надо сдать сегодня. Кому не сложно - напишите код любой. Буду очень благодарен. Не забуду! Реализовать на C++ Вот сообственно задачи: • (Square Head). Square Head на прямоугольном поле размером 32 х 20 ячеек. В начальный момент времени ячейки закрашены случайными цветами (в...
C++ Предлогаю создать игровую платформу Привет всем,предлогаю создать собственную платформу(игровая,игры: Cs 1.6,War craft,пока такие),с меня сайт ,сайт будет на английском,и игровая платформа должна быть на Angl + Rus ,на ней также можно рубить денги со временем,есть текущая игровая платформа : Garena (www.garena.com) ,придумаем собственное,думаю вы согласитесь,и создадим свою платформу,со временем,может и станем Популярными. Мои... http://www.cyberforum.ru/cpp/thread49371.html
C++ Классы строки
Создаю класс в котором главной переменной является динамическая строка Проблема в том что когда я удаляю временный класс(в ф-циях операторах сложение и равно) вылетает ошибка (типа не правильно удаляю строку...) вот заголовочный файл класса: #pragma once class Cstring { char* stroka;
Проблема с классом C++
Доброе времени суток...у меня проблема в создании класса - динамического массива! проблема в изминении определённого элемента и вывода на экран массива компилятор Visual Studio 2008 Вот заголовочный файл(в нём описание класса) #pragma once class Carray { int* masiv;
C++ Программинг для Windows http://www.cyberforum.ru/cpp/thread48955.html
Всем доброго время суток) Я хочу начать программировать для Windows, но сначала хотел бы задать вам 2 вопроса 1)с чего лучше начать изучение с win32 api как осовы или с mfc как более простого и потом уже перейти к api 2)очень простой: какую литературу посоветуете? всем заранее спасибо:drink:
C++ strict c++ : 64 bit int strict c++ : 64 bit int как можно задать 64 битную целую переменную? желательно без подключения библиотек, без вывода предупреждений интересует для g++ и msvc9express подробнее

Показать сообщение отдельно
TGrey[WoLf]
 Аватар для TGrey[WoLf]
39 / 39 / 1
Регистрация: 14.09.2008
Сообщений: 685
04.09.2009, 16:37     Глобальный хук. Довести до ума
Здравствуйте, решил изучить механизмы хуков, почитал статьи. Появились вопросы.
Вот собственно если делать глобальный хук, то функцию нужно совать в ДЛЛ. Нужно ли ее потом как-то специально загружать? Или как она ко всем процессам пристанет?
Потом, как влияет на это #pragma data_seg что оно делаем в этом случае? А так же #pragma comment(linker, "/section:.ИМЯ,rws")

Точнее я прочил, что эти операции делают и как работают, но не пойму, как они работают в этом случае вообще. Толку что они будут в секции READ WRITE SHARED?
Вроде пока все. Вот код который есть.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream.h>
#include "GH.h"
 
HHOOK hook;
HINSTANCE hin;
 
int APIENTRY DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved){
    switch (fdwReason)
    {
        case DLL_PROCESS_ATTACH :
            hin = hInstance ;
            break ;
    }  
    return TRUE ;
}
 
 
extern "C" __declspec(dllexport) void Pr()
{
    cout<<"Works"<<endl;
}
 
extern "C" __declspec(dllexport) bool TurnON()
{
    cout<<"Hook ON"<<endl;
    hook = SetWindowsHookEx(WH_CALLWNDPROC, HookProc,hin, NULL);
    return true;
}
 
LRESULT CALLBACK HookProc( int nCode, WPARAM wParam,LPARAM lParam)
{
    if( nCode == HC_ACTION )
        cout<<"Action"<<endl;
    return CallNextHookEx(hook, nCode, wParam, lParam);
}
и

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <windows.h>
#include <iostream.h>
#include <conio.h>
 
bool(*F)();
int main()
{
    HINSTANCE h;
 
    h = LoadLibrary("GH.dll");
    if( h != NULL )
        cout<<"Loaded"<<endl;
    else
    {
        cout<<"Cannot load"<<endl;
        exit(0);
    }
 
    F = (bool (*)())GetProcAddress(h, "TurnON");
    F();
    getch();
    FreeLibrary(h);
    return 0;
}
Пока не работает ничего.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru