Delphi编程获取系统当前进程.doc_第1页
Delphi编程获取系统当前进程.doc_第2页
Delphi编程获取系统当前进程.doc_第3页
Delphi编程获取系统当前进程.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Delphi编程获取系统当前进程、窗口句柄、文件属性以及程序运行状态Delphi编程获取系统当前进程、窗口句柄、文件属性以及程序运行状态.uses TLHelp32,PsAPI;(1)显示进程列表:procedure TForm1.Button2Click(Sender: TObject);var lppe: TProcessEntry32;found : boolean;Hand : THandle;P:DWORD;s:string;beginListBox1.Items.Clear ;Hand := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);found := Process32First(Hand,lppe);while found dobegins := StrPas(lppe.szExeFile);if lppe.th32ProcessID0 then p := lppe.th32ProcessIDelse p := 0;ListBox1.Items.AddObject(s,pointer(p);/列出所有进程。found := Process32Next(Hand,lppe);end;end;(2)杀死某进程:procedure TForm1.Button3Click(Sender: TObject);var lppe: TProcessEntry32;found : boolean;Hand : THandle;P:DWORD;sExeFile,sSelect:string;killed:boolean;beginp :=DWORD(ListBox1.Items.ObjectsListBox1.itemindex);if P0 thenbeginkilled := TerminateProcess(OpenProcess(PROCESS_TERMINATE,False,P),$FFFFFFFF);if not killed then messagebox(self.handle,pchar(sExeFile+无法杀死!),提示,MB_OK or MB_ICONWARNING)else ListBox1.Items.Delete(ListBox1.ItemIndex);end;end;(3)取得某进程EXE路径:procedure TForm1.Button8Click(Sender: TObject); /uses PSAPI;varh:THandle; fileName:string; iLen:integer; hMod:HMODULE;cbNeeded,p:DWORD;beginp :=DWORD(ListBox1.Items.ObjectsListBox1.itemindex);h := OpenProcess(PROCESS_ALL_ACCESS, false, p); /p 为 进程IDif h 0 thenbeginif EnumProcessModules( h, hMod, sizeof(hMod), cbNeeded) thenbegin SetLength(fileName, MAX_PATH); iLen := GetModuleFileNameEx(h, hMod, PCHAR(fileName), MAX_PATH); if iLen 0 then begin SetLength(fileName, StrLen(PCHAR(fileName); ShowMessage(fileName); end;end;CloseHandle(h);end;end;(4)取得窗口列表:beginListBox1.Items.Clear ;EnumWindows(EnumWindowsProc, 0);end;(5)杀死窗口进程:procedure TForm1.Button6Click(Sender: TObject);varH:THandle;P:DWORD;s:string;killed:boolean;begins := ListBox1.ItemsListBox1.ItemIndex;H:=FindWindow(nil,pchar(s);if H0 thenbeginGetWindowThreadProcessId(H,P);if P0 then killed:=TerminateProcess(OpenProcess(PROCESS_TERMINATE,False,P),$FFFFFFFF);if not killed then messagebox(self.handle,pchar(s+无法杀死!),提示,MB_OK or MB_ICONWARNING)else ListBox1.Items.Delete(ListBox1.ItemIndex);end;end;(6)取得窗口进程路径:procedure TForm1.Button9Click(Sender: TObject);varH:THandle; P,cbNeeded: DWORD; s,fileName:string;iLen:integer; hMod:HMODULE;begins := ListBox1.ItemsListBox1.ItemIndex;H:=FindWindow(nil,pchar(s);if H0 thenbeginGetWindowThreadProcessId(H,P);if P0 thenbegin h := OpenProcess(PROCESS_ALL_ACCESS, false, p); /p 为 进程ID if h 0 then begin if EnumProcessModules( h, hMod, sizeof(hMod), cbNeeded) then begin SetLength(fileName, MAX_PATH); iLen := GetModuleFileNameEx(h, hMod, PCHAR(fileName), MAX_PATH); if iLen 0 then begin SetLength(fileName, StrLen(PCHAR(fileName); ShowMessage(fileName); end; end; CloseHandle(h); end;end;end;end;(7)文件属性:procedure TForm1.Button1Click(Sender: TObject);varSR: TSearchRec;V1, V2, V3, V4: integer ;constdtFmt:string = YYYY-MM-DD HH:NN:SS;begin/ = 方法一 = /if FindFirst(sFileName, faAnyFile, SR) = 0 thenbeginEdit1.Text := intToStr(SR.Attr); /文件属性Edit2.Text := intToStr(SR.Size); /文件大小Edit3.Text := FormatDateTime(dtFmt,CovFileDate(SR.FindData.ftCreationTime); /创建时间Edit4.Text := FormatDateTime(dtFmt,CovFileDate(SR.FindData.ftLastWriteTime); /最后修改时间Edit5.Text := FormatDateTime(dtFmt,CovFileDate(SR.FindData.ftLastAccessTime); /最后访问时间if SR.Attr and faHidden 0 then FileSetAttr(sFileName, SR.Attr-faHidden);FindClose(SR);end;if GetFileVersion(sFileName,V1, V2, V3, V4) thenEdit7.Text := intToStr(v1)+.+intToStr(v2)+.+intToStr(v3)+.+intToStr(v4);/ = 方法二 = /varAttrs: Word;f: file of Byte; / 文件大小 必须要 定义为 file of byte ,这样才能取出 bytessize: Longint;/文件属性Attrs := FileGetAttr(sFileName);Edit1.Text := intToStr(Attrs);/文件大小AssignFile(f, OpenDialog1.FileName);Reset(f);tryAssignFile(f, sFileName);Reset(f);size := FileSize(f);Edit2.Text := intToStr(size);finallyCloseFile(f);end;end;(8)判断程序是否在运行:procedure TForm1.Button5Click(Sender: TObject);var PrevInstHandle:Thandle;AppTitle:pchar;beginAppTitle := pchar(test);PrevInstHandle := FindWi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论