/**********************************************************************
 Программа на языке C--, работающая в режиме консоли и выводящая на
 экран список текущих задач. Используютя вызовы функций API.
 Компилируется версией C-- 0.227 с ключом  /w32c
 Написано и скомпилировано MASTANом  http://members.xoom.com/mastan
**********************************************************************/

?jumptomain NONE
#pragma option w32c
#define _WINBASE_ TRUE
#define _WINCON_ TRUE
?include "windows.h--"

HANDLE Output;
HWND hWind;
DWORD Chars;
DWORD Reserved;
char Buffer[100];
main()
{
//  GetModuleHandleA(0);    //get handle to application instance
  AllocConsole();
  SetConsoleTitle("Active tasks - example program by MASTAN");
  Output=GetStdHandle(STD_OUTPUT_HANDLE);
  hWind=GetWindow(GetDesktopWindow(),GW_CHILD);
  WriteConsole(Output,"<BEGIN>\n",9,#Chars,#Reserved);
  WHILE (hWind=GetWindow(hWind,GW_HWNDNEXT)!=0)
  {
    GetWindowText(EAX,#Buffer,100);
    IF (Buffer[0]!=0)
    {
      CharToOem(#Buffer,#Buffer);
      EDI=0;
      WHILE(Buffer[EDI]!=0)       // Получение длины строки
       {
         EDI++;
       }
      WriteConsole(Output,#Buffer,EDI,#Chars,#Reserved);
      WriteConsole(Output,"\n",2,#Chars,#Reserved);
    }
  }
  WriteConsole(Output,"<END>\n",7,#Chars,#Reserved);
  ExitProcess(0);
}
