2009-11-29

桌面图标文字背景透明设置

转自http://bluekylin.cnblogs.com/archive/2006/03/31/363958.aspx
桌面图标的文字背景透明设置问题是指WindowsXP中系统属性-高级-性能-视觉效果使用了"在桌面上为图标标签使用阴影"之后标签上仍然显示桌面背景底色而非透明的问题。
值得一提的是,
设定了"在桌面上锁定WEB项目"或显示网页也会导致上面这个问题。
确保你没启用,如果还没有解决,那么:
打开注册表编辑器:开始-运行regedit
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced 中的ListviewShadow键值数据为1
(该键值修改生效需重启explorer.exe ―― 任务管理器中结束所有explorer进程,再新建任务explorer)
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer 中的ShellState键值(双击)数据显示为下图:(通常是第5个字节不是0x23)

(该键值修改生效只需刷新桌面)
两者一定要同时成立。

2009-11-27

高版本OrCAD Capture生成第三方Allegro网表

高版本没有了allegro.dll,请选择telesis.dll,格式相同。
(当然,从低版本Cappture拷贝一个allegro.dll也是可以的。)

2009-11-25

(zz)比特位,帧,包,段(bit, frame, packet, segment)

(这些通信中的术语,区别是什么?我发现Wikipedia的是比较正确的,网络其他上地方的则良莠不齐,所以转载于此。)
OSI Model

Data unit Layer Function
Host
layers
Data 7. Application Network process to application
6. Presentation Data representation and encryption
5. Session Interhost communication
Segment 4. Transport End-to-end connections and reliability
Media
layers
Packet 3. Network Path determination and logical addressing
Frame 2. Data Link Physical addressing
Bit 1. Physical Media, signal and binary transmission

来源:http://en.wikipedia.org/wiki/OSI_model
(我发现中文版WIKI上有个对理解七层模型很有帮助的图,所以推荐一下:http://zh.wikipedia.org/wiki/OSI%E6%A8%A1%E5%9E%8B)

Removing the Java Quick Starter Add-on(从Firefox移除Java Quick Starter插件)

解决方法(以及 Java Quick Starter的介绍):http://www.java.com/en/download/help/quickstarter.xml
Steps to disable Java Quick Starter:
  1. Click Start.
  2. Click Control Panel.
  3. Double click on Java Control Panel.
  4. Click Advance tab in Java Control Panel.
  5. Scroll to Miscellaneous entry and Expand.
  6. Uncheck the check box for Java Quick Starter.
  7. Click Ok and restart the system.



附录:

2009-11-24

vector的find_if和sort

////////////////////////////////////
struct Rank
{
    CString strUsername;
    CString strTimestamp;
    UINT uiRank;
};
typedef ::std::vector<Rank> MyRankArray;

bool RankCompDesc(const Rank & rFirst, const Rank & rSecond)
{
    return rFirst.uiRank < rSecond.uiRank;
}

bool RankCompInc(const Rank & rFirst, const Rank & rSecond)
{
    return rFirst.uiRank > rSecond.uiRank;
}

MyRankArray m_aRank;
....
sort(m_aRank.begin(), m_aRank.end(), bInc ? RankCompInc : RankCompDesc);
////////////////////////////////////
struct Exercise
{
    CString strRule;
    UINT uiElapsedTime;
    UINT uiRightCounter;
};

class IsSameRule
{
public:
    IsSameRule(const CString strKey):strRule(strKey){}
    bool operator ()(const MyExerciseArray::value_type & value)
    {
        return value.strRule == strRule;
    }
private:
    CString strRule;                   
};

MyExerciseArray::iterator itr;
Exercise ex;
                    ex.strRule = ...;
                    ex.uiElapsedTime = ...;
                    ex.uiRightCounter = ...;
                    itr = find_if(m_aExercise.begin(), m_aExercise.end(), IsSameRule(ex.strRule));
                    if(itr == m_aExercise.end())
                    {
                        //not found
                        m_aExercise.push_back(ex);
                    }
                    else
                    {
                        itr->uiElapsedTime += ex.uiElapsedTime;
                        itr->uiRightCounter += ex.uiRightCounter;
                    }
////////////////////////////////////

2009-11-22

Excel中计算两个时间差

不是日期。
比如,其中一个为C1值为2009-11-16  20:18:14,另一个D1值为2009-11-16  20:24:30,则计算公式为=(D1-C1+(D1<C1))*3600*24,这样的单位为秒。
注意:函数SECOND计算是日期差值秒的部分,比如前面两个时间SECOND(D1-C1)的结果为16。

2009-11-21

Windows XP在不同用户切换后屏幕分辨率降低

现象:
Windows XP,用户A登录后,运行了部分程序;然后切换,用户B登录,运行了部分程序。
有时,在A重新登录后,发现屏幕分辨率降低为640X480。并且,无法更改。

没有解决的"解放方法":
似乎这个并不常见。
搜索了很久,都没有找到解决方法。
起初以为是没有使用虚拟内存的缘故,后来使用虚拟内存了,还是有时会遇到这个问题。

百般无奈之下,更新了显卡的驱动程序。
很不幸,还是遇到了这个问题。
不过,现在好很多――可以直接修改成高分辨率了。

貌似发生问题时,A用户都在运行eMule。我很怀疑跟eMule有关。

2009-11-20

(zz)Hiren's BootCD From USB Flash Drive (USB Pen Drive)[如何制作Hiren's BootCD的启动U盘]

