<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; "><span class="pln">BOOL CALLBACK </span><span class="typ" style="color: rgb(102, 0, 102); ">EnumThreadWndProc</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">HWND hwnd</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="pln"> LPARAM lParam </span><span class="pun" style="color: rgb(102, 102, 0); ">)</span> <span class="pun" style="color: rgb(102, 102, 0); ">{</span><span class="pln"> </span> <span class="pln"> std</span><span class="pun" style="color: rgb(102, 102, 0); ">::</span><span class="pln">list</span><span class="pun" style="color: rgb(102, 102, 0); "><</span><span class="pln">HWND</span><span class="pun" style="color: rgb(102, 102, 0); ">>*</span><span class="pln"> plist </span><span class="pun" style="color: rgb(102, 102, 0); ">=</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">std</span><span class="pun" style="color: rgb(102, 102, 0); ">::</span><span class="pln">list</span><span class="pun" style="color: rgb(102, 102, 0); "><</span><span class="pln">HWND</span><span class="pun" style="color: rgb(102, 102, 0); ">>*)</span><span class="pln">lParam</span><span class="pun" style="color: rgb(102, 102, 0); ">;</span> <span class="pln"> plist</span><span class="pun" style="color: rgb(102, 102, 0); ">-></span><span class="pln">push_back</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">hwnd</span><span class="pun" style="color: rgb(102, 102, 0); ">);</span> <span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136); ">return</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136); ">true</span><span class="pun" style="color: rgb(102, 102, 0); ">;</span> <span class="pun" style="color: rgb(102, 102, 0); ">}</span></p><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; "> </p><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; "><span class="kwd" style="color: rgb(0, 0, 136); ">int</span><span class="pln"> main</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="kwd" style="color: rgb(0, 0, 136); ">void</span><span class="pun" style="color: rgb(102, 102, 0); ">)</span> <span class="pun" style="color: rgb(102, 102, 0); ">{</span> <span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102); ">CWnd</span><span class="pun" style="color: rgb(102, 102, 0); ">*</span><span class="pln"> pWnd </span><span class="pun" style="color: rgb(102, 102, 0); ">=</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102); ">CWnd</span><span class="pun" style="color: rgb(102, 102, 0); ">::</span><span class="typ" style="color: rgb(102, 0, 102); ">FindWindow</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">NULL</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="pln"> </span><span class="str" style="color: rgb(0, 136, 0); ">"360云盘"</span><span class="pun" style="color: rgb(102, 102, 0); ">);</span> <span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136); ">if</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">pWnd</span><span class="pun" style="color: rgb(102, 102, 0); ">)</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">{</span> <span class="pln"> DWORD dwtheadid</span><span class="pun" style="color: rgb(102, 102, 0); ">;</span> <span class="pln"> DWORD dwProcessId</span><span class="pun" style="color: rgb(102, 102, 0); ">;</span> <span class="pln"> </span><span class="com" style="color: rgb(136, 0, 0); ">//根据窗口得到线程ID,进程ID</span> <span class="pln"> dwtheadid </span><span class="pun" style="color: rgb(102, 102, 0); ">=</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102); ">GetWindowThreadProcessId</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">pWnd</span><span class="pun" style="color: rgb(102, 102, 0); ">-></span><span class="typ" style="color: rgb(102, 0, 102); ">GetSafeHwnd</span><span class="pun" style="color: rgb(102, 102, 0); ">(),&</span><span class="pln">dwProcessId</span><span class="pun" style="color: rgb(102, 102, 0); ">);</span> <span class="pln"> std</span><span class="pun" style="color: rgb(102, 102, 0); ">::</span><span class="pln">list</span><span class="pun" style="color: rgb(102, 102, 0); "><</span><span class="pln">HWND</span><span class="pun" style="color: rgb(102, 102, 0); ">></span><span class="pln"> list1</span><span class="pun" style="color: rgb(102, 102, 0); ">;</span> <span class="pln"> </span><span class="com" style="color: rgb(136, 0, 0); ">//枚举线程的所有窗口</span> <span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102); ">EnumThreadWindows</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">dwtheadid</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="typ" style="color: rgb(102, 0, 102); ">EnumThreadWndProc</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">LPARAM</span><span class="pun" style="color: rgb(102, 102, 0); ">)&</span><span class="pln">list1</span><span class="pun" style="color: rgb(102, 102, 0); ">);</span> <span class="pln"> </span><span class="com" style="color: rgb(136, 0, 0); ">//发消息给窗口打开一个对话框</span> <span class="pln"> pWnd</span><span class="pun" style="color: rgb(102, 102, 0); ">-></span><span class="typ" style="color: rgb(102, 0, 102); ">PostMessage</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">WM_USER</span><span class="pun" style="color: rgb(102, 102, 0); ">+</span><span class="lit" style="color: rgb(0, 102, 102); ">2017</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102); ">0</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102); ">0x00000002</span><span class="pun" style="color: rgb(102, 102, 0); ">);</span> <span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102); ">Sleep</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="lit" style="color: rgb(0, 102, 102); ">3000</span><span class="pun" style="color: rgb(102, 102, 0); ">);</span> <span class="pln"> </span> <span class="pln"> std</span><span class="pun" style="color: rgb(102, 102, 0); ">::</span><span class="pln">list</span><span class="pun" style="color: rgb(102, 102, 0); "><</span><span class="pln">HWND</span><span class="pun" style="color: rgb(102, 102, 0); ">></span><span class="pln"> list2</span><span class="pun" style="color: rgb(102, 102, 0); ">;</span> <span class="pln"> </span><span class="com" style="color: rgb(136, 0, 0); ">//再次枚举线程的所有窗口</span> <span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102); ">EnumThreadWindows</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">dwtheadid</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="typ" style="color: rgb(102, 0, 102); ">EnumThreadWndProc</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">LPARAM</span><span class="pun" style="color: rgb(102, 102, 0); ">)&</span><span class="pln">list2</span><span class="pun" style="color: rgb(102, 102, 0); ">);</span> <span class="pln"> </span> <span class="pln"> </span><span class="com" style="color: rgb(136, 0, 0); ">//查找刚打开的那个对话框</span> <span class="pln"> std</span><span class="pun" style="color: rgb(102, 102, 0); ">::</span><span class="pln">list</span><span class="pun" style="color: rgb(102, 102, 0); "><</span><span class="pln">HWND</span><span class="pun" style="color: rgb(102, 102, 0); ">>::</span><span class="pln">iterator it </span><span class="pun" style="color: rgb(102, 102, 0); ">=</span><span class="pln"> list2</span><span class="pun" style="color: rgb(102, 102, 0); ">.</span><span class="kwd" style="color: rgb(0, 0, 136); ">begin</span><span class="pun" style="color: rgb(102, 102, 0); ">();</span> <span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136); ">for</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">(;</span><span class="pln"> it</span><span class="pun" style="color: rgb(102, 102, 0); ">!=</span><span class="pln">list2</span><span class="pun" style="color: rgb(102, 102, 0); ">.</span><span class="kwd" style="color: rgb(0, 0, 136); ">end</span><span class="pun" style="color: rgb(102, 102, 0); ">();</span><span class="pln"> it</span><span class="pun" style="color: rgb(102, 102, 0); ">++)</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">{</span> <span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136); ">if</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">std</span><span class="pun" style="color: rgb(102, 102, 0); ">::</span><span class="pln">find</span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">list1</span><span class="pun" style="color: rgb(102, 102, 0); ">.</span><span class="kwd" style="color: rgb(0, 0, 136); ">begin</span><span class="pun" style="color: rgb(102, 102, 0); ">(),</span><span class="pln">list1</span><span class="pun" style="color: rgb(102, 102, 0); ">.</span><span class="kwd" style="color: rgb(0, 0, 136); ">end</span><span class="pun" style="color: rgb(102, 102, 0); ">(),</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">*</span><span class="pln">it</span><span class="pun" style="color: rgb(102, 102, 0); ">)==</span><span class="pln">list1</span><span class="pun" style="color: rgb(102, 102, 0); ">.</span><span class="kwd" style="color: rgb(0, 0, 136); ">end</span><span class="pun" style="color: rgb(102, 102, 0); ">())</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">{</span> <span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136); ">break</span><span class="pun" style="color: rgb(102, 102, 0); ">;</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">}</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">}</span> <span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136); ">if</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">(</span><span class="pln">it</span><span class="pun" style="color: rgb(102, 102, 0); ">!=</span><span class="pln">list2</span><span class="pun" style="color: rgb(102, 102, 0); ">.</span><span class="kwd" style="color: rgb(0, 0, 136); ">end</span><span class="pun" style="color: rgb(102, 102, 0); ">()</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">)</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">{</span> <span class="pln"> </span><span class="com" style="color: rgb(136, 0, 0); ">//发送ESC键,关闭它</span> <span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102); ">PostMessage</span><span class="pun" style="color: rgb(102, 102, 0); ">(*</span><span class="pln">it</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="pln">WM_KEYDOWN</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="pln"> VK_ESCAPE</span><span class="pun" style="color: rgb(102, 102, 0); ">,</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102); ">0x00010001</span><span class="pun" style="color: rgb(102, 102, 0); ">);</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">}</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">}</span> <span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136); ">return</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102); ">0</span><span class="pun" style="color: rgb(102, 102, 0); ">;</span> <span class="pun" style="color: rgb(102, 102, 0); ">}</span></p>
EnumThreadWindows枚举线程的所有窗口
最新推荐文章于 2022-10-14 13:15:37 发布