帮忙看看有没有错误。
54gym 2003-06-11 06:24:48 为什么生成的DLL不能注册,要怎样将它注入到指定进程? 下面是代码。#include <windows.h>
#include "stdafx.h"
WNDPROC lpOldWndFunc=NULL;
LRESULT CALLBACK WinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_SYSCOMMAND:
switch(LOWORD(wParam))
{
case 988:
MessageBox(hwnd,"test","About this demo...",MB_OK);
return TRUE;
}
break;
}
return CallWindowProc(lpOldWndFunc,hwnd,uMsg,wParam,lParam);
}
BOOL CALLBACK EnumWinProc(HWND hwnd, LPARAM lParam)
{
DWORD PID;
GetWindowThreadProcessId(hwnd,&PID);
if(PID==(DWORD)lParam)
{
HMENU SysMenu=GetSystemMenu(hwnd,FALSE);
if(SysMenu)
{
int ItemCount=GetMenuItemCount(SysMenu);
InsertMenu(SysMenu,ItemCount-1,MF_BYPOSITION|MF_STRING,988,"About This Demo...");
lpOldWndFunc=(WNDPROC)GetWindowLong(hwnd,GWL_WNDPROC);
SetWindowLong(hwnd,GWL_WNDPROC,(LONG)WinProc);
}
}
return TRUE;
}
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
EnumWindows(EnumWinProc,(LPARAM)(GetCurrentProcessId()));
break;
}
return TRUE;
}