http://www.hiren.info/pages/bootcd-on-usb-disk

Step 1
Connect USB Pen Drive (256Mb or more)

Step 2
Download and Run USB Disk Storage Format USB Disk Storage Format usb_format.zip (34KB)
Screenshot

Step 3
Download and Run grubinst_gui Grub 4 Dos grub4dos.zip (147KB)
Screenshot

Step 4
Copy grldr and menu.lst (from grub4dos.zip) to the usb drive
Screenshot

Step 5
Insert the BootCD (9.7 or newer) in the CD Drive and Copy everything from CD to USB Flash Drive
[注:如果没有光盘,则从http://www.hirensbootcd.net/下载一个zip文件,然后把其中的iso解压到U盘上。
]

Step 6
Test Your USB Drive (read bottom of the page for troubleshoot)


2009-11-19

安装好的软件损坏后导致的问题

这个标题没有说清楚。
是这样:假如有个软件安装在C:\Program Files\下,后来移动到另外一个目录下。那么,问题来了:
  • 对于绿色软件,则没有问题,修改快捷方式就行了。
  • 对于大部分软件,很多信息记录在注册表,则推荐使用COA2(这个软件也很小众,帮助中写的是Ziff Davis Media公司,在PC Magazine网站是1.0版本,而我搜索到的则是个2.0版,很多国内网站可以下载),它将修正快捷方式、ini文件、注册表数据。
  • 对于少数Windows Installer的软件,则可能在运行某个程序或者安装任务时,提示说要这个软件的安装文件。
  • 如果你有安装文件,那就给它吧。
  • 如果你没有了安装文件,那么这个提示很烦人。这时:
试试Windows Installer Cleanup,可以将该软件的安装信息删除――但是,要注意,删除了以后,控制面板中 添加删除程序 列表中就将再也见不到这个软件了。不过,软件安装后一般都会有一个删除的快捷方式,那个可能还是可以工作的。

2009-11-12

(zz)How to Safely Delete Orphaned Patches

http://blogs.msdn.com/heaths/archive/2007/01/31/how-to-safely-delete-orphaned-patches.aspx
Heath Stewart

If Visual Studio 2005 Service Pack 1 fails to install, you might find additional .msp files under %WINDIR%\Installer for each failed attempt. You should not simply delete these patches, however, because if one of the patches was applied successfully to one target product, deleting that patch will cause future maintenance installs – including repairs, patch install, patch uninstall, and even product uninstall – to fail.

After safely identifying orphaned patches, you can delete them. There are a couple of different ways to identify orphaned patches.

If you have the Windows SDK or the older Platform SDK installed or are willing to install either, you can use msizap.exe to identify and remove orphaned data files such as patches. Run the following command. You will find msizap.exe in the bin folder of the Windows SDK or Platform SDK installation directory.

msizap.exe G!

