李香芝:什么叫“从其他进程复制句柄”?
曾艺的回答:
在系统中,对象分两类:核心对象和用户对象.如进程对象,线程对象,文件映射对象等就是核心对象;而向窗口,菜单等都是用户对象. 两者是有差别的,用于标示用户对象的句柄是系统唯一的,也就是说,一个进程完全可以对另外一个进程中的用户对象进行操作,比如两个进程间通信的方法之一, 就是发送消息.正是由于窗口是用户对象,所以句柄是系统唯一,通过FindWindow(), 得到另外一个进程的窗口句柄,然后用SendMessage(),让hWnd的窗口过程来处理消息,实现了进程间的通信.因此,对于用户对象,你根本不用DuplicateHandle(),直接把句柄拿来用就行了. 从其他进程复制句柄大概的意思就是从其它进程继承任务的操作。
马晓盼的回答:
在系统中,对象分两类:核心对象和用户对象.如进程对象,线程对象,文件映射对象等就是核心对象;而向窗口,菜单等都是用户对象. 两者是有差别的,用于标示用户对象的句柄是系统唯一的,也就是说,一个进程完全可以对另外一个进程中的用户对象进行操作,比如两个进程间通信的方法之一, 就是发送消息.正是由于窗口是用户对象,所以句柄是系统唯一,通过FindWindow(), 得到另外一个进程的窗口句柄,然后用SendMessage(),让hWnd的窗口过程来处理消息,实现了进程间的通信.因此,对于用户对象,你根本不用DuplicateHandle(),直接把句柄拿来用就行了. 从其他进程复制句柄大概的意思就是从其它进程继承任务的操作。
金梓的回答:
在系统中,对象分两类:核心对象和用户对象.如进程对象,线程对象,文件映射对象等就是核心对象;而向窗口,菜单等都是用户对象. 两者是有差别的,用于标示用户对象的句柄是系统唯一的,也就是说,一个进程完全可以对另外一个进程中的用户对象进行操作,比如两个进程间通信的方法之一, 就是发送消息.正是由于窗口是用户对象,所以句柄是系统唯一,通过FindWindow(), 得到另外一个进程的窗口句柄,然后用SendMessage(),让hWnd的窗口过程来处理消息,实现了进程间的通信.因此,对于用户对象,你根本不用DuplicateHandle(),直接把句柄拿来用就行了. 从其他进程复制句柄大概的意思就是从其它进程继承任务的操作。