├── README.md
└── WxMoreInstance
├── InjectDll
├── InjectDll.cpp
├── InjectDll.h
├── InjectDll.vcproj
├── InjectDll.vcproj.ZAB6J204CW8Q939.fish.user
├── InjectDll.vcxproj
├── InjectDll.vcxproj.filters
├── ProcessHandleHelper.h
├── ProcesshandlerHelper.cpp
├── ReadMe.txt
├── dllmain.cpp
├── stdafx.cpp
├── stdafx.h
└── targetver.h
├── Release
├── InjectDll.dll
└── WxMoreInstance.exe
├── WxMoreInstance.sln
├── WxMoreInstance.suo
├── WxMoreInstance.v11.suo
├── WxMoreInstance
├── MessageHandleUI.cpp
├── MessageHandleUI.h
├── ReadMe.txt
├── WeChatProcessInfo.cpp
├── WeChatProcessInfo.h
├── WechatTab.cpp
├── WechatTab.h
├── WechatTabUIData.cpp
├── WechatTabUIData.h
├── WxMoreInstance.aps
├── WxMoreInstance.cpp
├── WxMoreInstance.h
├── WxMoreInstance.rc
├── WxMoreInstance.vcproj
├── WxMoreInstance.vcxproj
├── WxMoreInstance.vcxproj.filters
├── WxMoreInstanceDlg.cpp
├── WxMoreInstanceDlg.h
├── res
│ ├── WxMoreInstance.ico
│ └── WxMoreInstance.rc2
├── resource.h
├── stdafx.cpp
├── stdafx.h
└── targetver.h
└── 文档
└── 微信tab逻辑.txt
/README.md:
--------------------------------------------------------------------------------
1 | # PC-
2 | PC微信多开源代码
3 |
4 | 修改hook判断条件,来兼容最新版本问题,如果不能多开,可以在博客留言
5 |
6 | 增加tab 功能,方便操作微信,后续有时间再增加功能
7 |
8 | 2021/4/12
9 |
10 | 1:修复内存导致不能多开问题
11 |
12 | 2:增加winodws高版本的API,兼容性更高【借鉴微软handle】
13 |
14 | 博客地址
15 | [博客文章地址](http://www.xiaoyutang.net/toptic/%e5%be%ae%e4%bf%a1/pc%e5%be%ae%e4%bf%a1%e5%a4%9a%e5%bc%80%e6%9c%80%e6%96%b0%e4%bb%a3%e7%a0%81%e3%80%90%e5%85%bc%e5%ae%b9%e6%80%a7%e9%9d%9e%e5%b8%b8%e9%ab%98%e3%80%91/)
16 |
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/InjectDll.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/InjectDll/InjectDll.cpp
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/InjectDll.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/InjectDll/InjectDll.h
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/InjectDll.vcproj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/InjectDll/InjectDll.vcproj
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/InjectDll.vcproj.ZAB6J204CW8Q939.fish.user:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
35 |
36 |
39 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/InjectDll.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {2AB2BEF0-B185-4381-AE5E-1BD03C7B3A5D}
15 | InjectDll
16 | Win32Proj
17 |
18 |
19 |
20 | DynamicLibrary
21 | v110
22 | Unicode
23 | true
24 |
25 |
26 | DynamicLibrary
27 | v110
28 | Unicode
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | <_ProjectFileVersion>11.0.61030.0
42 |
43 |
44 | $(SolutionDir)$(Configuration)\
45 | $(Configuration)\
46 | true
47 |
48 |
49 | $(SolutionDir)$(Configuration)\
50 | $(Configuration)\
51 | false
52 |
53 |
54 |
55 | Disabled
56 | WIN32;_DEBUG;_WINDOWS;_USRDLL;INJECTDLL_EXPORTS;%(PreprocessorDefinitions)
57 | true
58 | EnableFastChecks
59 | MultiThreadedDebugDLL
60 | Use
61 | Level3
62 | EditAndContinue
63 |
64 |
65 | true
66 | Windows
67 | MachineX86
68 |
69 |
70 |
71 |
72 | MaxSpeed
73 | true
74 | WIN32;NDEBUG;_WINDOWS;_USRDLL;INJECTDLL_EXPORTS;%(PreprocessorDefinitions)
75 | MultiThreadedDLL
76 | true
77 | Use
78 | Level3
79 | ProgramDatabase
80 |
81 |
82 | true
83 | Windows
84 | true
85 | true
86 | MachineX86
87 |
88 |
89 |
90 |
91 |
92 |
93 | false
94 |
95 |
96 | false
97 |
98 |
99 |
100 | Create
101 | Create
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/InjectDll.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav
15 |
16 |
17 | {b86798e5-1100-4bef-b071-77d4141b5cf1}
18 |
19 |
20 |
21 |
22 | 源文件
23 |
24 |
25 | 源文件
26 |
27 |
28 | 源文件
29 |
30 |
31 | 获取进程句柄
32 |
33 |
34 |
35 |
36 | 头文件
37 |
38 |
39 | 头文件
40 |
41 |
42 | 头文件
43 |
44 |
45 | 获取进程句柄
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/ProcessHandleHelper.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/InjectDll/ProcessHandleHelper.h
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/ProcesshandlerHelper.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/InjectDll/ProcesshandlerHelper.cpp
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/ReadMe.txt:
--------------------------------------------------------------------------------
1 | ========================================================================
2 | 动态链接库:InjectDll 项目概述
3 | ========================================================================
4 |
5 | 应用程序向导已为您创建了此 InjectDll DLL。
6 |
7 | 本文件概要介绍组成 InjectDll 应用程序的
8 | 的每个文件的内容。
9 |
10 |
11 | InjectDll.vcproj
12 | 这是使用应用程序向导生成的 VC++ 项目的主项目文件,
13 | 其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
14 |
15 | InjectDll.cpp
16 | 这是主 DLL 源文件。
17 |
18 | /////////////////////////////////////////////////////////////////////////////
19 | 其他标准文件:
20 |
21 | StdAfx.h, StdAfx.cpp
22 | 这些文件用于生成名为 InjectDll.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
23 |
24 | /////////////////////////////////////////////////////////////////////////////
25 | 其他注释:
26 |
27 | 应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。
28 |
29 | /////////////////////////////////////////////////////////////////////////////
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/dllmain.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/InjectDll/dllmain.cpp
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/InjectDll/stdafx.cpp
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/InjectDll/stdafx.h
--------------------------------------------------------------------------------
/WxMoreInstance/InjectDll/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/InjectDll/targetver.h
--------------------------------------------------------------------------------
/WxMoreInstance/Release/InjectDll.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/Release/InjectDll.dll
--------------------------------------------------------------------------------
/WxMoreInstance/Release/WxMoreInstance.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/Release/WxMoreInstance.exe
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2012
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WxMoreInstance", "WxMoreInstance\WxMoreInstance.vcxproj", "{C3DE2CF4-F23C-413A-AA20-8EED0FF773BD}"
5 | ProjectSection(ProjectDependencies) = postProject
6 | {2AB2BEF0-B185-4381-AE5E-1BD03C7B3A5D} = {2AB2BEF0-B185-4381-AE5E-1BD03C7B3A5D}
7 | EndProjectSection
8 | EndProject
9 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectDll", "InjectDll\InjectDll.vcxproj", "{2AB2BEF0-B185-4381-AE5E-1BD03C7B3A5D}"
10 | EndProject
11 | Global
12 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
13 | Debug|Win32 = Debug|Win32
14 | Release|Win32 = Release|Win32
15 | EndGlobalSection
16 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
17 | {C3DE2CF4-F23C-413A-AA20-8EED0FF773BD}.Debug|Win32.ActiveCfg = Debug|Win32
18 | {C3DE2CF4-F23C-413A-AA20-8EED0FF773BD}.Debug|Win32.Build.0 = Debug|Win32
19 | {C3DE2CF4-F23C-413A-AA20-8EED0FF773BD}.Release|Win32.ActiveCfg = Release|Win32
20 | {C3DE2CF4-F23C-413A-AA20-8EED0FF773BD}.Release|Win32.Build.0 = Release|Win32
21 | {2AB2BEF0-B185-4381-AE5E-1BD03C7B3A5D}.Debug|Win32.ActiveCfg = Debug|Win32
22 | {2AB2BEF0-B185-4381-AE5E-1BD03C7B3A5D}.Debug|Win32.Build.0 = Debug|Win32
23 | {2AB2BEF0-B185-4381-AE5E-1BD03C7B3A5D}.Release|Win32.ActiveCfg = Release|Win32
24 | {2AB2BEF0-B185-4381-AE5E-1BD03C7B3A5D}.Release|Win32.Build.0 = Release|Win32
25 | EndGlobalSection
26 | GlobalSection(SolutionProperties) = preSolution
27 | HideSolutionNode = FALSE
28 | EndGlobalSection
29 | EndGlobal
30 |
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance.suo
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance.v11.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance.v11.suo
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/MessageHandleUI.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/MessageHandleUI.cpp
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/MessageHandleUI.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/MessageHandleUI.h
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/ReadMe.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/ReadMe.txt
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WeChatProcessInfo.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "WeChatProcessInfo.h"
3 |
4 |
5 | WeChatProcessInfo::WeChatProcessInfo(void)
6 | {
7 | }
8 |
9 |
10 | WeChatProcessInfo::~WeChatProcessInfo(void)
11 | {
12 | }
13 |
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WeChatProcessInfo.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | class WeChatProcessInfo
5 | {
6 | public:
7 | WeChatProcessInfo(void);
8 | ~WeChatProcessInfo(void);
9 |
10 | public:
11 | HWND WechatHwnd;
12 | std::wstring RawName;
13 | std::wstring MarkName;
14 | int ProcessID;
15 | CButton* PButton;
16 | };
17 |
18 |
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WechatTab.cpp:
--------------------------------------------------------------------------------
1 | // WechatTab.cpp : 实现文件
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "WxMoreInstance.h"
6 | #include "WechatTab.h"
7 | #include "afxdialogex.h"
8 |
9 |
10 | // WechatTab 对话框
11 | IMPLEMENT_DYNAMIC(WechatTab, CDialogEx)
12 |
13 | WechatTab::WechatTab(CWnd* pParent /*=NULL*/)
14 | : CDialogEx(WechatTab::IDD, pParent)
15 | {
16 | m_last_tab_width = 100;
17 | }
18 |
19 | WechatTab::~WechatTab()
20 | {
21 | }
22 |
23 | void WechatTab::DoDataExchange(CDataExchange* pDX)
24 | {
25 | CDialogEx::DoDataExchange(pDX);
26 | }
27 |
28 | LRESULT WechatTab::OnWeChatHWNDMessage(WPARAM wParam, LPARAM lParam)
29 | {
30 | HWND hw = (HWND)lParam;
31 | if(!IsCotain(hw)){
32 | CString str;
33 | int index = m_tab_button_list.size() + 1;
34 | str.Format(L"微信%d", index);
35 | AddItemUI(str, hw);
36 | }
37 | return 0;
38 | }
39 |
40 | //遍历所有微信窗口,是否微信窗口已经关闭了,如果关闭就关掉tab
41 | //这里逻辑可以扩展
42 | LRESULT WechatTab::OnWeChatHWNDCloseMessage(WPARAM wParam, LPARAM lParam)
43 | {
44 | OutputDebugString(L"收到微信关闭窗口消息\r\n");
45 | HWND hw = (HWND)wParam;
46 | RemoveItemUI(hw);
47 | return 0;
48 | }
49 |
50 | void WechatTab::OnAutoTabButtonClick()
51 | {
52 | HWND hw = FindWechatFromTab();
53 | ::SetForegroundWindow(hw);
54 | ::ShowWindow(hw, SW_SHOW);
55 | //MessageBox(L"hello world");
56 | }
57 |
58 | //判断当前增加一个tab会不会显示完整,如果能显示完整那么当前宽度就是默认值
59 | //如果不能显示,那么就重新计算当前的宽度
60 | int WechatTab::CalcTabWidth()
61 | {
62 | int width = 100;
63 | int new_size = m_tab_button_list.size() + 1;
64 | int start_x = 0;
65 | int total_widht = 0;
66 | int gap = 2;
67 | total_widht = start_x + new_size * width + (new_size - 1) * gap;
68 |
69 | //获取UI显示宽度
70 | CRect parent_rect;
71 | this->GetWindowRect(&parent_rect);
72 | if(total_widht > parent_rect.Width()){
73 | width = parent_rect.Width() / new_size - gap;
74 | //TRACE(L"w:%d p:%d \n", width, parent_rect.Width());
75 | }
76 | return width;
77 | }
78 |
79 | CRect WechatTab::CalcTabRect(int index)
80 | {
81 | CRect parent_rect;
82 | this->GetWindowRect(&parent_rect);
83 |
84 | int gap = 2; //间隔10px
85 | int start_x = 0;
86 | int start_y = 1;
87 | int width = CalcTabWidth();
88 | int height = parent_rect.Height() - 1 - 50;
89 | int size = m_tab_button_list.size();
90 | int last_index = size - 1;
91 | int current_index = index;
92 |
93 | int new_x = start_x + current_index*gap + current_index* width;
94 | return CRect(new_x, start_y, new_x + width, start_y + height);
95 | }
96 |
97 |
98 |
99 | CRect WechatTab::CalcNewTabRect()
100 | {
101 | int size = m_tab_button_list.size();
102 | int last_index = size - 1;
103 | int current_index = last_index + 1;
104 | return CalcTabRect(current_index);
105 | }
106 |
107 | CButton* WechatTab::CreateTabItem(CString name)
108 | {
109 | CButton* p = new CButton();
110 | CRect parent_rect;
111 | this->GetWindowRect(&parent_rect);
112 | CRect rect = CalcNewTabRect();
113 |
114 | //TRACE(L"parent:%d x: %d y:%d width:%d heidht:%d\n", parent_rect.Width(), rect.left, rect.top , rect.Width(), rect.Height());
115 | p->Create(name, 0 , rect, this, IDC_BUTTON_AUTO_TAB);
116 | //赋值,同时需要重新刷新界面
117 | if(rect.Width() != m_last_tab_width){
118 | m_last_tab_width = rect.Width();
119 | //需要重新刷新界面
120 | RefreshTabUI();
121 | }
122 |
123 | return p;
124 | }
125 |
126 | void WechatTab::RefreshTabUI()
127 | {
128 | CString str;
129 | for(unsigned int i = 0 ; i < m_tab_button_list.size(); i++){
130 | CRect rect = CalcTabRect(i);
131 | m_tab_button_list[i].PButton->MoveWindow(rect);
132 | str.Format(L"微信%d", i + 1);
133 | m_tab_button_list[i].PButton->SetWindowTextW(str);
134 | }
135 | }
136 |
137 | bool WechatTab::IsCotain(HWND hw)
138 | {
139 | bool is_find = false;
140 | for(unsigned int i = 0 ; i < m_tab_button_list.size(); i++){
141 | //TRACE("LIST raw_wechat:%d hw:%d \r\n", m_tab_button_list[i].WechatHwnd, hw);
142 |
143 | WCHAR text[256] = {0};
144 | GetClassName(hw,text, 256);
145 | //OutputDebugString(text);
146 | if(m_tab_button_list[i].WechatHwnd == hw){
147 | is_find = true;
148 | }
149 | }
150 | return is_find;
151 | }
152 |
153 | HWND WechatTab::FindWechatFromTab()
154 | {
155 | CPoint pt;
156 | GetCursorPos(&pt);
157 | ScreenToClient(&pt);
158 | //TRACE("鼠标位置rect: %d %d\r\n", pt.x, pt.y);
159 |
160 | for(unsigned int i = 0 ; i < m_tab_button_list.size(); i++){
161 | CRect rect;
162 | m_tab_button_list[i].PButton->GetWindowRect(&rect);
163 | ScreenToClient(&rect);
164 | if(pt.x >= rect.left && pt.x <= rect.right && pt.y >= rect.top && pt.y <= rect.bottom){
165 | return m_tab_button_list[i].WechatHwnd;
166 | }
167 | }
168 | return 0;
169 | }
170 |
171 | std::vector WechatTab::CheckWechatIsBad()
172 | {
173 | std::vector info_list;
174 | for(std::vector::iterator it = m_tab_button_list.begin(); it !=m_tab_button_list.end(); it++){
175 | if(!::IsWindow(it->WechatHwnd)){
176 | info_list.push_back(*it);
177 | }
178 | }
179 | return info_list;
180 | }
181 |
182 | BEGIN_MESSAGE_MAP(WechatTab, CDialogEx)
183 | ON_MESSAGE(WM_MAIN_WECHAT_HWND_MSG,OnWeChatHWNDMessage)
184 | ON_MESSAGE(WM_MAIN_WECHAT_HWND_CLOSE_MSG,OnWeChatHWNDCloseMessage)
185 | ON_BN_CLICKED(IDC_BUTTON_AUTO_TAB, OnAutoTabButtonClick)
186 | //ON_MESSAGE(WM_BUTT)
187 | END_MESSAGE_MAP()
188 |
189 |
190 | // WechatTab 消息处理程序
191 | bool WechatTab::AddItemUI(CString name, HWND hw_chat)
192 | {
193 | CButton* p = CreateTabItem(name);
194 | WeChatProcessInfo info;
195 | info.PButton = p;
196 | info.WechatHwnd = hw_chat;
197 |
198 | m_tab_button_list.push_back(info);
199 | p->ShowWindow(SW_SHOW);
200 | return false;
201 | }
202 |
203 | //按钮删除销毁
204 | //同时需要重新排列按钮
205 | void WechatTab::RemoveItemUI(HWND hw_chat)
206 | {
207 | for(std::vector::iterator it = m_tab_button_list.begin(); it !=m_tab_button_list.end(); it++){
208 | if(it->WechatHwnd == hw_chat){
209 | it->PButton->ShowWindow(SW_HIDE);
210 | it->PButton->CloseWindow();
211 | it->PButton->DestroyWindow();
212 | delete it->PButton; //释放,防止内存泄漏
213 | m_tab_button_list.erase(it);
214 | break;
215 | }
216 | }
217 |
218 | RefreshTabUI();
219 | }
220 |
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WechatTab.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/WechatTab.h
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WechatTabUIData.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "WechatTabUIData.h"
3 |
4 |
5 | WechatTabUIData::WechatTabUIData(void)
6 | {
7 |
8 | }
9 |
10 |
11 | WechatTabUIData::~WechatTabUIData(void)
12 | {
13 | }
14 |
15 | void WechatTabUIData::Init(HWND hw)
16 | {
17 | m_UIHwnd = hw;
18 | }
19 |
20 |
21 | void WechatTabUIData::AddItem(std::wstring name)
22 | {
23 | }
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WechatTabUIData.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/WechatTabUIData.h
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WxMoreInstance.aps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/WxMoreInstance.aps
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WxMoreInstance.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/WxMoreInstance.cpp
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WxMoreInstance.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/WxMoreInstance.h
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WxMoreInstance.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/WxMoreInstance.rc
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WxMoreInstance.vcproj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/WxMoreInstance.vcproj
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WxMoreInstance.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {C3DE2CF4-F23C-413A-AA20-8EED0FF773BD}
15 | WxMoreInstance
16 | MFCProj
17 |
18 |
19 |
20 | Application
21 | v110
22 | Static
23 | Unicode
24 | true
25 |
26 |
27 | Application
28 | v110
29 | Static
30 | Unicode
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | <_ProjectFileVersion>11.0.61030.0
44 |
45 |
46 | $(SolutionDir)$(Configuration)\
47 | $(Configuration)\
48 | true
49 |
50 |
51 | $(SolutionDir)$(Configuration)\
52 | $(Configuration)\
53 | false
54 |
55 |
56 |
57 | _DEBUG;%(PreprocessorDefinitions)
58 | false
59 | true
60 |
61 |
62 | Disabled
63 | WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)
64 | true
65 | EnableFastChecks
66 | MultiThreadedDebug
67 | Use
68 | Level3
69 | EditAndContinue
70 |
71 |
72 | _DEBUG;%(PreprocessorDefinitions)
73 | 0x0804
74 | $(IntDir);%(AdditionalIncludeDirectories)
75 |
76 |
77 | ../Debug/InjectDll.lib;%(AdditionalDependencies)
78 | true
79 | Windows
80 | MachineX86
81 |
82 |
83 |
84 |
85 | NDEBUG;%(PreprocessorDefinitions)
86 | false
87 | true
88 |
89 |
90 | MaxSpeed
91 | true
92 | WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)
93 | false
94 | MultiThreaded
95 | true
96 | Use
97 | Level3
98 | ProgramDatabase
99 |
100 |
101 | NDEBUG;%(PreprocessorDefinitions)
102 | 0x0804
103 | $(IntDir);%(AdditionalIncludeDirectories)
104 |
105 |
106 | ../Release/InjectDll.lib;%(AdditionalDependencies)
107 | true
108 | Windows
109 | true
110 | true
111 | MachineX86
112 |
113 |
114 |
115 |
116 |
117 | Create
118 | Create
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WxMoreInstance.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav
15 |
16 |
17 | {18c3a0f5-27d4-43b2-bc7d-494d9703ff4a}
18 |
19 |
20 | {cc21451e-3a81-48cf-bd57-c1908752928b}
21 |
22 |
23 | {8e507eec-a8f1-42f1-8081-844016cffaaf}
24 |
25 |
26 | {2f567cce-bf73-4da9-aa4d-1645409f522d}
27 |
28 |
29 |
30 |
31 | 源文件
32 |
33 |
34 | 源文件
35 |
36 |
37 | 源文件
38 |
39 |
40 | 界面\Tab
41 |
42 |
43 | 界面\Tab
44 |
45 |
46 | 交互消息
47 |
48 |
49 | 数据
50 |
51 |
52 |
53 |
54 | 头文件
55 |
56 |
57 | 头文件
58 |
59 |
60 | 头文件
61 |
62 |
63 | 头文件
64 |
65 |
66 | 头文件
67 |
68 |
69 | 界面\Tab
70 |
71 |
72 | 界面\Tab
73 |
74 |
75 | 交互消息
76 |
77 |
78 | 数据
79 |
80 |
81 |
82 |
83 | 资源文件
84 |
85 |
86 |
87 |
88 | 资源文件
89 |
90 |
91 |
92 |
93 | 资源文件
94 |
95 |
96 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WxMoreInstanceDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/WxMoreInstanceDlg.cpp
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/WxMoreInstanceDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/WxMoreInstanceDlg.h
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/res/WxMoreInstance.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/res/WxMoreInstance.ico
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/res/WxMoreInstance.rc2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/res/WxMoreInstance.rc2
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/resource.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/resource.h
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/stdafx.cpp
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/stdafx.h
--------------------------------------------------------------------------------
/WxMoreInstance/WxMoreInstance/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/WxMoreInstance/targetver.h
--------------------------------------------------------------------------------
/WxMoreInstance/文档/微信tab逻辑.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xvsdf100/PCWeChatMore/7682a41863d6a0f1365baad47aec78fcd8218dab/WxMoreInstance/文档/微信tab逻辑.txt
--------------------------------------------------------------------------------