If you don't want to install either SDK just to get this executable, you can determine which patches are registered and applicable and delete extra patches you find under %WINDIR%\Installer. I have attached a simple script to identify which patches are registered – those patches you should not remove.

To successfully install the patch if you are having problems, please read about known issues with Visual Studio 2005 Service Pack 1 and available workarounds.

Published Wednesday, January 31, 2007 9:16 PM by Heath Stewart
Attachment(s): WiMsps.zip


QQ的用户数据目录

缺省情形下,用户数据跟程序在同一目录下,通常为C:\Program Files\Tencent\QQ。
这不符合业务与控制分开的原则,也不利于C盘的ghost。
如何更换?
登录QQ,在"系统设置"→"基本设置"→"文件记录"中进行修改。修改个人文件夹保存位置后,QQ会自动为您把原来的数据迁移到您指定的新位置。

2009-11-10

转两个MSN签名

Alex_yu: 再无钱学森,全是钱学生
hm: 现实很骨感,理想很丰满

2009-11-06

[zz]MSN Messenger(Windows Live Messenger)联系人和分组名显示乱码的问题

http://hi.baidu.com/3548559/blog/item/e63ef709294ee08ad1581b9b.html
简述之:
regsvr32.exe inetcomm.dll (如失败需要下载inetcomm.dll)
删除%userprofile%\Local Settings\Application
Data\Microsoft下的Messenger和Windows Live Contacts两个目录。

这样是搞定了,但我有个疑问:
我第一次regsvr32.exe inetcomm.dll失败了。
可是当我把下载的inetcomm.dll解压到C:\windows\system32,没有提示覆盖旧文件。
但是,Windows文件保护对话框弹出来,说该文件被不明版本文件替换,要插入光盘。
那我就不明白了,如果系统中已经有这个文件,为什么注册会失败?为什么没有提示覆盖?

IP802SM

这是一款AP AP/Router Client三合一的产品。
这款产品有多个厂家贴牌(我实在没有弄清楚那个是ODM)。
比如:
  • UTStarcom  NS-01EW (肯定是OEM过来的)
  • 中怡数宽 IP802SM
  • versa VX-100WR
  • APC WMR1000G
  • Sercomm IP802SM
  • Sphairon Turbolink IP802SM
先说一下升级固件:(我想当无线网卡用,还没有搞定,搞定后补blog)
在线升级
准备:
  • 把拨码拨到位置3(配置模式),PC的跟设备连接的网卡的IP地址设成192.168.0.X (X是合法的且不为1)。
步骤:
  1. 通过浏览器打开http://192.168.0.1
  2. 选择系统配置(System Configuration)
  3. 点击升级软件(Upgrade Firmware)
  4. 如果有密码,输入密码;如无,则留空
  5. 点击浏览(Browse)选择文件(.img文件)
  6. 点击开始升级(Start Upgrade)
  7. 等待,不要中断网络连接和设备电源
通过升级工具升级
说明:工具是中怡数宽的,所以我认为要使用中怡数宽的固件文件(.bin)
准备:
  • 下载解压升级工具
  • 把拨码拨到位置3(配置模式),PC的跟设备连接的网卡的IP地址设成192.168.0.X (X是合法的且不为1)。
步骤:
  1. 运行Upgrade.exe
  2. 选择跟设备连接的网卡
  3. 点击Browse Target按钮
  4. 应当在Devices List看到要升级的设备(如果没有看到,则尝试“按住reset键插电,3s后松开reset键。这时才会进入升级模式,才可以用工具搜索到设备”——感谢中怡数宽的Tom Lau)
  5. 点击Files选择文件(.bin)
  6. 点击Upgrade
  7. 等待完成
说明:
如果升级失败(比如,原来的固件不是中怡数宽的,则有可能升级失败),那么Power和Wireless灯交替闪烁。
不要怕,再按照上述步骤重新来过就好了。




2009-11-05

[zz]MinGW/MSYS 与Cygwin/gcc 介绍

http://www.lupaworld.com/home/space-273398-do-blog-id-126252.html

