home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 May / VPR9705A.ISO / VPR_DATA / PROGRAM / CBTRIAL / SETUP / DATA.Z / PROC.CPP < prev    next >
C/C++ Source or Header  |  1997-02-14  |  6KB  |  195 lines

  1. //----------------------------------------------------------------------------
  2. //Borland C++Builder
  3. //Copyright (c) 1987, 1997 Borland International Inc. All Rights Reserved.
  4. //----------------------------------------------------------------------------
  5. //---------------------------------------------------------------------
  6. #include <vcl.h>
  7. #pragma hdrstop
  8.  
  9. #include "proc.h"
  10. #include "another.h"
  11. //---------------------------------------------------------------------
  12. #pragma resource "*.dfm"
  13. #pragma resource "procv2.res"
  14. TForm1 *Form1;
  15. //---------------------------------------------------------------------
  16. static int stat=1;
  17. int i=0;
  18. //---------------------------------------------------------------------
  19. __fastcall TForm1::TForm1(TComponent *Owner)
  20.   : TForm(Owner)
  21. {
  22. }
  23. //---------------------------------------------------------------------
  24. bool __stdcall EnumProc(/*HWND*/void * hWnd,/*LPARAM*/long/*lp*/)
  25. {
  26.    unsigned long* pPid;   //LPDWORD
  27.    unsigned long result;      //DWORD
  28.    void *hg;                  //HGLOBAL
  29.    unsigned long id;
  30.  
  31.    if(hWnd==NULL)
  32.       return false;
  33.  
  34.    hg = GlobalAlloc(GMEM_SHARE,sizeof(unsigned long));
  35.    pPid = (unsigned long *)GlobalLock(hg);
  36.  
  37.    result = GetWindowThreadProcessId(hWnd,pPid);
  38.  
  39.    if(result){
  40.       char title[110];
  41.       char className[95];
  42.       char totalStr[256];
  43.       GetClassName(hWnd,className,95);
  44.       GetWindowText(hWnd,title,110);
  45.       id=*pPid;
  46.       itoa(id,totalStr,10);
  47.       strcat(totalStr,"\t");
  48.       if(title){
  49.          strcat(totalStr,title);
  50.          strcat(totalStr,"\t");
  51.       }
  52.       strcat(totalStr,className);
  53.       Form1->ListBox1->Items->Add((AnsiString)totalStr);
  54.    }
  55.    else{
  56.       GlobalUnlock(hg);
  57.       GlobalFree(hg);
  58.       return false;
  59.    }
  60.    GlobalUnlock(hg);
  61.    GlobalFree(hg);
  62.    return true;
  63. }
  64.  
  65. //---------------------------------------------------------------------
  66. void __fastcall TForm1::Exit1Click(TObject* /*Sender*/)
  67. {
  68.    PostQuitMessage(0);
  69. }
  70. //----------------------------------------------------------------------------
  71. void __fastcall TForm1::About1Click(TObject* /*Sender*/)
  72. {
  73.    Form2->ShowModal();
  74. }
  75. //----------------------------------------------------------------------------
  76.  void __fastcall TForm1::SpeedButton4Click(TObject* /*Sender*/)
  77. {
  78.    long lp=0;
  79.    ListBox1->Enabled=true;
  80.    ListBox1->Clear();
  81.    EnumWindows((WNDENUMPROC)EnumProc,lp);
  82.    SpeedButton2->Enabled=true;
  83.    SpeedButton3->Enabled=true;
  84. }
  85. //----------------------------------------------------------------------------
  86. void __fastcall TForm1::RadioButton1Click(TObject* Sender)
  87. {
  88.    TRadioButton *rbp =(TRadioButton*) Sender;
  89.    ListBox1->Font->Color=rbp->Font->Color;
  90. }
  91. //----------------------------------------------------------------------------
  92.  void __fastcall TForm1::New1Click(TObject* /*Sender*/)
  93. {
  94.    SpeedButton4Click(0);
  95. }
  96. //----------------------------------------------------------------------------
  97.  void __fastcall TForm1::Refresh1Click(TObject* /*Sender*/)
  98. {
  99.       SpeedButton4Click(0);
  100. }
  101. //----------------------------------------------------------------------------
  102.  void __fastcall TForm1::SpeedButton3Click(TObject* /*Sender*/)
  103. {
  104.       ListBox1->Clear();
  105.       SpeedButton3->Enabled=false;
  106.       SpeedButton1->Enabled=false;
  107. }
  108. //----------------------------------------------------------------------------
  109.  void __fastcall TForm1::ListBox1Click(TObject* /*Sender*/)
  110. {
  111.    SpeedButton1->Enabled=true;
  112.    StatusBar1->SimpleText="Select 'Kill Selected PID' to terminate the process";
  113. }
  114. //----------------------------------------------------------------------------
  115.  
  116. void __fastcall TForm1::FormShow(TObject */*Sender*/)
  117. {
  118.    if(stat){
  119.       stat= 0;
  120.       ListBox1->Items->Add((AnsiString)"Click on 'pid' Tool button above");
  121.    }
  122. }
  123. //---------------------------------------------------------------------
  124. void __fastcall TForm1::Timer1Timer(TObject */*Sender*/)
  125. {
  126.    switch(i){
  127.       case 0:{
  128.          Image1->Picture->Bitmap->LoadFromResourceName(0,(AnsiString)"BITMAP_5");
  129.          Image1->Refresh();
  130.          i=1;
  131.          return;
  132.       }
  133.       case 1:{
  134.          Image1->Picture->Bitmap->LoadFromResourceName(0,(AnsiString)"BITMAP_2");
  135.          Image1->Refresh();
  136.          i=2;
  137.          return;
  138.       }
  139.       case 2:{
  140.          Image1->Picture->Bitmap->LoadFromResourceName(0,(AnsiString)"BITMAP_3");
  141.          Image1->Refresh();
  142.          i=3;
  143.          return;
  144.       }
  145.       case 3:{
  146.          Image1->Picture->Bitmap->LoadFromResourceName(0,(AnsiString)"BITMAP_4");
  147.          Image1->Refresh();
  148.          i=4;
  149.          return;
  150.       }
  151.       case 4:{
  152.          Image1->Picture->Bitmap->LoadFromResourceName(0,(AnsiString)"BITMAP_1");
  153.          Image1->Refresh();
  154.          i=0;
  155.          return;
  156.       }
  157.    }//end switch
  158. }
  159.  
  160. void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
  161. {
  162.    SpeedButton4Click(0);
  163.    SpeedButton1->Enabled=false;
  164. }
  165. //---------------------------------------------------------------------------
  166. void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
  167. {
  168.    AnsiString str;
  169.    char *tmp;
  170.    int i;
  171.    i= ListBox1->ItemIndex;
  172.    if( i != -1){
  173.       AnsiString s;
  174.       tmp = new char[100];
  175.       s=ListBox1->Items->Strings[i];
  176.       strcpy(tmp,(char*)s.c_str());
  177.       tmp=strtok(tmp,"\t");
  178.    }
  179.    int id=atoi(tmp);
  180.    delete[] tmp;
  181.    HANDLE ps = OpenProcess(1,false,id);
  182.    if(ps){
  183.       if(!TerminateProcess(ps,-9)){
  184.          ShowMessage((AnsiString)"Could not end process specified!");
  185.       }
  186.       else{
  187.          ShowMessage((AnsiString)"Process successfully terminated!");
  188.       }
  189.    }
  190.    else{
  191.       ShowMessage((AnsiString)"Could not open process requested!");
  192.    }
  193. }
  194. //---------------------------------------------------------------------------
  195.