J
Danke für den Tipp mit dem FileMapping. Es klappt!
ich habe folgenden Code in die Dll eingefügt:
in SetupHook:
gm_hFile = CreateFile( "c:\\test.txt", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, NULL);
if( gm_hFile == INVALID_HANDLE_VALUE)
MessageBox( 0, "Fehler 1", "szAppName", 0);
ghFileMapping = CreateFileMapping( gm_hFile, NULL, PAGE_READWRITE, 0, 4, "testmap.txt");
if( ghFileMapping == 0)
MessageBox( 0, "Fehler 2", "szAppName", 0);
g_pGlobalData = (HWND*)MapViewOfFile( ghFileMapping, FILE_MAP_ALL_ACCESS, 0, 0, 4);
if( g_pGlobalData == NULL)
MessageBox( 0, "Fehler 3", "szAppName", 0);
*g_pGlobalData = hFenster;
in KeyboardHookProc:
HANDLE hFileMapping;
HWND *_pGlobalData;
hFileMapping = OpenFileMapping( FILE_MAP_ALL_ACCESS, FALSE, "testmap.txt");
_pGlobalData = (HWND*)MapViewOfFile( hFileMapping, FILE_MAP_ALL_ACCESS, 0, 0, 4);
//SendMessage ((HWND) hFenster, (WM_USER + 2), (WPARAM) wParam, (LPARAM) lParam) ;
SendMessage ( *_pGlobalData, (WM_USER + 2), (WPARAM) wParam, (LPARAM) lParam) ;
UnmapViewOfFile( _pGlobalData);
CloseHandle( hFileMapping);
in UninstallHook:
UnmapViewOfFile( g_pGlobalData);
CloseHandle( ghFileMapping);
CloseHandle( gm_hFile);
Wenn jemand einen Tipp hat wie es einfacher geht, oder doch ein MinGW-Pendant zu #pragma data_seg ("Shared") kennt postet dies doch bitte.
j_freeze