<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>idv2 &#187; software</title>
	<atom:link href="http://tech.idv2.com/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.idv2.com</link>
	<description>关注Web开发技术，关注Internet。</description>
	<lastBuildDate>Tue, 27 Jul 2010 12:54:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ubuntu Server 10.04 + RoR安装memo</title>
		<link>http://tech.idv2.com/2010/07/24/ubuntu-server-ror-install-memo/</link>
		<comments>http://tech.idv2.com/2010/07/24/ubuntu-server-ror-install-memo/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 10:15:28 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/?p=803</guid>
		<description><![CDATA[Ubuntu Server 10.04 + RoR安装memo<!-- begin Pukiwiki generated code--><p>首先下载Ubuntu Server 10.04的光盘镜像，不到700M。然后安装。
服务安装只选了LAMP Server。</p>
<p>安装后的第一件事就是配置sshd-server。Ubuntu Server默认没有装sshd-server，
所以需要手动安装。</p>
<pre>$ sudo apt-get install openssh-server</pre>
<p>修改IP地址为固定IP。</p>
<pre>$ sudo vi /etc/network/interfaces
...(上面省略)...
auto eth0
iface eth0 inet static
address 192.168.0.10
gateway 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

$ sudo vi /etc/resolv.conf
nameserver 192.168.0.1

$ sudo /etc/init.d/networking  restart</pre>
<p>这样就可以用putty连接了。</p>
<p>接下来安装webmin，方便管理。去<a href="http://www.webmin.com/">webmin主页</a>下载deb包，1.510版本是13.83MB。</p>
<pre>$ sudo dpkg -i webmin_1.510-2_all.deb</pre>
<p>会提示缺包，执行以下命令：</p>
<pre>$ sudo apt-get -f install</pre>
<p>安装mod_python：</p>
<pre>$ sudo apt-get install libapache2-mod-python</pre>
<!-- end Pukiwiki generated code--><span id="more-803"></span><!-- begin Pukiwiki generated code--><p>安装ruby和RoR：</p>
<pre>$ sudo apt-get install ruby
$ sudo apt-get install rubygems
$ sudo apt-get install rails</pre>
<p>有人建议用 sudo gem install rails，但我在虚拟机上跑了一个小时一点动静也没有，只好回归apt-get了。</p>
<p>装好rails后试着建个小工程试试看：</p>
<pre>$ rails demo
$ cd demo
$ ruby script/server -b 0.0.0.0</pre>
<p>结果发现浏览器访问 <a href="http://192.168.0.10:3000">http://192.168.0.10:3000</a> 时，第一次访问能出现正常的RoR画面，第二次就会报
Internal Server Error，报告“private method `gsub!' called for #&lt;Class:0x7f2a674b0b98&gt; ”的错误。
查了一下，不用默认的WEBrick服务器而改成mongrel就能解决这个问题：</p>
<pre>$ sudo apt-get install mongrel</pre>
<p>安装mongrel之后，按照原来的方式启动RoR服务器即可。</p>
<pre>$ ruby script/server -b 0.0.0.0</pre>
<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[Ubuntu Server 10.04 + RoR安装memo<!-- begin Pukiwiki generated code--><p>首先下载Ubuntu Server 10.04的光盘镜像，不到700M。然后安装。
服务安装只选了LAMP Server。</p>
<p>安装后的第一件事就是配置sshd-server。Ubuntu Server默认没有装sshd-server，
所以需要手动安装。</p>
<pre>$ sudo apt-get install openssh-server</pre>
<p>修改IP地址为固定IP。</p>
<pre>$ sudo vi /etc/network/interfaces
...(上面省略)...
auto eth0
iface eth0 inet static
address 192.168.0.10
gateway 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

$ sudo vi /etc/resolv.conf
nameserver 192.168.0.1

$ sudo /etc/init.d/networking  restart</pre>
<p>这样就可以用putty连接了。</p>
<p>接下来安装webmin，方便管理。去<a href="http://www.webmin.com/">webmin主页</a>下载deb包，1.510版本是13.83MB。</p>
<pre>$ sudo dpkg -i webmin_1.510-2_all.deb</pre>
<p>会提示缺包，执行以下命令：</p>
<pre>$ sudo apt-get -f install</pre>
<p>安装mod_python：</p>
<pre>$ sudo apt-get install libapache2-mod-python</pre>
<!-- end Pukiwiki generated code--><span id="more-803"></span><!-- begin Pukiwiki generated code--><p>安装ruby和RoR：</p>
<pre>$ sudo apt-get install ruby
$ sudo apt-get install rubygems
$ sudo apt-get install rails</pre>
<p>有人建议用 sudo gem install rails，但我在虚拟机上跑了一个小时一点动静也没有，只好回归apt-get了。</p>
<p>装好rails后试着建个小工程试试看：</p>
<pre>$ rails demo
$ cd demo
$ ruby script/server -b 0.0.0.0</pre>
<p>结果发现浏览器访问 <a href="http://192.168.0.10:3000">http://192.168.0.10:3000</a> 时，第一次访问能出现正常的RoR画面，第二次就会报
Internal Server Error，报告“private method `gsub!' called for #&lt;Class:0x7f2a674b0b98&gt; ”的错误。
查了一下，不用默认的WEBrick服务器而改成mongrel就能解决这个问题：</p>
<pre>$ sudo apt-get install mongrel</pre>
<p>安装mongrel之后，按照原来的方式启动RoR服务器即可。</p>
<pre>$ ruby script/server -b 0.0.0.0</pre>
<!-- end Pukiwiki generated code-->
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2010/07/24/ubuntu-server-ror-install-memo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AHK]Scratch Pad：简单的便笺脚本</title>
		<link>http://tech.idv2.com/2010/07/15/ahk-scratch-pad/</link>
		<comments>http://tech.idv2.com/2010/07/15/ahk-scratch-pad/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 02:55:56 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[ahk]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/?p=797</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>以前我非常喜欢IpMsg这款著名的局域网IM软件。不过除了IM之外，我更喜欢用它作为快捷便笺使用——想记录电话号码，或是记录idea，或是给一小段文字排版时，可以随手用Ctrl-Alt-S调出，用完后直接关闭。但后来公司禁止了该软件。没办法，只好用AutoHotKey写一段脚本来实现这个功能了。</p>
<p>代码相当简单，就不再解释了。默认的呼叫和隐藏热键都是Ctrl-Alt-S。</p>
<pre>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; scratch pad
^!s::
IfWinActive, Scratch Pad
{
    Gui, Hide
}
Else
{
    If scrachPadCreated &lt;&gt; 1
    {
        Gui, +AlwaysOnTop -MinimizeBox -MaximizeBox
        Gui, Margin, 0, 0
        Gui, Font, s11, ＭＳ ゴシック
        Gui, Add, Edit, W400 H300
        scrachPadCreated := 1
    }
    Gui, Show, , Scratch Pad
}</pre>
<!-- end Pukiwiki generated code-->]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>以前我非常喜欢IpMsg这款著名的局域网IM软件。不过除了IM之外，我更喜欢用它作为快捷便笺使用——想记录电话号码，或是记录idea，或是给一小段文字排版时，可以随手用Ctrl-Alt-S调出，用完后直接关闭。但后来公司禁止了该软件。没办法，只好用AutoHotKey写一段脚本来实现这个功能了。</p>
<p>代码相当简单，就不再解释了。默认的呼叫和隐藏热键都是Ctrl-Alt-S。</p>
<pre>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; scratch pad
^!s::
IfWinActive, Scratch Pad
{
    Gui, Hide
}
Else
{
    If scrachPadCreated &lt;&gt; 1
    {
        Gui, +AlwaysOnTop -MinimizeBox -MaximizeBox
        Gui, Margin, 0, 0
        Gui, Font, s11, ＭＳ ゴシック
        Gui, Add, Edit, W400 H300
        scrachPadCreated := 1
    }
    Gui, Show, , Scratch Pad
}</pre>
<!-- end Pukiwiki generated code-->]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2010/07/15/ahk-scratch-pad/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>用CloneZilla制作紧急恢复分区</title>
		<link>http://tech.idv2.com/2010/07/09/clonezilla-eb/</link>
		<comments>http://tech.idv2.com/2010/07/09/clonezilla-eb/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 16:58:33 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[clonezilla]]></category>
		<category><![CDATA[ebd]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/?p=761</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>关于一键恢复，网上有很多<a href="http://bbs.wuyou.com/forumdisplay.php?fid=34">讨论</a>，也有很多<a href="http://www.yjhy.net/xzdz.htm">成品</a>，
不过大多数都是基于Ghost实现的，而Ghost是个商业软件，喜欢用开源的人可能比较难于接受吧。
此外，这种一键恢复虽然很容易使用，但可定制性也比较差。所以我考虑使用<a href="http://clonezilla.org/">CloneZilla</a>
来制作一个紧急恢复分区，用来备份/还原系统。</p>
<p>为什么用CloneZilla呢？理由如下：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>它是开源软件。</li>
<li>备份形式灵活，可以选择备份分区或整个硬盘，可以选择备份到本地硬盘，也可以备份到网络。</li>
<li>自带的Linux系统可以用作系统维护。</li></ul>
<p>CloneZilla的使用方法就不多说了，自带的<a href="http://clonezilla.nchc.org.tw/">中文文档</a>中有极其详尽的截图说明。
另外，制作紧急恢复分区，只有CloneZilla是不够的，还得要<a href="https://gna.org">grub4dos</a>的帮助。</p>
<p>我的操作系统是Windows XP，硬盘分区默认都是NTFS。下面开始动手吧。</p>
<!-- end Pukiwiki generated code--><span id="more-761"></span><!-- begin Pukiwiki generated code--><h2 id="content_8_0">准备分区</h2>
<p>我的C盘容量是40G，常驻的文件大约有10～20G左右，长时间使用之后可能会增长到30G。
考虑到备份后的镜像能被压缩到50%左右，所以一次备份大约需要5～10G的硬盘。
所以我留出30G的空间用作备份。</p>
<p>首先整理磁盘碎片，然后用Partition Magic等工具在硬盘末尾划分出一个30G的空间。
最好是用主分区（原因是，Linux和grub对主分区的编号方式要比逻辑盘简单些），
然后将其格式化成FAT32，并分配一个驱动器符号（假设为J:）。
这就是以后的紧急恢复分区。</p>

<h2 id="content_8_1">安装CloneZilla</h2>
<p>在 J: 盘下建立以下几个目录：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>clonezilla：CloneZilla主目录</li>
<li>grub4dos：grub4dos主目录</li>
<li>iso：其他系统维护盘镜像的目录</li>
<li>images：C盘镜像备份的目录</li></ul>
<p>然后把CloneZilla Live光盘中的 live 目录下的内容完全复制到 J:\clonezilla 下。</p>

<h2 id="content_8_2">安装grub4dos</h2>
<p>grub4dos支持NTLDR启动，所以其实只需要两个文件：grldr和menu.lst。但为了以后作业方便，
我还是把整个grub4dos文件都放到了 J:\grub4dos 下。</p>
<p>然后设置NTLDR启动：复制 J:\grub4dos 下的 grldr 和 menu.lst 两个文件到 C: 盘根目录。
然后编辑 C:\boot.ini ，加入以下内容：</p>
<pre>C:\GRLDR=&quot;Start GRUB&quot;</pre>
<p>重新启动计算机，按F8出现Windows XP的启动菜单，然后选择“Start GRUB”，能出现GRUB的启动菜单就OK。</p>

<h2 id="content_8_3">设置grub4dos启动CloneZilla</h2>
<p>回到Windows下编辑menu.lst。默认的menu.lst中有许多没用的菜单项，我只保留了最初加载NTLDR和CMLDR的两项。
然后加入启动CloneZilla的菜单项：</p>
<pre>title Clonezilla live on harddrive
root (hd0,2)
kernel /clonezilla/vmlinuz1 boot=live union=aufs vga=788 ip=frommedia live-media-path=/clonezilla bootfrom=/dev/hda3 toram=filesystem.squashfs
initrd /clonezilla/initrd1.img
boot</pre>
<p>我的恢复分区(J:)是系统的第三个主分区，所以第二行盘符为(hd0,2)，第三行的bootfrom为/dev/hda3。
这两个参数根据具体情况调整即可。另外，kernel和initrd指令中用到的 /clonezilla 路径，
就是我们建立的 J:\clonezilla 路径。</p>
<p>设置好之后，重新启动，进入Grub选择“Clonezilla live on harddrive”菜单项，看看能否顺利启动clonezilla。</p>

<h2 id="content_8_4">安装Win98启动软盘</h2>
<p>这一步的目的是让电脑能启动到纯DOS模式下，以便执行一些维护命令，比如稍后要说的bootlace.com程序
就必须在纯DOS模式下执行。</p>
<p>首先上网找一张Windows 98启动软盘的镜像，放在iso目录下，假设路径为 /iso/win98.img。
然后在menu.lst中加入以下菜单项：</p>
<pre>title Win98 Floppy
find --set-root --ignore-floppies /iso/win98.img
map --mem /iso/win98.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)</pre>
<p>这里关键是map --mem这条命令，它将镜像文件完全加载到内存中，并把它映射到设备(fd0)上，
这样就相当于虚拟了一个软驱。</p>
<p>然后重新启动计算机，进入Grub选择“Win98 Floppy”即可进入纯DOS模式。</p>

