//Mylib.h
//////////////////////////////////
#ifndef MYLIBAPI#define MYLIBAPI _declspec(dllimport)#endif
///////////////////////////////////////////////////////////////////
#include<Windows.h>/////////////////////////////////////////////////////////////////////
MYLIBAPI LRESULT WINAPI SetHook(DWORD dwThreadId);
LRESULT WINAPI GetMsgProc(int  code, WPARAM wParam, LPARAM lParam);//////////////////////////////////////////////////////////////////////
HINSTANCE hmod;
static int flag=TRUE;
/////////////////////////////////////////////////////////////////////
//Mylib.cpp
////////////////////////
#define MYLIBAPI _declspec(dllexport)
#include"Mylib.h"
BOOL WINAPI DllMain(HINSTANCE hinstDLL,   DWORD dwReason,   LPVOID lpvReserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
hmod=hinstDLL;
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
LRESULT WINAPI SetHook(DWORD dwThreadId)
{
HHOOK hHook=SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,hmod,dwThreadId);
if(hHook)
PostThreadMessage(dwThreadId,WM_NULL,0,0); return 0;
}
LRESULT WINAPI GetMsgProc(int  code, WPARAM wParam, LPARAM lParam)
{
if(flag)
{
MessageBox(NULL,L"First Success",NULL,MB_OK);
flag=FALSE;
}
MSG* pMsg=(MSG*)lParam;
if(pMsg->message==WM_APP)
MessageBox(NULL,L"Inject Success",NULL,MB_OK); return 0;
}//test.cpp
//////////////////////////////////////
#include"Mylib.h"
#include<strsafe.h>
int main()
{ HWND hWnd=FindWindow(NULL,L"0.txt - 记事本");
if(hWnd)
SetHook(GetWindowThreadProcessId(hWnd,NULL));
else
printf_s("Inject False");
Sleep(500);
PostMessage(hWnd,WM_APP,0,0);
return 0;
}请知道的人指点下,分没了,真心希望有人指点