系统的进程监控方案太多了,今天翻代码又回忆起来wmi的方法。这个方法是ring3下异步的,可能用途有限,但是某些情况下还是会成为利器的。
百度找到的大部分都是VB的,这里贴出来一份VC的。
关键语句:SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'
直接发工程打包了,自己下载看吧。。。
...
sqlite不多说了,很好用的一个数据库,虽然自身API用起来也很简单,但是参数很多,对于大工程来说做封装类是很有必要的,官方推荐了一个C++版本的封装类,就是这玩意。
本人测试使用非常方便,编码也有老外一贯的严谨,推荐了。析构函数帮我们做了很多擦屁股的事情,直接定义调用即可。
示例:
CppSQLite3DB db;
...
之前博客在香港的空间放着好好的,某天到期了没有任何提醒就删掉了整个空间,后来才发现IDC都倒闭了。。。搞鸡毛啊,备份还是去年5月份的,拖了几个月又搞起来了。。。 这都N次博客不能访问了。。。为了弥补这次的失误,未来一个星期内发一些犀利的玩意。。。看来以后不能偷懒了,要尽快点做备份。。。
最近工作中要用到截屏,都知道使用BitBlt截取到的数据是BMP编码,一个1024x*的桌面就要2M多,转换为jpg编码大小是100K左右,gif根据quality也会很小。
但是网上找到的转码都会生成一个临时文件,比如将BMP保存成文件后,建立编码器然后对文件编码,还有的就是编码器编码完后直接就生成了文件,这个明显不符合我们的需求,我们需要的就是内存中截取,内存中转换。
经过一上午的资料查询,搞定了这个玩意。大致流程是先BitBlt到内存BMP编码的数据,然后转换为数据流(Stream),建立一个编码器直接对流进行编码,最后将流转换为buffer,最后生成的buffer可以直接保存成jpg后缀的文件,直接打开即可查看。
...