<h2 id="content_8_5">安装grub4dos的引导扇区</h2>
<p>现在grub4dos是通过NTLDR引导的，万一NTLDR也挂掉了，这个紧急恢复分区就失效了。
为了防止这一点，需要把grub4dos安装到MBR中。</p>
<p>grub4dos提供了一个名为bootlace.com的程序可以写MBR。它的原理是，首先把原有的MBR（位于0扇区）备份到1扇区，
然后在0扇区写入自己的启动程序。根据硬盘启动区的规格定义，硬盘的0磁道中，除了0扇区是MBR之外，其他扇区都是保留，
所以备份到1扇区不会有任何影响。</p>
<p>由于bootlace.com必须在纯DOS下使用，而Win98启动盘提供的DOS没有命令行历史功能，
偏偏bootlace.com的选项又长又多，因此手动敲命令可不是个好办法。
应该建立一个名为INSTALL.BAT的文件，把bootlace.com的命令行写进去。</p>
<p>下面是INSTALL.BAT的例子。注意实际书写时不要换行，都写在同一行上。而且要注意命令行长度不要超过127个字符，这是DOS对命令行长度的限制。</p>
<pre>bootlace --boot-prevmbr-first --time-out=1 
         --hot-key=0x4300 --force-backup-mbr 
         --preferred-drive=0 --preferred-partition=2 0x80</pre>
