unit1.cpp

来自「本书《C++Builder与WindowsAPI经典范例》附含配套光盘包括132」· C++ 代码 · 共 52 行

CPP
52
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
//默认CheckBox1真伪值
CheckBox1->Checked = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//删除Memo1中文字
Memo1->Clear();
//先取得现程序与下一程序handle
char name[100];
HWND hWnd = ::GetTopWindow(NULL);
HWND hwndNext = ::GetNextWindow(hWnd, GW_HWNDNEXT);
//列出在桌面执行中的窗口
if(CheckBox1->Checked)//CheckBox1选取状态
  {
  while(hwndNext)
   {//若窗口执行中与独立,则取得窗口标题字符串
   if((::IsWindowVisible(hwndNext)) &&
      (!::GetWindow(hwndNext, GW_OWNER)))
      {
      ::GetWindowText(hwndNext, (LPTSTR)name, sizeof(name));
      if(name[0] != '\0')//若有标题字符串,则加入Memo1中
        Memo1->Lines->Add(name);
      }
   //再找到下一窗口
   hwndNext = ::GetNextWindow(hwndNext, GW_HWNDNEXT);
   }
  }
else //列出所有行程与窗口
  {
  while(hwndNext)
   {//若窗口具独立行程,则取得窗口标题字符串
   if(!::GetWindow(hwndNext, GW_OWNER))
     {
     GetWindowText(hwndNext, (LPTSTR)name, sizeof(name));
     if(name[0] != '\0')
       Memo1->Lines->Add(name);
     }
   //

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?