存档

2014年4月 的存档

c++程序窗口不在任务栏上显示

2014年4月18日 没有评论

一般说来,程序在运行的时候,会在任务栏上显示图标,当然XP系统还是会一起显示程序的标题。虽然加班是不变的,而需求是一定变化的。出于某些需要,要实现程序在运行时不显示窗体。对于c#程序而言,只用设置 ShowInTaskbar = false 即可。而对于c++程序,还不能这么简单的使用。

今天衣服自己洗分享的是使用 ITaskbarList 接口来实现c++程序窗口不在任务栏上显示的目的。

从IE4开始,window提供了ITaskbarList 接口,我们可以简单地调用即可。

首先我们需要添加头文件的引用    #include “ShObjIdl.h”

然后,我们在代码里添加这样一个方法:
void ShowInTaskbar(HWND hWnd, BOOL bshow){
HRESULT hr;
ITaskbarList *pList;
hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,
IID_ITaskbarList, (void **)&pList);

pList->HrInit();

if (bshow){
pList->AddTab(hWnd);
}
else{
pList->DeleteTab(hWnd);
}

pList->Release();
}

最后一步,在窗口初始化的时候,调用这个方法即可。两个参数分别为窗体的句柄,是否显示。

分类: 日常 标签: , ,

pngcrush 不错的png图片压缩工具

2014年4月18日 没有评论

pngcrush 是一个免费开源的png图片的压缩工具。甚至可以在不损失视觉效果的前提下压缩40%的体积,png图片的加载速度比没有优化前要快很多。其原理是去除png文件头里的部分数据。

第一次接触这个东西时并不是为了做图片压缩,而是在分析 ipa 文件时碰到的。xcode 在打包应用时,会调用pngcrush 来对图片进行压缩,不过由于是对png文件数据格式做了修改,所以无法直接预览,这样在文件夹里显示的就是黑色的图片。

pngcrush 可以在http://sourceforge.net/projects/pmt/files/pngcrush/ 下载,里面既有源代码,也有可执行程序。其实xcode 里已经包含了,可以在命令行里输入下面的命令,即可找到 pngcrush 的位置。

xcrun -sdk iphoneos -find pngcrush

可以把这个程序拷贝到其它方便的目录,或者做一个快捷方式也是可以的。mac 里快速创建一个快捷方式是酱紫的:按住command+option,然后拖动图标到你想要创建快捷方式的位置,松手即可。

至于使用方式么,

pngcrush -d xxx reverted -revert-iphone-optimizations -q *.png

pngcrush -e xxx reverted -revert-iphone-optimizations -q *.png

还可以简单的这么来使用

pngcrush -reduce -brute -d output image.png image.png

上面是对 pngcrush的一个简单介绍,有需要的同学不妨去看看。

分类: 一句话 标签: , ,