<p>各个选项的具体说明可以参见README_GRUB4DOS.TXT，这里只简单说明一下。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>--boot-prevmbr-first指明优先启动原来的MBR（进Windows），只有按下热键时才进入特定分区启动。</li>
<li>--time-out指定启动时的等待时间。</li>
<li>--hot-key指定进入特定分区启动的热键，0x4300为F9。</li>
<li>--force-backup-mbr让bootlace.com将旧MBR备份到1扇区。</li>
<li>--preferred-drive和--preferred-partition指定按下热键时，从第0磁盘的第2号扇区（第3个扇区）启动。这跟grub菜单中的(hd0, 2)是一样的意思。</li>
<li>最后的0x80表示要把bootlace.com装到第一块硬盘上。</li></ul>
<p>然后重启计算机，进入DOS环境后执行bootlace.com即可。再次启动时就会出现一行小字，等待1秒钟即可进入原有Windows，
而按下F9键就会启动位于(hd0,2)的grub引导程序。</p>
<!-- end Pukiwiki generated code-->]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>关于一键恢复，网上有很多<a href="http://bbs.wuyou.com/forumdisplay.php?fid=34">讨论</a>，也有很多<a href="http://www.yjhy.net/xzdz.htm">成品</a>，
不过大多数都是基于Ghost实现的，而Ghost是个商业软件，喜欢用开源的人可能比较难于接受吧。
此外，这种一键恢复虽然很容易使用，但可定制性也比较差。所以我考虑使用<a href="http://clonezilla.org/">CloneZilla</a>
来制作一个紧急恢复分区，用来备份/还原系统。</p>
<p>为什么用CloneZilla呢？理由如下：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>它是开源软件。</li>
<li>备份形式灵活，可以选择备份分区或整个硬盘，可以选择备份到本地硬盘，也可以备份到网络。</li>
<li>自带的Linux系统可以用作系统维护。</li></ul>
<p>CloneZilla的使用方法就不多说了，自带的<a href="http://clonezilla.nchc.org.tw/">中文文档</a>中有极其详尽的截图说明。
另外，制作紧急恢复分区，只有CloneZilla是不够的，还得要<a href="https://gna.org">grub4dos</a>的帮助。</p>
<p>我的操作系统是Windows XP，硬盘分区默认都是NTFS。下面开始动手吧。</p>
<!-- end Pukiwiki generated code--><span id="more-761"></span><!-- begin Pukiwiki generated code--><h2 id="content_10_0">准备分区</h2>
<p>我的C盘容量是40G，常驻的文件大约有10～20G左右，长时间使用之后可能会增长到30G。
考虑到备份后的镜像能被压缩到50%左右，所以一次备份大约需要5～10G的硬盘。
所以我留出30G的空间用作备份。</p>
<p>首先整理磁盘碎片，然后用Partition Magic等工具在硬盘末尾划分出一个30G的空间。
最好是用主分区（原因是，Linux和grub对主分区的编号方式要比逻辑盘简单些），
然后将其格式化成FAT32，并分配一个驱动器符号（假设为J:）。
这就是以后的紧急恢复分区。</p>

<h2 id="content_10_1">安装CloneZilla</h2>
<p>在 J: 盘下建立以下几个目录：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>clonezilla：CloneZilla主目录</li>
<li>grub4dos：grub4dos主目录</li>
<li>iso：其他系统维护盘镜像的目录</li>
<li>images：C盘镜像备份的目录</li></ul>
<p>然后把CloneZilla Live光盘中的 live 目录下的内容完全复制到 J:\clonezilla 下。</p>