MinGW 官方网站为 http://www.mingw.org 
      
        MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC(GNU Compiler C)产生 Windows32 程序。
 
        MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,在基本层,MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95 发行版以上的 Windows OS 有效,使用基本运行时间,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时间扩展。该功能是 Windows32 API 不具备的。下一个组成部分是 w32api 包,它是一组可以使用 Windows32 API 的包含文件和端口库。与基本运行时间相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 Windows32 API 功能。
 
       实际上 MinGW 并不是一个 C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。
 
       开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。所以,使用 MinGW 我们就可以像在 Linux 下一样使用 GNU 程序开发工具。
 
      GCC 就是 MinGW 的核心所在,GCC 是一套支持众多计算机程序语言的编译系统,而且在语言标准的实现上是最接近于标准的。并且 GCC 几乎可以移植到目前所有可用的计算机平台。
 
      GCC 本身不像 VC 那样拥有 IDE 界面(在 Windows 上也存在 Dev C++ 之类的支持 MinGW 编译器的 IDE:MinGW Developer Studio)。 源代码编辑你可以选用任何你喜欢的文本编辑器(据说微软的开发人员包括 VC 的开发都不用 VC 所带的 IDE 编辑器,而是选用 GNU 的 VIM 编辑器)。然后使用 make 等工具来进行软件项目的编译、链接、打包乃至发布。而像 cvs(svn) 源代码版本控制工具可以让世界上任何一个角落的人都可以参与到软件项目中来。
 
  关于 MFC,微软基础库类,这个随 VC++ 携带的一个源代码公开的开发包,和其他 Windows 程序开发包是一样的。如果有 VC++ 的授权,你完全可以使用 MFC 的源代码,也就是你使用 GCC 来编译 MFC 程序是完全可以的。
 
  当然,GNU 下也很多 Windows 程序开发包,甚至有一些是支持跨平台使用的。不仅仅可以直接把源代码编译为 Windows 程序,也可以不经修改编译为其他操作系统的图形程序。
 
MSYS介绍
 
官方网站为 http://www.mingw.org 
MSYS:Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本的bash,make等等。是Windows下最优秀的GNU环境。
 
       MSYS在windows下模拟了一个类unix的终端,它只提供了MinGW的用户载入环境,Cygwin在 windows下模拟了一个linux环境,它们带有一些unix终端下常用的工具,如ls、tail、tar,其实它们都是相应unix/linux工 具的windows版,而且它们的环境会继承windows的一些系统变量,如path,如果windows下装有ruby、rails,在它们的环境里 同样都可以直接运行。
 
 
cygwin/gcc 介绍
 
       cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器。
 
       cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从boost库的划分中可以看出来端倪,cygwin下的gcc和linux下 的gcc完全使用的是相同的Toolsets。所以完全可以和linux一起同步更新gcc版本,而不用担心问题,并且在cygwin/gcc做的东西 (不用win32的)可以无缝的用在linux下,没有任何问题。是在windows下开发linux程序的一个很好的选择。
 
       但是在cygwin/gcc下编译出来的程序,在windows执行必须依赖cygwin1.dll,并且速度有些慢,如果不想依赖这个东西的化,必须在gcc的编译选项中加入-mno-cygwin。加入这个选项其实gcc编译
器就会自动的选择在安装cygwin/gcc时安上的mingw,这个mingw就是gcc的一个交叉编译。
 
      对于mingw作为gcc在windows上的一个实现,由于不像cygwin的gcc在一个模拟linux上运行,同时相当一部分linux的工具不能够使用,不过现在已经有Msys这个模拟unix的shell,可以解决很多的问题。
 
      根据以上的分析,如果在windows开发linux程序,cygwin是很好的选择。如果你开发的程序不介意有一个cygwin1.dll的话,也是可以选择cygwin的。如果你是想开发windows下的程序,还要必须用gcc的化,mingw是很好的一个选择。但是在windows下有太多的编译 器了,bc,vc,intel c.....。

2009-11-04

Firefox 3.5只有1个Tab时不显示Close Button

以前解决方法挺麻烦的,现在好了,有了Last Tab Close Button addon

URL的file类型

以前试过很多种方法(如file://c:/ file:///c:/ file:////c:/),凡是没有找到IE和Firefox都支持的。
现在,我发现file:///c:/windows是IE和Firefox都支持的