最近有一些排错记录,想把过程更新上来,原来虽然使用live writer 写日志,但是截图都是用的其他工具,感觉不是太方便,而最近又发现了一个叫snipped image 的插件(写了很久了),可以用win7及后续版本中带的SnippingTool来截图。项目地址在这里,用编译好的dll安装后,一直提示剪贴板中没有内容。不过还好有源代码提供,看了下源码发现它的原理就是调用snippingtool,然后等待该程序结束,然后从剪贴板中找是否有图片,如果有就插入到live writer的博客内容中,没有就报错。

但是代码没有什么错误啊?

windows live writer Snipped Image Plugin on X64 system_第1张图片

后来我加了两行代码,用来test snippingtool.exe 是否存在,结果测试返回false,很纳闷,google 搜索,结果stackoverflow.com 有个文章和我的问题有点像,我搜索sysnative目录的解释,因为x64位上找不到这个目录?这是什么鬼?

windows live writer Snipped Image Plugin on X64 system_第2张图片

https://msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx 给出了解释,当32位应用程序访问%windir%\system32目录时,X64系统上会被重定向到%windir%\SysWOW64目录,如果希望访问%windir%\system32而不被重定向,需要访问%windir%\sysnative。我们知道live writer的plugin 在X64系统上也是以32位dll编译的(按64位进行编译后,无法加载插件)

让我们验证下:

windows live writer Snipped Image Plugin on X64 system_第3张图片

好的,到现在问题解决,简单修改下代码,以让插件适合x64以及X86系统。

 

https://github.com/yoke88/LiveWriterSnippingPluginSource