<h2 id="content_10_2">安装grub4dos</h2>
<p>grub4dos支持NTLDR启动，所以其实只需要两个文件：grldr和menu.lst。但为了以后作业方便，
我还是把整个grub4dos文件都放到了 J:\grub4dos 下。</p>
<p>然后设置NTLDR启动：复制 J:\grub4dos 下的 grldr 和 menu.lst 两个文件到 C: 盘根目录。
然后编辑 C:\boot.ini ，加入以下内容：</p>
<pre>C:\GRLDR=&quot;Start GRUB&quot;</pre>
<p>重新启动计算机，按F8出现Windows XP的启动菜单，然后选择“Start GRUB”，能出现GRUB的启动菜单就OK。</p>

<h2 id="content_10_3">设置grub4dos启动CloneZilla</h2>
<p>回到Windows下编辑menu.lst。默认的menu.lst中有许多没用的菜单项，我只保留了最初加载NTLDR和CMLDR的两项。
然后加入启动CloneZilla的菜单项：</p>
<pre>title Clonezilla live on harddrive
root (hd0,2)
kernel /clonezilla/vmlinuz1 boot=live union=aufs vga=788 ip=frommedia live-media-path=/clonezilla bootfrom=/dev/hda3 toram=filesystem.squashfs
initrd /clonezilla/initrd1.img
boot</pre>
<p>我的恢复分区(J:)是系统的第三个主分区，所以第二行盘符为(hd0,2)，第三行的bootfrom为/dev/hda3。
这两个参数根据具体情况调整即可。另外，kernel和initrd指令中用到的 /clonezilla 路径，
就是我们建立的 J:\clonezilla 路径。</p>
<p>设置好之后，重新启动，进入Grub选择“Clonezilla live on harddrive”菜单项，看看能否顺利启动clonezilla。</p>

<h2 id="content_10_4">安装Win98启动软盘</h2>
<p>这一步的目的是让电脑能启动到纯DOS模式下，以便执行一些维护命令，比如稍后要说的bootlace.com程序
就必须在纯DOS模式下执行。</p>
<p>首先上网找一张Windows 98启动软盘的镜像，放在iso目录下，假设路径为 /iso/win98.img。
然后在menu.lst中加入以下菜单项：</p>
<pre>title Win98 Floppy
find --set-root --ignore-floppies /iso/win98.img
map --mem /iso/win98.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)</pre>
<p>这里关键是map --mem这条命令，它将镜像文件完全加载到内存中，并把它映射到设备(fd0)上，
这样就相当于虚拟了一个软驱。</p>
<p>然后重新启动计算机，进入Grub选择“Win98 Floppy”即可进入纯DOS模式。</p>

<h2 id="content_10_5">安装grub4dos的引导扇区</h2>
<p>现在grub4dos是通过NTLDR引导的，万一NTLDR也挂掉了，这个紧急恢复分区就失效了。
为了防止这一点，需要把grub4dos安装到MBR中。</p>
<p>grub4dos提供了一个名为bootlace.com的程序可以写MBR。它的原理是，首先把原有的MBR（位于0扇区）备份到1扇区，
然后在0扇区写入自己的启动程序。根据硬盘启动区的规格定义，硬盘的0磁道中，除了0扇区是MBR之外，其他扇区都是保留，
所以备份到1扇区不会有任何影响。</p>
<p>由于bootlace.com必须在纯DOS下使用，而Win98启动盘提供的DOS没有命令行历史功能，
偏偏bootlace.com的选项又长又多，因此手动敲命令可不是个好办法。
应该建立一个名为INSTALL.BAT的文件，把bootlace.com的命令行写进去。</p>
<p>下面是INSTALL.BAT的例子。注意实际书写时不要换行，都写在同一行上。而且要注意命令行长度不要超过127个字符，这是DOS对命令行长度的限制。</p>
<pre>bootlace --boot-prevmbr-first --time-out=1 
         --hot-key=0x4300 --force-backup-mbr 
         --preferred-drive=0 --preferred-partition=2 0x80</pre>
<p>各个选项的具体说明可以参见README_GRUB4DOS.TXT，这里只简单说明一下。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>--boot-prevmbr-first指明优先启动原来的MBR（进Windows），只有按下热键时才进入特定分区启动。</li>
<li>--time-out指定启动时的等待时间。</li>
<li>--hot-key指定进入特定分区启动的热键，0x4300为F9。</li>
<li>--force-backup-mbr让bootlace.com将旧MBR备份到1扇区。</li>
<li>--preferred-drive和--preferred-partition指定按下热键时，从第0磁盘的第2号扇区（第3个扇区）启动。这跟grub菜单中的(hd0, 2)是一样的意思。</li>
<li>最后的0x80表示要把bootlace.com装到第一块硬盘上。</li></ul>
<p>然后重启计算机，进入DOS环境后执行bootlace.com即可。再次启动时就会出现一行小字，等待1秒钟即可进入原有Windows，
而按下F9键就会启动位于(hd0,2)的grub引导程序。</p>
<!-- end Pukiwiki generated code-->]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2010/07/09/clonezilla-eb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>让vim自动保存</title>
		<link>http://tech.idv2.com/2010/03/31/autosave-in-vim/</link>
		<comments>http://tech.idv2.com/2010/03/31/autosave-in-vim/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 03:37:10 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[vi]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/?p=770</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p><a href="http://www.vim.org/">vim</a>是我最喜欢的编辑器，连写邮件都离不开它，所以一直用Thunderbird 2.0 + External Editor插件 + vim这一套组合来写邮件。最近又装了<a href="http://www.google.co.jp/intl/ja/ime/">Google日文输入法</a>，可惜它跟vim的兼容性不太好，经常在汉字变换时导致vim异常退出，而写了一半的邮件也就化为泡影了。于是想，如果vim能自动保存就好了。今天研究了一下帮助文件，发现还真能实现类似自动保存的功能。</p>
