进程,进程,还是进程问题!

hnxrm 2001-08-31 06:51:54
如何获得一个程序中启动的另外的进程句柄(即除主进程之外的进程)?请各位大侠帮忙。
...全文
149 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnxrm 2001-09-06
  • 打赏
  • 举报
回复
看来是没人回答了,给分吧。
Tense 2001-09-03
  • 打赏
  • 举报
回复
up
hnxrm 2001-09-03
  • 打赏
  • 举报
回复
to qiandeng
有么?我好象没找到。
TO summernightrain(夏夜雨) 谢谢哦,过几天给你分。
UP
qiandeng 2001-09-02
  • 打赏
  • 举报
回复
建议还是去看看msdn,应该有这样的函数
summernightrain 2001-09-01
  • 打赏
  • 举报
回复
var
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
procedure Run(App:String);
var
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb:=Sizeof(StartupInfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
if FileExists(GetPath(2)+'\'+App) then
CreateProcess(nil,pchar(GetPath(2)+'\'+App),nil,nil,false,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,ProcessInfo);
end;

看上面的例子啦!!如果你是用的这种方法启动其它的进程,那么ProcessInfo中就包含了你要的东西(ProcessID)了,编个程序试试??有什么问题再讨论!!
summernightrain 2001-09-01
  • 打赏
  • 举报
回复
那就比较难了,从理论上讲你要看别的进程调用那了那些其它的进程,我想可以用Hook Api来做,具体就是拦截创建进程的那几个函数比如上面的CreateProcess。
hnxrm 2001-09-01
  • 打赏
  • 举报
回复
to summernightrain(夏夜雨)
这个程序不是我编的,我要的是别人程序中启动其他进程的HANDLE.
hnxrm 2001-08-31
  • 打赏
  • 举报
回复
我的意思不是要枚举系统中所有的进程再进行判断,是要一个程序中启动的其他进程的HNADLE。假设我已经知道这个程序的HANDLE。不过先谢了summernightrain(夏夜雨) :)
summernightrain 2001-08-31
  • 打赏
  • 举报
回复
下面是我的一个例子函数。
function TerminateExe(ExePath:String):Boolean; 一个结束例子进程的例子
var
ProListHandle,ProHandle:HWND;
ProStruct:PROCESSENTRY32; //目的就是要得到这结构,关于这结构可以查API帮助。
Found:Boolean;
begin
Result:=False;
ProListHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
ProStruct.dwSize:=Sizeof(ProStruct);
Found:=Process32First(ProListHandle,ProStruct);开始枚举所有进程
While Found do
begin

{ ProStruct 结构中就包含了进程的详细信息,其中的进程ID就是ProStruct.th32ProcessID
这个成员。}
if ProStruct.szExeFile=UpperCase(ExePath) then
begin
ProHandle:=OpenProcess(PROCESS_ALL_ACCESS,True,ProStruct.th32ProcessID);
If TerminateProcess(ProHandle,0) then
Result:=True
else
Result:=False;
end;
Found:=Process32Next(ProListHandle,ProStruct);
end;
end;
第一章 走进linux 1.1 GNU与Linux的成长 1.2 Linux的开发模式和运作机制 1.3走进Linux内核 1.4 分析Linux内核的意义 1.5 Linux内核结构 1.6 Linux内核源代码 1.7 Linux内核源代码分析工具 第二章 Linux运行的硬件基础 2.1 i386的寄存器 2.2 内存地址 2.3 段机制和描述符 2.4 分页机制 2.5 Linux中的分页机制 2.6 Linux中的汇编语言 第三章中断机制 3.1 中断基本知识 3.2中断描述符表的初始化 3.3异常处理 3.4 中断处理 3.5中断的后半部分处理机制 第四章 进程描述 4.1 进程和程序(Process and Program) 4.2 Linux中的进程概述 4.3 task_struct结构描述 4.4 task_struct结构在内存中的存放 4.5 进程组织的方式 4.6 内核线程 4.7 进程的权能 4.8 内核同步 第五章进程调度 5.1 Linux时间系统 5.2 时钟中断 5.3 Linux的调度程序-Schedule( ) 5.4 进程切换 第六章 Linux内存管理 6.1 Linux的内存管理概述 6.2 Linux内存管理的初始化 6.3 内存的分配和回收 6.4 地址映射机制 6.5 请页机制 6.6 交换机制 6.7 缓存和刷新机制 6.8 进程的创建和执行 第七章 进程间通信 7.1 管道 7.2 信号(signal) 7.3 System V 的IPC机制 第八章 虚拟文件系统 8.1 概述 8.2 VFS中的数据结构 8.3 高速缓存 8.4 文件系统的注册、安装与拆卸 8.5 限额机制 8.6 具体文件系统举例 8.7 文件系统的系统调用 8 .8 Linux2.4文件系统的移植问题 第九章 Ext2文件系统 9.1 基本概念 9.2 Ext2的磁盘布局和数据结构 9.3 文件的访问权限和安全 9.4 链接文件 9.5 分配策略 第十章 模块机制 10.1 概述 10.2 实现机制 10.3 模块的装入和卸载 10.4 内核版本 10.5 编写内核模块 第十一章 设备驱动程序 11.1 概述 11.2 设备驱动基础 11.3 块设备驱动程序 11.4 字符设备驱动程序 第十二章 网络 12.1 概述 12.2 网络协议 12.3 套接字(socket) 12.4 套接字缓冲区(sk_buff) 12.5 网络设备接口 第十三章 启动系统 13.1 初始化流程 13.2 初始化的任务 13.3 Linux 的Boot Loarder 13.4 进入操作系统 13.5 main.c中的初始化 13.6 建立init进程 附录: 1 Linux 2.4内核API 2.1 驱动程序的基本函数 2.2 双向循环链表的操作 2.3 基本C库函数 2.4 Linux内存管理中Slab缓冲区 2.5 Linux中的VFS 2.6 Linux的连网 2.7 网络设备支持 2.8 模块支持 2.9 硬件接口 2.10 块设备 2.11 USB 设备

5,929

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