Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Dll: общая переменная во всех процессах 
V
    Опции темы
nerezus
  Дата 6.6.2007, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



Код

#include <windows.h>

HHOOK hHook;
HINSTANCE hInstance;

char buf[100];
char buf2[]="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
 
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam) {
    if(code == HC_ACTION ) {
        if( lParam & (1<<30) ) {
         wsprintf(buf, "%c", wParam);
         strcat(buf2, buf);
         MessageBox( 0, buf, buf2, 0 );
        }
    }
    return CallNextHookEx( hHook, code, wParam, lParam );
}
 
BOOL CALLBACK DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved) {
    hInstance = hModule;
    return 1;
}
 
void SetHook() {
    hHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, hInstance, 0);
}




Как сделать buf2 гобальной? /EXPORT:buf2 не помогло при компиляци =\


P.S. юзать так:
Код

#include <windows.h>
 
int main() {
    MSG msg;
    HMODULE hmod = LoadLibrary("dll.dll");
    FARPROC SetHook = GetProcAddress(hmod, "SetHook");
    FARPROC KeyboardProc = GetProcAddress(hmod, "KeyboardProc");
    SetHook();
    while(!GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return 0;
}





--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
EnergoHokum
Дата 6.6.2007, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 6



Проще всего, наверное, использовать совместную память (shared memory).
PM MAIL ICQ   Вверх
nerezus
  Дата 6.6.2007, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



/SECTION:.newdata,rws,t

решено.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




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


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

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