<p>方法很简单，只需在 $VIM/vimfiles/ftplugin/mail.vim 中加入这样一行：</p>
<pre>au InsertLeave *.eml write</pre>
<p>该行的意思是：针对所有.eml文件，在退出编辑模式（InsertLeave）时，自动执行write命令。这样就能在每次按Esc键时自动保存了。</p>
<p>顺便贴一下其他有用的配置：</p>
<pre>set encoding=utf8
set guifont=ＭＳ_ゴシック:h10:cSHIFTJIS
set tw=140                       &quot; 140字符自动换行
set et                           &quot; expandtab，用空格代替Tab键
retab                            &quot; 打开vim时把已有的Tab全部转换成空格
au InsertLeave *.eml write       &quot; 每次退出插入模式时自动保存</pre>
<!-- end Pukiwiki generated code-->]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p><a href="http://www.vim.org/">vim</a>是我最喜欢的编辑器，连写邮件都离不开它，所以一直用Thunderbird 2.0 + External Editor插件 + vim这一套组合来写邮件。最近又装了<a href="http://www.google.co.jp/intl/ja/ime/">Google日文输入法</a>，可惜它跟vim的兼容性不太好，经常在汉字变换时导致vim异常退出，而写了一半的邮件也就化为泡影了。于是想，如果vim能自动保存就好了。今天研究了一下帮助文件，发现还真能实现类似自动保存的功能。</p>
<p>方法很简单，只需在 $VIM/vimfiles/ftplugin/mail.vim 中加入这样一行：</p>
<pre>au InsertLeave *.eml write</pre>
<p>该行的意思是：针对所有.eml文件，在退出编辑模式（InsertLeave）时，自动执行write命令。这样就能在每次按Esc键时自动保存了。</p>
<p>顺便贴一下其他有用的配置：</p>
<pre>set encoding=utf8
set guifont=ＭＳ_ゴシック:h10:cSHIFTJIS
set tw=140                       &quot; 140字符自动换行
set et                           &quot; expandtab，用空格代替Tab键
retab                            &quot; 打开vim时把已有的Tab全部转换成空格
au InsertLeave *.eml write       &quot; 每次退出插入模式时自动保存</pre>
<!-- end Pukiwiki generated code-->]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2010/03/31/autosave-in-vim/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>关闭VMware的PC喇叭</title>
		<link>http://tech.idv2.com/2010/02/26/disable-pc-speaker-in-vmware/</link>
		<comments>http://tech.idv2.com/2010/02/26/disable-pc-speaker-in-vmware/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 05:47:03 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/?p=767</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>在VMWare中运行一些Linux上的软件如vi，出错时PC喇叭会不停地叫，很烦人。
其实只要在 c:\Documents and Settings\用户名\Application Data\VMware\config.ini （如不存在请自行建立）中加入这样一行：</p>
<pre>mks.noBeep = &quot;TRUE&quot;</pre>
<p>就可以从虚拟硬件上关闭VMWare的PC喇叭。</p>
<p>我用的VMware是 VMware Workstation 5.5.1版。</p>
<!-- end Pukiwiki generated code-->]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>在VMWare中运行一些Linux上的软件如vi，出错时PC喇叭会不停地叫，很烦人。
其实只要在 c:\Documents and Settings\用户名\Application Data\VMware\config.ini （如不存在请自行建立）中加入这样一行：</p>
<pre>mks.noBeep = &quot;TRUE&quot;</pre>
<p>就可以从虚拟硬件上关闭VMWare的PC喇叭。</p>
<p>我用的VMware是 VMware Workstation 5.5.1版。</p>
<!-- end Pukiwiki generated code-->]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2010/02/26/disable-pc-speaker-in-vmware/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>[Trac]8个企业应用必备的Trac插件</title>
		<link>http://tech.idv2.com/2009/08/04/useful-trac-plugins/</link>
		<comments>http://tech.idv2.com/2009/08/04/useful-trac-plugins/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 03:13:03 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/2009/08/04/useful-trac-plugins/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>这些插件都可以在 <a href="http://trac-hacks.org/">Trac Hacks</a> 上下载到。
直接在首页搜索名字即可，因此本文就不再给出下载链接。</p>
<p><strong>AdvancedTicketWorkflowPlugin</strong></p>
<p>添加几种常用的ticket工作流动作，如转给上一个人、转给模块负责人、转给报告者、执行外部程序等。
如果你想要自己打造一个适合项目的工作流，这个插件肯定会派上用场。</p>
<p><strong>BatchModify</strong></p>
<p>批量修改ticket属性。</p>
<p><strong>TracAccountManager</strong></p>
<p>可以从后台管理Trac帐号，但更重要的是，它可以提供一个基于Web的登录页面。</p>
<p><strong>TracAuthRequired</strong></p>
<p>要求使用者必须登录才能查看Trac内容。在企业应用中，项目的资料一般都需要保密，
这个插件跟TracAccountManager配合使用，正好能满足要求。</p>
<p><strong>TracReportManager</strong></p>
<p>Trac可以自定义报告，但报告管理功能很弱，一不小心就会把辛辛苦苦写成的SQL语句删掉。
TracReportManager可以给ticket报告做备份，在修改报告之前先备份一下，就不用担心误删的问题了。</p>
<p><strong>TracSectionEditPlugin</strong></p>
<p>可以按照章节编辑wiki内容（就像WikiPedia那样）。一些手册页可能会很长很长，一次性编辑很不方便，
而单独编辑某一章节就比较容易了。</p>
<p><strong>TracTicketTemplate</strong></p>
<p>ticket模板，可以给不同类型的ticket做不同的模板，能节约输入ticket的时间，规范ticket的格式。</p>
<p><strong>TracWikiRename</strong></p>
<p>给wiki页面改名，在整理wiki时很有用。</p>
<!-- end Pukiwiki generated code-->]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>这些插件都可以在 <a href="http://trac-hacks.org/">Trac Hacks</a> 上下载到。
直接在首页搜索名字即可，因此本文就不再给出下载链接。</p>
<p><strong>AdvancedTicketWorkflowPlugin</strong></p>
<p>添加几种常用的ticket工作流动作，如转给上一个人、转给模块负责人、转给报告者、执行外部程序等。
如果你想要自己打造一个适合项目的工作流，这个插件肯定会派上用场。</p>
<p><strong>BatchModify</strong></p>
<p>批量修改ticket属性。</p>
<p><strong>TracAccountManager</strong></p>
<p>可以从后台管理Trac帐号，但更重要的是，它可以提供一个基于Web的登录页面。</p>
<p><strong>TracAuthRequired</strong></p>
<p>要求使用者必须登录才能查看Trac内容。在企业应用中，项目的资料一般都需要保密，
这个插件跟TracAccountManager配合使用，正好能满足要求。</p>
<p><strong>TracReportManager</strong></p>
<p>Trac可以自定义报告，但报告管理功能很弱，一不小心就会把辛辛苦苦写成的SQL语句删掉。
TracReportManager可以给ticket报告做备份，在修改报告之前先备份一下，就不用担心误删的问题了。</p>
<p><strong>TracSectionEditPlugin</strong></p>
<p>可以按照章节编辑wiki内容（就像WikiPedia那样）。一些手册页可能会很长很长，一次性编辑很不方便，
而单独编辑某一章节就比较容易了。</p>
<p><strong>TracTicketTemplate</strong></p>
<p>ticket模板，可以给不同类型的ticket做不同的模板，能节约输入ticket的时间，规范ticket的格式。</p>
<p><strong>TracWikiRename</strong></p>
<p>给wiki页面改名，在整理wiki时很有用。</p>
<!-- end Pukiwiki generated code-->]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/08/04/useful-trac-plugins/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>用摄像头+VirtualDub录制视频</title>
		<link>http://tech.idv2.com/2009/06/28/record-video-with-virtualdub/</link>
		<comments>http://tech.idv2.com/2009/06/28/record-video-with-virtualdub/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 09:39:24 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[virtualdub]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/2009/06/28/record-video-with-virtualdub/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>今天想用摄像头录一段视频，上网找视频录制的软件，发现好用的都是收费的。
