DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: will1885
今日帖子: 11
在线用户: 10
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 wb33 (《三三》) ★☆☆☆☆ -
盒子活跃会员
2004/5/12 6:06:36
标题:
请问如何获取一个进程的 ID ? 浏览:1058
加入我的收藏
楼主:
比如我知道了一个进程的名称 taskmgr.exe  如何得到它的 ID (进程号)

并通过什么命令来结束它?

谢谢
----------------------------------------------
我是初来的菜鸟,多谢各位老鸟指教。
作者:
男 maomao718 (maomao) ★☆☆☆☆ -
盒子活跃会员
2004/5/12 9:22:29
1楼: 用CreateToolhelp32Snapshot,Process32First,Process32Next
根据你的进程名,可以得到进程的ID,已知ID,用OpenProcess就可以得到
进程的句柄。
例如:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowWindow(GetParent(Edit1.Handle),SW_HIDE);
end;

----------------------------------------------
-
作者:
男 thatiswhy (thatiswhy) ★☆☆☆☆ -
盒子活跃会员
2004/5/12 21:12:25
2楼: var
  xHwnd          :HWND;//进程的窗口句柄
  xPID           :DWord;//进程的ID;
  xPHwnd         :THandle;//进程的句柄
  AppName        :string;// 进程名称

begin

 xHwnd :=FindWindow(Pchar(AppName),nil);  //StringToPChar: PChar(String);

 // if  xHwnd=0 then PlaySound('wavFail',hInstance,SND_RESOURCE);
  if  xHwnd<>0 then  //找到后
  begin
    GetWindowThreadProcessId(xHwnd,@xPID);
    xPHwnd     :=OpenProcess(PROCESS_ALL_ACCESS, false, xPID);
    //控制你所说程序的内存等等
  end;
end.

至于结束嘛,好像是用哪个api来着,忘了(是exitProcess?)
----------------------------------------------
朝花夕拾--Delphi
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS