今天上午考网络,马马虎虎吧,及格应该没啥问题,高分可没想过。直到今天早上起床后才开始复习,共计复习了40分钟,只能跟着目录在大脑里把知识点回想一遍,稍微翻一下书。对于我一直裸考这件事情,有个roomate表示灰常羡慕……
言归正传,上篇博客提到了用命令行传递句柄,而且说有时间了写一下用消息和环境变量传递句柄,今天下午好好玩了一下午,刚才觉得该写一下了,然后突然反应过来——这基本上就是照抄上文的代码嘛。于是新建工程复制代码,稍微修改了一下就成了本文,只写了用消息传递句柄的。汗,我越来越打酱油了。
再次申明一下,这三种方法不管哪一种都有一个前提,就是打开句柄时使用的SECURITY_ATTRIBUTES结构体的bInheritHandle域设置为TRUE,并且父进程创建子进程时BInheritHandles也设置为TRUE,不是所有的句柄都可以这样直接传递的。
代码也不贴了,为了凑篇幅直接上截图,愿意看代码的直接下载下方的压缩包吧,写这些代码只是为了熟悉Windows API编程,所以如果你认为代码有问题,欢迎指正,有交流才有进步嘛。
上图的操作顺序是"发送消息"-"打开注册表句柄"-"发送消息"-"创建新进程"-"读取注册表"-"发送消息"-"读取注册表"。
代码压缩包(VS2005工程)下载: http://files.cnblogs.com/pianoid/TransferHandlesByMessage.rar