没办法，想起VirtualDub也能录制视频，于是尝试了一下，发现它的效果还是很不错的。
而且是免费的哦！</p>
<p>以下演示的版本是Virtual 1.5.10，摄像头是罗技的QuickCam系列。</p>
<p>首先要设置好音频源。打开<strong>控制面板</strong>-&gt;<strong>声音和视频设备</strong>，选择<strong>音频</strong>选项卡。
如果摄像头的驱动已经装好，那么“录音”中的“默认设备”中应该有一项“USB Audio Device”，
选择该项，确定。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/06/record-video-with-virtualdub-01.png" alt="record-video-with-virtualdub-01.png" title="record-video-with-virtualdub-01.png" width="367" height="450" /></div>

<p>然后启动VirtualDub，选择菜单<strong>File</strong>-&gt;<strong>Capture AVI...</strong>，进入视频捕捉的界面。
此时即可看到摄像头的图像。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/06/record-video-with-virtualdub-02.jpg" alt="record-video-with-virtualdub-02.jpg" title="record-video-with-virtualdub-02.jpg" width="613" height="398" /></div>

<p>接下来，需要做一些设置：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>按P，打开视频预览，以便随时观察视频录制情况。</li>
<li>按F，选择视频录制的分辨率、颜色深度等。根据摄像头的功能及自己的需求设置即可。</li>
<li>按S，启动摄像头的设置对话框，在这里调节摄像头的亮度、对比度、快门速度、光圈、白平衡等参数，直到画质满足需要。</li>
<li>按Shift-C，选择视频的压缩方式。一般选择DivX即可。如果不压缩，录下来的AVI文件会有几十G之大。</li>
<li>按A，选择录音的音质。一般选择CD音质。</li>
<li>按V，打开声音显示，测试摄像头自带的麦克风是否好用。</li>
<li>按F2，选择将视频保存到哪里。</li></ul>
<p>OK，这样就全部设置好了。接下来按 F6 键开始录制，按 Esc或单击鼠标结束录制。
效果还不错吧？</p>
<p>唯一的一点遗憾就是，这样录下来的AVI中，音频是没有压缩的，需要用VirtualDub做后期处理，
将视频中的音频分离出来，选好压缩算法之后重新保存成AVI。</p>
<!-- end Pukiwiki generated code-->]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>今天想用摄像头录一段视频，上网找视频录制的软件，发现好用的都是收费的。
没办法，想起VirtualDub也能录制视频，于是尝试了一下，发现它的效果还是很不错的。
而且是免费的哦！</p>
<p>以下演示的版本是Virtual 1.5.10，摄像头是罗技的QuickCam系列。</p>
<p>首先要设置好音频源。打开<strong>控制面板</strong>-&gt;<strong>声音和视频设备</strong>，选择<strong>音频</strong>选项卡。
如果摄像头的驱动已经装好，那么“录音”中的“默认设备”中应该有一项“USB Audio Device”，
选择该项，确定。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/06/record-video-with-virtualdub-01.png" alt="record-video-with-virtualdub-01.png" title="record-video-with-virtualdub-01.png" width="367" height="450" /></div>

<p>然后启动VirtualDub，选择菜单<strong>File</strong>-&gt;<strong>Capture AVI...</strong>，进入视频捕捉的界面。
此时即可看到摄像头的图像。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/06/record-video-with-virtualdub-02.jpg" alt="record-video-with-virtualdub-02.jpg" title="record-video-with-virtualdub-02.jpg" width="613" height="398" /></div>

