delphi 程序處理的幾個實用技巧

2021-09-02 20:22:56 字數 1431 閱讀 9451

1.  程序的掛起與恢復

// 程序掛起與恢復

function suspendprocess(hprocess:thandle):dword;stdcall;external 'ntdll.dll' name 'zwsuspendprocess';

function resumeprocess(hprocess:thandle):dword;stdcall;external 'ntdll.dll' name 'zwresumeprocess';

//程序掛起與恢復結束

function getfilepaths(h:pchar):string;

varname:hwnd;

pid:dword;

irad,hprocess:cardinal;

processhwnd:thandle;

buf:array [0..max_path] of char;

begin

name:=findwindow(nil,h);

getwindowthreadprocessid(name,@pid);//獲取程序id

processhwnd:=openprocess(process_all_access,false,pid);//獲取程序控制代碼

getmodulefilenameex(processhwnd, 0, buf, length(buf));

closehandle(processhwnd);

result := buf;

end;

2..查指定程序 pid

// 指定程序的pid

3.根據指定程序的 pid  取程序路徑

// 根據程序id 取程序路徑 

function tform1.getprocesspath(processid: dword): string;

varhand: thandle;

modname: array[0..max_path-1] of char;

hmod: hmodule;

n: dword;

begin

result:='';

hand:=openprocess(process_query_information or process_vm_read,

false,

processid);

if hand>0 then

tryenumprocessmodules(hand,@hmod,sizeof(hmod),n);

if getmodulefilenameex(hand,hmod,modname,sizeof(modname))>0 then

result:=extractfilepath(modname);

except end;

end;

4. 查詢程序  

5. 殺程序

....    等續....

Delphi的幾個問題

1 除基本型別可相容外,其他的型別只要是在不同的單元中定義的,就算宣告一樣,也屬不同的型別,例如 a.pas 與 b.pas 均宣告了 ttest aaedit,aamemo 這是兩個不同的型別,因此以下 無法編譯 提示宣告不同 a1.pas uses a,b type ttestobj class...

幾個實用的linux命令

檢視當前登入的賬戶 who am ifree 顯示記憶體狀態用法 free m s m 表示記憶體的狀態用 m 為單位來表示,s 表示重新整理的時間間隔,秒為單位 示例 free m s 3mount a a mount allfilesystems of the given types menti...

幾個實用的mysql指令碼

1 修改資料庫中所有表的某個同名字段列 create procedure 儲存過程名 begin 定義迴圈條件 declare flag int default 0 儲存表名 declare tname varchar 50 查詢資料庫super star中含有school code列的表,如果區分...