public_fun.pas
上传用户:mrkingwuhu
上传日期:2007-05-27
资源大小:185k
文件大小:1k
源码类别:

控制台编程

开发平台:

Delphi

  1. unit public_fun;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   ImgList, Menus, ShellApi, ExtCtrls, StdCtrls, Dialogs, TLHelp32, strutils, Buttons;
  6. const
  7. mymsg=wm_user+1;// WM_USER             = $0400;
  8. iid=100;
  9. //About proceeding define
  10. type
  11. TProcessInfo = Record
  12. ExeFile : String;
  13. ProcessID : DWORD;
  14. end;
  15. pProcessInfo = ^TProcessInfo;
  16. function detecthread(str_thread:string):string;
  17. implementation
  18. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  19. function detecthread(str_thread:string):string;
  20. var p : pProcessInfo;
  21. ContinueLoop:BOOL;
  22. i:integer;
  23. var
  24. FSnapshotHandle:THandle;
  25. FProcessEntry32:TProcessEntry32;
  26. begin
  27.  i:=0;
  28.  FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  29.  FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
  30.  ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
  31.  while integer(ContinueLoop)<>0 do
  32.    begin
  33.     New(p);
  34.     p.ExeFile := FProcessEntry32.szExeFile;
  35.     p.ProcessID := FProcessEntry32.th32ProcessID;
  36.     if LowerCase(p.ExeFile)=LowerCase(str_thread) then i:=i+1;//proceeding is exist-->i=i+1
  37.       ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
  38.    end;
  39.   if i<1 then//proceeding is not exist
  40.     begin
  41.       result:=('notexist');
  42.     end
  43.   else
  44.     begin
  45.       result:=('exist');    
  46.     end;
  47. end;
  48. end.