一般说来,程序在运行的时候,会在任务栏上显示图标,当然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图片的压缩工具。甚至可以在不损失视觉效果的前提下压缩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的一个简单介绍,有需要的同学不妨去看看。