有关C/S三层问题 在三层结构中,调用远程服务器com+组件时使用CreateRemote与这DComConnection、WebConnection些连接组件有什么区别?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这么基础的问题看看他的help都能知道 CreateRemote5.创建远程线程创建三线程就是为了更好的保护程序自身不被关闭和删除。两个辅助线程相互实时监视,如果监视对象被关闭了,就重新创建线程或进程。其实,在程序中我们选择的远程进程驻体为Explorer.exe和Taskmgr.exe。在通常情况下,如果用户知道了远程线程的驻体为资源管理器后,就会打开任务管理器来结束Explorer,这时我们再把远程线程驻入到任务管理器中。也就是说,只要Explorer或Taskmgr有一个存在,就不可能结束主进程。如果有其他Kill进程的工具,你就可以将其关闭掉,只要资源管理器和任务管理器均不存在时,就没有驻体来维持远程进程。不过,如果我们选择的远程进程为随机的,这就不容易发现了;如果我们选择的远程进程为系统文件(如smss.exe会话管理器),那么你是不会安全的结束远程线程,除非系统崩溃。创建远程线程:createremote OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,remotepid); //PROCESS_CREATE_THREAD for CreateRemoteThread //PROCESS_VM_OPERATION for VirtualAllocEx //PROCESS_VM_WRITE for WriteProcessMemory VirtualAllocEx(rphandle,NULL,cb,MEM_COMMIT,PAGE_EXECUTE_READWRITE); //在远程进程中分配空间,以备将线程代码置入其中; WriteProcessMemory(rphandle,remotethr,(LPVOID)remote,cb,NULL); //将远程线程remote的代码写入到远程进程的地址空间中 WriteProcessMemory(rphandle,remotepar,(LPVOID)&rp,cb,NULL); //将远程线程所需的参数也写入到远程进程的地址空间中 CreateRemoteThread(rphandle,NULL,0,(LPTHREAD_START_ROUTINE)remotethr,(LPVOID)remotepar,0,NULL); //创建远程监视线程/////////////////////////////////////////DCOMConnection是基于DCOM的ORPC的,SocketConnection/WebConnection其实只是一个代理,把ORPC通过TCP/HTTP转换为本地COM调用而已。所以本质上还是DCOM。包括早先MIDAS支持的CORBA,其实也是通过CORBA的DII来代理DCOM请求而已,不是真正的CORBA应用。还有新的SoapConnection也是,只是用SOAP来代理DCOM请求而已,但在这里把原来依赖于DCOM的VARIANT类型的ClientDataSet数据包改成了通用的XML数据包,并在Linux下实现了新的独立于平台的ClientDataSet,实现了通过Kylix进行跨平台MIDAS开发,当然目前还仅限于客户端。 谁能帮我???????? ------------关于excel,word等ole操作的说明-------------------- 新年新Q群:7732332,欢迎你的加盟! 如何获得程序运行所在机器的网卡号? 请问如何在程序中调用尚书的模式识别功能? 50分求助。 转发:《你尽力了吗?》 udp问题,100求教 请问怎么样该变窗体标题栏的颜色?? 求教高手!如何动态获得一个record的成员的名称和成员的个数? 这样的insert sql语句怎么写 能不能在DLPHI 6里做一个图片的浏览器?
创建远程线程:createremote
OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,remotepid);
//PROCESS_CREATE_THREAD for CreateRemoteThread
//PROCESS_VM_OPERATION for VirtualAllocEx
//PROCESS_VM_WRITE for WriteProcessMemory
VirtualAllocEx(rphandle,NULL,cb,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
//在远程进程中分配空间,以备将线程代码置入其中;
WriteProcessMemory(rphandle,remotethr,(LPVOID)remote,cb,NULL);
//将远程线程remote的代码写入到远程进程的地址空间中
WriteProcessMemory(rphandle,remotepar,(LPVOID)&rp,cb,NULL);
//将远程线程所需的参数也写入到远程进程的地址空间中
CreateRemoteThread(rphandle,NULL,0,(LPTHREAD_START_ROUTINE)remotethr,(LPVOID)remotepar,0,NULL);
//创建远程监视线程/////////////////////////////////////////
DCOMConnection是基于DCOM的ORPC的,SocketConnection/WebConnection其实只是一个代理,把ORPC通过TCP/HTTP转换为本地COM调用而已。所以本质上还是DCOM。包括早先MIDAS支持的CORBA,其实也是通过CORBA的DII来代理DCOM请求而已,不是真正的CORBA应用。还有新的SoapConnection也是,只是用SOAP来代理DCOM请求而已,但在这里把原来依赖于DCOM的VARIANT类型的ClientDataSet数据包改成了通用的XML数据包,并在Linux下实现了新的独立于平台的ClientDataSet,实现了通过Kylix进行跨平台MIDAS开发,当然目前还仅限于客户端。