?
Ja tut mir leid hab mich nur auf das gestützt was in dem vorherigen Link stand:
Nachdem ein Prozess vom Kernel generiert worden ist, wird er mit einem primären Thread-Objekt ausgestattet.
Das hab ich gemeint. Ist aber jetzt ja auch egal.
Nun hab ich ein weiteres Problem:
Ich hab jetzt ne DLL wenn die geladen wird soll ein Keyboardhook installiert werden.
Funktioniert auch soweit einwandfrei wenn das laden der DLL in der main Funktion geschiet:
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HANDLE hEditBox;
HINSTANCE hDLL;
switch(message)
{
case WM_CREATE:
{
//_beginthread(thread, 0, NULL);
hDLL = LoadLibrary("C:\\inject.dll");
return 0;
}
case WM_DESTROY:
{
/*
if(hHook != 0)
UnhookWindowsHookEx(hHook);
if(hFile != INVALID_HANDLE_VALUE)
CloseHandle(hFile);
*/
if(hDLL != NULL)
FreeLibrary(hDLL);
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
void __cdecl thread(void *pVoid)
{
hDLL = LoadLibrary("c:\\inject.dll");
}
Gut wenn ich jetzt aber mit _beginThread ein Thread starte und der dan die Library läd kommt auch das alles OK sei und der Hook installiert wurde aber aber die HookProc wird nicht aufgerufen.
Warum kann ich aus nen Thread auf einen anderen Thread des selbene Processes keinen Hook installieren?
Mfg PinguGroup
PS: wenn ich den Code der DLL noch posten soll sagt bescheid!