将setdll拷贝到exe文件所在的目录打开dos界面定位到该目录下
录入setdll /d:file.dll file.exe 将dll附加到exe文件中
在dll 中就可以操作exe的部分功能了
例如
HWND hwndMainAppWnd = ::FindWindow("APPclassname", NULL);
if (hwndMainAppWnd) ::EnumChildWindows(hwndMainAppWnd, EnumChildProcForListCtrl, 0);
APP_CLASSNAME:自定义的exe中的APP的名字
EnumChildWindows(hwndMainAppWnd, EnumChildProcForListCtrl, 0);
可以查询该exe下的所有的listctrl控件窗体,找到了自己要找的控件可以对它进行操作
BOOL CALLBACK EnumChildProcForListCtrl(HWND hwnd, LPARAM lParam)
{
char szText[256];
::ZeroMemory(szText, 256);
::GetWindowText(hwnd, szText, 255);
if (strcmp(szText, "PwrOffStnList") == 0)
{
g_hwndListCtrl = hwnd; //一个全局的句柄得到要找的listctrl窗体的句柄
return FALSE; // Found!
}
return TRUE; // Not found, continue searching...
}
暂时还不如何在该窗体中得到不是从基本窗体类中继承的方法和变量,
删除:setdll /r:file.dll file.exe 将dll从exe文件中移除