<p>接下来，需要做一些设置：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>按P，打开视频预览，以便随时观察视频录制情况。</li>
<li>按F，选择视频录制的分辨率、颜色深度等。根据摄像头的功能及自己的需求设置即可。</li>
<li>按S，启动摄像头的设置对话框，在这里调节摄像头的亮度、对比度、快门速度、光圈、白平衡等参数，直到画质满足需要。</li>
<li>按Shift-C，选择视频的压缩方式。一般选择DivX即可。如果不压缩，录下来的AVI文件会有几十G之大。</li>
<li>按A，选择录音的音质。一般选择CD音质。</li>
<li>按V，打开声音显示，测试摄像头自带的麦克风是否好用。</li>
<li>按F2，选择将视频保存到哪里。</li></ul>
<p>OK，这样就全部设置好了。接下来按 F6 键开始录制，按 Esc或单击鼠标结束录制。
效果还不错吧？</p>
<p>唯一的一点遗憾就是，这样录下来的AVI中，音频是没有压缩的，需要用VirtualDub做后期处理，
将视频中的音频分离出来，选好压缩算法之后重新保存成AVI。</p>
<!-- end Pukiwiki generated code-->]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/06/28/record-video-with-virtualdub/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>安装Visual Studio 2003时反复重启的问题</title>
		<link>http://tech.idv2.com/2009/03/31/vs2003-reboot-fix/</link>
		<comments>http://tech.idv2.com/2009/03/31/vs2003-reboot-fix/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 03:31:25 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[visual-studio]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/2009/03/31/vs2003-reboot-fix/</guid>
		<description><![CDATA[今天在安装Visual Studio 2003时，安装程序要求先重启计算机，重启之后再启动安装程序，依然要求重启计算机，如此一直反复下去。无奈Google了一下，发现这居然是个常见问题，解决方法是删除 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager 下的 PendingFileRenameOperations 键就可以了。
看了看我机器上的这个键的内容，好像是安装McAfee时遗留下来的。
ps.原来常见的那个“必须重启后才能完成安装”是这么回事儿啊。
]]></description>
			<content:encoded><![CDATA[<p>今天在安装Visual Studio 2003时，安装程序要求先重启计算机，重启之后再启动安装程序，依然要求重启计算机，如此一直反复下去。无奈Google了一下，发现这居然是个常见问题，解决方法是删除 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager 下的 PendingFileRenameOperations 键就可以了。</p>
<p>看了看我机器上的这个键的内容，好像是安装McAfee时遗留下来的。</p>
<p>ps.原来常见的那个“必须重启后才能完成安装”是这么回事儿啊。</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/03/31/vs2003-reboot-fix/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何reset VSS的工作目录</title>
		<link>http://tech.idv2.com/2009/03/19/reset-vss-working-dir/</link>
		<comments>http://tech.idv2.com/2009/03/19/reset-vss-working-dir/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 09:32:04 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[vss]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/2009/03/19/reset-vss-working-dir/</guid>
		<description><![CDATA[有些人没有设置工作目录的习惯，而是想checkout哪个文件时就顺手设置一个，久而久之VSS中各个文件的工作目录设到哪儿的都有。想整理整理吧，但又不知道怎么删，甚至把整个数据库连接都删了重建也不行。
原来……真没想到vss居然把工作目录这个完全属于客户端的信息保存到了服务器上。打开服务器上的 &#8221;users/你的用户名/ss.ini&#8221;，看看最后那部分吧，工作目录的设置都在这儿呢。全删了，再重新设就行了。
]]></description>
			<content:encoded><![CDATA[<p>有些人没有设置工作目录的习惯，而是想checkout哪个文件时就顺手设置一个，久而久之VSS中各个文件的工作目录设到哪儿的都有。想整理整理吧，但又不知道怎么删，甚至把整个数据库连接都删了重建也不行。</p>
<p>原来……真没想到vss居然把工作目录这个完全属于客户端的信息保存到了服务器上。打开服务器上的 &#8221;users/你的用户名/ss.ini&#8221;，看看最后那部分吧，工作目录的设置都在这儿呢。全删了，再重新设就行了。</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/03/19/reset-vss-working-dir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel 2003的默认颜色</title>
		<link>http://tech.idv2.com/2008/12/27/excel-default-colors/</link>
		<comments>http://tech.idv2.com/2008/12/27/excel-default-colors/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 15:33:21 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[excel]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/2008/12/27/excel-default-colors/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>Excel 2003中只能从调色版中选择颜色，但调色版中只有56种颜色，这就意味着一个工作簿中最多只能同时有56种颜色。
通过“工具-&gt;选项-&gt;颜色”可以设置调色版。</p>
<p>选中单元格后，从格式工具栏的背景色/字体颜色按钮中只能选取40种常用颜色，而在单元格属性对话框（用Ctrl-1打开）中，
则可以为单元格设置所有56种颜色。</p>
<!-- end Pukiwiki generated code--><span id="more-653"></span><!-- begin Pukiwiki generated code--><p>默认的56种颜色及它们在调色版中的排列位置如下图所示。这个图形中的颜色位置与“工具-&gt;选项-&gt;颜色”中的颜色排列完全相同。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2008/12/excel-default-colors.png" alt="excel-default-colors.png" title="excel-default-colors.png" width="431" height="292" /></div>

<p>如果需要复制，请使用以下表格：</p>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td" colspan="8">默认颜色的RGB值</td></tr><tr><td class="style_td">000000</td><td class="style_td">993300</td><td class="style_td">333300</td><td class="style_td">003300</td><td class="style_td">003366</td><td class="style_td">000080</td><td class="style_td">333399</td><td class="style_td">333333</td></tr><tr><td class="style_td">800000</td><td class="style_td">FF6600</td><td class="style_td">808000</td><td class="style_td">008000</td><td class="style_td">008080</td><td class="style_td">0000FF</td><td class="style_td">666699</td><td class="style_td">808080</td></tr><tr><td class="style_td">FF0000</td><td class="style_td">FF9900</td><td class="style_td">99CC00</td><td class="style_td">339966</td><td class="style_td">33CCCC</td><td class="style_td">3366FF</td><td class="style_td">800080</td><td class="style_td">969696</td></tr><tr><td class="style_td">FF00FF</td><td class="style_td">FFCC00</td><td class="style_td">FFFF00</td><td class="style_td">00FF00</td><td class="style_td">00FFFF</td><td class="style_td">00CCFF</td><td class="style_td">993366</td><td class="style_td">C0C0C0</td></tr><tr><td class="style_td">FF99CC</td><td class="style_td">FFCC99</td><td class="style_td">FFFF99</td><td class="style_td">CCFFCC</td><td class="style_td">CCFFFF</td><td class="style_td">99CCFF</td><td class="style_td">CC99FF</td><td class="style_td">FFFFFF</td></tr><tr><td class="style_td">9999FF</td><td class="style_td">993366</td><td class="style_td">FFFFCC</td><td class="style_td">CCFFFF</td><td class="style_td">660066</td><td class="style_td">FF8080</td><td class="style_td">0066CC</td><td class="style_td">CCCCFF</td></tr><tr><td class="style_td">000080</td><td class="style_td">FF00FF</td><td class="style_td">FFFF00</td><td class="style_td">00FFFF</td><td class="style_td">800080</td><td class="style_td">800000</td><td class="style_td">008080</td><td class="style_td">0000FF</td></tr></tbody></table></div>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td" colspan="8">默认颜色的颜色索引值</td></tr><tr><td class="style_td">1</td><td class="style_td">53</td><td class="style_td">52</td><td class="style_td">51</td><td class="style_td">49</td><td class="style_td">11</td><td class="style_td">55</td><td class="style_td">56</td></tr><tr><td class="style_td">9</td><td class="style_td">46</td><td class="style_td">12</td><td class="style_td">10</td><td class="style_td">14</td><td class="style_td">5</td><td class="style_td">47</td><td class="style_td">16</td></tr><tr><td class="style_td">3</td><td class="style_td">45</td><td class="style_td">43</td><td class="style_td">50</td><td class="style_td">42</td><td class="style_td">41</td><td class="style_td">13</td><td class="style_td">48</td></tr><tr><td class="style_td">7</td><td class="style_td">44</td><td class="style_td">6</td><td class="style_td">4</td><td class="style_td">8</td><td class="style_td">33</td><td class="style_td">54</td><td class="style_td">15</td></tr><tr><td class="style_td">38</td><td class="style_td">40</td><td class="style_td">36</td><td class="style_td">35</td><td class="style_td">34</td><td class="style_td">37</td><td class="style_td">39</td><td class="style_td">2</td></tr><tr><td class="style_td">17</td><td class="style_td">18</td><td class="style_td">19</td><td class="style_td">20</td><td class="style_td">21</td><td class="style_td">22</td><td class="style_td">23</td><td class="style_td">24</td></tr><tr><td class="style_td">25</td><td class="style_td">26</td><td class="style_td">27</td><td class="style_td">28</td><td class="style_td">29</td><td class="style_td">30</td><td class="style_td">31</td><td class="style_td">32</td></tr></tbody></table></div>
<!-- end Pukiwiki generated code-->]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>Excel 2003中只能从调色版中选择颜色，但调色版中只有56种颜色，这就意味着一个工作簿中最多只能同时有56种颜色。
通过“工具-&gt;选项-&gt;颜色”可以设置调色版。</p>
<p>选中单元格后，从格式工具栏的背景色/字体颜色按钮中只能选取40种常用颜色，而在单元格属性对话框（用Ctrl-1打开）中，
则可以为单元格设置所有56种颜色。</p>
<!-- end Pukiwiki generated code--><span id="more-653"></span><!-- begin Pukiwiki generated code--><p>默认的56种颜色及它们在调色版中的排列位置如下图所示。这个图形中的颜色位置与“工具-&gt;选项-&gt;颜色”中的颜色排列完全相同。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2008/12/excel-default-colors.png" alt="excel-default-colors.png" title="excel-default-colors.png" width="431" height="292" /></div>

<p>如果需要复制，请使用以下表格：</p>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td" colspan="8">默认颜色的RGB值</td></tr><tr><td class="style_td">000000</td><td class="style_td">993300</td><td class="style_td">333300</td><td class="style_td">003300</td><td class="style_td">003366</td><td class="style_td">000080</td><td class="style_td">333399</td><td class="style_td">333333</td></tr><tr><td class="style_td">800000</td><td class="style_td">FF6600</td><td class="style_td">808000</td><td class="style_td">008000</td><td class="style_td">008080</td><td class="style_td">0000FF</td><td class="style_td">666699</td><td class="style_td">808080</td></tr><tr><td class="style_td">FF0000</td><td class="style_td">FF9900</td><td class="style_td">99CC00</td><td class="style_td">339966</td><td class="style_td">33CCCC</td><td class="style_td">3366FF</td><td class="style_td">800080</td><td class="style_td">969696</td></tr><tr><td class="style_td">FF00FF</td><td class="style_td">FFCC00</td><td class="style_td">FFFF00</td><td class="style_td">00FF00</td><td class="style_td">00FFFF</td><td class="style_td">00CCFF</td><td class="style_td">993366</td><td class="style_td">C0C0C0</td></tr><tr><td class="style_td">FF99CC</td><td class="style_td">FFCC99</td><td class="style_td">FFFF99</td><td class="style_td">CCFFCC</td><td class="style_td">CCFFFF</td><td class="style_td">99CCFF</td><td class="style_td">CC99FF</td><td class="style_td">FFFFFF</td></tr><tr><td class="style_td">9999FF</td><td class="style_td">993366</td><td class="style_td">FFFFCC</td><td class="style_td">CCFFFF</td><td class="style_td">660066</td><td class="style_td">FF8080</td><td class="style_td">0066CC</td><td class="style_td">CCCCFF</td></tr><tr><td class="style_td">000080</td><td class="style_td">FF00FF</td><td class="style_td">FFFF00</td><td class="style_td">00FFFF</td><td class="style_td">800080</td><td class="style_td">800000</td><td class="style_td">008080</td><td class="style_td">0000FF</td></tr></tbody></table></div>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td" colspan="8">默认颜色的颜色索引值</td></tr><tr><td class="style_td">1</td><td class="style_td">53</td><td class="style_td">52</td><td class="style_td">51</td><td class="style_td">49</td><td class="style_td">11</td><td class="style_td">55</td><td class="style_td">56</td></tr><tr><td class="style_td">9</td><td class="style_td">46</td><td class="style_td">12</td><td class="style_td">10</td><td class="style_td">14</td><td class="style_td">5</td><td class="style_td">47</td><td class="style_td">16</td></tr><tr><td class="style_td">3</td><td class="style_td">45</td><td class="style_td">43</td><td class="style_td">50</td><td class="style_td">42</td><td class="style_td">41</td><td class="style_td">13</td><td class="style_td">48</td></tr><tr><td class="style_td">7</td><td class="style_td">44</td><td class="style_td">6</td><td class="style_td">4</td><td class="style_td">8</td><td class="style_td">33</td><td class="style_td">54</td><td class="style_td">15</td></tr><tr><td class="style_td">38</td><td class="style_td">40</td><td class="style_td">36</td><td class="style_td">35</td><td class="style_td">34</td><td class="style_td">37</td><td class="style_td">39</td><td class="style_td">2</td></tr><tr><td class="style_td">17</td><td class="style_td">18</td><td class="style_td">19</td><td class="style_td">20</td><td class="style_td">21</td><td class="style_td">22</td><td class="style_td">23</td><td class="style_td">24</td></tr><tr><td class="style_td">25</td><td class="style_td">26</td><td class="style_td">27</td><td class="style_td">28</td><td class="style_td">29</td><td class="style_td">30</td><td class="style_td">31</td><td class="style_td">32</td></tr></tbody></table></div>
<!-- end Pukiwiki generated code-->]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2008/12/27/excel-default-colors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
