<?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>桌面应用 Archives | Xiaoming Tu - Blog</title>
	<atom:link href="https://www.xiaomingtu.com/categories/professional/desktop/feed" rel="self" type="application/rss+xml" />
	<link>http://www.xiaomingtu.com/categories/professional/desktop</link>
	<description>学习、工作、生活，点点滴滴。</description>
	<lastBuildDate>Wed, 23 Apr 2014 22:41:09 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>.NET中检测当前程序为32位/64位以及调整</title>
		<link>https://www.xiaomingtu.com/archives/15681?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=net%25e4%25b8%25ad%25e9%2580%259a%25e8%25bf%2587%25e4%25bb%25a3%25e7%25a0%2581%25e5%2588%25a4%25e6%2596%25ad%25e5%25bd%2593%25e5%2589%258d%25e7%25a8%258b%25e5%25ba%258f%25e8%25bf%2590%25e8%25a1%258c%25e5%259c%25a832%25e4%25bd%258d64%25e4%25bd%258d%25e7%258e%25af%25e5%25a2%2583</link>
					<comments>https://www.xiaomingtu.com/archives/15681#comments</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Wed, 23 Apr 2014 22:33:31 +0000</pubDate>
				<category><![CDATA[专业技术]]></category>
		<category><![CDATA[开发语言]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[有图有真相]]></category>
		<category><![CDATA[桌面应用]]></category>
		<guid isPermaLink="false">http://www.xiaomingtu.com/?p=15681</guid>

					<description><![CDATA[<p>熟悉.NET开发的人都知道，在使用Visual Studio创建项目的时候，默认使用的编译配置选项为Any CPU，这意味着程序在32位机器上将使用32位进程；而在64位机器上将会自动运行在64位进程中。这也是.NET的强大之处，以最简单的方式同时支持32位以及64位系统，并且充分利用64位系统的优势。 那么，我们如何在代码中判断当前的程序正运行在32位还是64位进程中呢？最简单的方法就是通过： [crayon-6ada8beb36818422006199/] 需要注意的是，上面提供的只是判断进程是否为32位或者64位，而不是当前系统是32位或64位。32位的程序是可以运行在64位的系统中的。 如果您已经编译好了程序为AnyCPU，希望在不重新编译的前提下修改程序的目标平台，可以通过corflags.exe工具来实现。 corflags用于查看程序的PE头信息，如下面的截图所示： 将一个目标平台为AnyCPU的程序改为目标平台是x86，则可以通过下面的方法： [crayon-6ada8beb3681c310607449/] 下面几个链接也许有所帮助： http://blogs.msdn.com/b/joshwil/archive/2005/04/08/406567.aspx http://msdn.microsoft.com/en-us/library/ms973190.aspx &#8212; 本文结束</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15681">.NET中检测当前程序为32位/64位以及调整</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>熟悉.NET开发的人都知道，在使用Visual Studio创建项目的时候，默认使用的编译配置选项为Any CPU，这意味着程序在32位机器上将使用32位进程；而在64位机器上将会自动运行在64位进程中。这也是.NET的强大之处，以最简单的方式同时支持32位以及64位系统，并且充分利用64位系统的优势。</p>
<p>那么，我们如何在代码中判断当前的程序正运行在32位还是64位进程中呢？最简单的方法就是通过：<span id="more-15681"></span></p><pre class="urvanov-syntax-highlighter-plain-tag">public static bool Is64bProcess() 
{ 
    return IntPtr.Size == 8;
}</pre><p>需要注意的是，上面提供的只是判断进程是否为32位或者64位，而不是当前系统是32位或64位。32位的程序是可以运行在64位的系统中的。</p>
<p>如果您已经编译好了程序为AnyCPU，希望在不重新编译的前提下修改程序的目标平台，可以通过corflags.exe工具来实现。</p>
<p>corflags用于查看程序的PE头信息，如下面的截图所示：</p>
<div id="attachment_15683" style="width: 310px" class="wp-caption aligncenter"><a href="https://www.xiaomingtu.com/wp-content/uploads/2014/04/corflags.jpg"><img decoding="async" aria-describedby="caption-attachment-15683" class="size-medium wp-image-15683" src="https://www.xiaomingtu.com/wp-content/uploads/2014/04/corflags-300x108.jpg" alt="corflags.exe示例" width="300" height="108" srcset="https://www.xiaomingtu.com/wp-content/uploads/2014/04/corflags-300x108.jpg 300w, https://www.xiaomingtu.com/wp-content/uploads/2014/04/corflags.jpg 661w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-15683" class="wp-caption-text">corflags.exe示例</p></div>
<p>将一个目标平台为AnyCPU的程序改为目标平台是x86，则可以通过下面的方法：</p><pre class="urvanov-syntax-highlighter-plain-tag">conflags.exe WindowsApplication3.exe /32BITREG+</pre><p>下面几个链接也许有所帮助：</p>
<ul>
<li><a title="How do exes/dlls generated with the /platform:x switch interact?" href="http://blogs.msdn.com/b/joshwil/archive/2005/04/08/406567.aspx" target="_blank">http://blogs.msdn.com/b/joshwil/archive/2005/04/08/406567.aspx</a></li>
<li><a title="Migrating 32-bit Managed Code to 64-bit" href="http://msdn.microsoft.com/en-us/library/ms973190.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms973190.aspx</a></li>
</ul>
<p>&#8212; 本文结束</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15681">.NET中检测当前程序为32位/64位以及调整</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15681/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>如何让Windows 8默认启动到传统桌面</title>
		<link>https://www.xiaomingtu.com/archives/15670?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%25a6%2582%25e4%25bd%2595%25e8%25ae%25a9windows-8%25e9%25bb%2598%25e8%25ae%25a4%25e5%2590%25af%25e5%258a%25a8%25e5%2588%25b0%25e4%25bc%25a0%25e7%25bb%259f%25e6%25a1%258c%25e9%259d%25a2</link>
					<comments>https://www.xiaomingtu.com/archives/15670#respond</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Wed, 23 Apr 2014 20:29:15 +0000</pubDate>
				<category><![CDATA[专业技术]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[有图有真相]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[windows 8]]></category>
		<guid isPermaLink="false">http://www.xiaomingtu.com/?p=15670</guid>

					<description><![CDATA[<p>在Windows 8以及Windows 8.1中，系统启动之后将会默认进入的新的开始界面。这一设定一直被人嘲讽，大家都希望能够回到以前的方式，开机能够默认进入到桌面环境以及恢复以前的开始菜单功能。 之前有爆料说四月份的更新将会恢复新的开始菜单以及提供选项让电脑在开机之后进入传统桌面环境，泄露的全新开始菜单如下图的样子。 可惜的是，在上周释出的更新中，并没有包含上面这个全新的开始菜单，而仅仅提供了“开机默认进入桌面”的选项，可以通过下面的方式开启： 任务栏上右击 &#8211; 属性 &#8211; 导航 &#8211; 勾选如图所示的选项。 &#160; 据报道，新的开始菜单将会在今年八月份或者秋季放出，慢慢等吧。我个人不在意，因为自从Windows 7开始，很少使用开始菜单，习惯的操作方式是在按徽标键之后直接输入要搜索的内容，不需要鼠标操作，非常的快捷。至于按下徽标键之后出来的是传统的开始菜单还是新的开始界面，只要能让我直接输入搜索内容就可以。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15670">如何让Windows 8默认启动到传统桌面</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>在Windows 8以及Windows 8.1中，系统启动之后将会默认进入的新的开始界面。这一设定一直被人嘲讽，大家都希望能够回到以前的方式，开机能够默认进入到桌面环境以及恢复以前的开始菜单功能。</p>
<p>之前有爆料说四月份的更新将会恢复新的开始菜单以及提供选项让电脑在开机之后进入传统桌面环境，泄露的全新开始菜单如下图的样子。</p>
<div id="attachment_15677" style="width: 310px" class="wp-caption aligncenter"><a href="https://www.xiaomingtu.com/wp-content/uploads/2014/04/windows8startmenu.jpg"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-15677" class="size-medium wp-image-15677" src="https://www.xiaomingtu.com/wp-content/uploads/2014/04/windows8startmenu-300x199.jpg" alt="泄漏的Windows 8开始菜单" width="300" height="199" srcset="https://www.xiaomingtu.com/wp-content/uploads/2014/04/windows8startmenu-300x199.jpg 300w, https://www.xiaomingtu.com/wp-content/uploads/2014/04/windows8startmenu.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-15677" class="wp-caption-text">泄漏的Windows 8开始菜单</p></div>
<p>可惜的是，在上周释出的更新中，并没有包含上面这个全新的开始菜单，而仅仅提供了“开机默认进入桌面”的选项，可以通过下面的方式开启：<span id="more-15670"></span></p>
<p><strong>任务栏上右击 &#8211; 属性 &#8211; 导航 &#8211; 勾选如图所示的选项。</strong></p>
<p>&nbsp;</p>
<div id="attachment_15676" style="width: 262px" class="wp-caption aligncenter"><a href="https://www.xiaomingtu.com/wp-content/uploads/2014/04/boot-to-desktop.jpg"><img decoding="async" aria-describedby="caption-attachment-15676" class="size-medium wp-image-15676" src="https://www.xiaomingtu.com/wp-content/uploads/2014/04/boot-to-desktop-252x300.jpg" alt="boot-to-desktop" width="252" height="300" srcset="https://www.xiaomingtu.com/wp-content/uploads/2014/04/boot-to-desktop-252x300.jpg 252w, https://www.xiaomingtu.com/wp-content/uploads/2014/04/boot-to-desktop.jpg 414w" sizes="(max-width: 252px) 100vw, 252px" /></a><p id="caption-attachment-15676" class="wp-caption-text">boot-to-desktop</p></div>
<p>据<a href="http://www.theverge.com/2014/4/23/5643328/windows-8-start-menu-return-in-second-update" target="_blank">报道</a>，新的开始菜单将会在今年八月份或者秋季放出，慢慢等吧。我个人不在意，因为自从Windows 7开始，很少使用开始菜单，习惯的操作方式是在按徽标键之后直接输入要搜索的内容，不需要鼠标操作，非常的快捷。至于按下徽标键之后出来的是传统的开始菜单还是新的开始界面，只要能让我直接输入搜索内容就可以。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15670">如何让Windows 8默认启动到传统桌面</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15670/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>用脚本批量删除文件</title>
		<link>https://www.xiaomingtu.com/archives/15617?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e7%2594%25a8%25e8%2584%259a%25e6%259c%25ac%25e6%2589%25b9%25e9%2587%258f%25e5%2588%25a0%25e9%2599%25a4%25e6%2596%2587%25e4%25bb%25b6</link>
					<comments>https://www.xiaomingtu.com/archives/15617#comments</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Mon, 25 Mar 2013 12:41:23 +0000</pubDate>
				<category><![CDATA[专业技术]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[vs2010]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">http://www.xiaomingtu.com/?p=15617</guid>

					<description><![CDATA[<p>使用脚本删除文件夹下的某个类型文件。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15617">用脚本批量删除文件</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>最近使用VS2010打开项目的时候会卡死，发现与恢复上一次打开的文档有关，只要把*.suo文件删除就能解决问题，所以有了下面的脚本：</p><pre class="urvanov-syntax-highlighter-plain-tag">FOR /F %%f IN ('DIR *.suo /B /AH') DO DEL /AH %%f</pre><p>关于这个脚本的说明：</p>
<ul>
<li>因为suo文件是隐藏的，所以在括号中如果直接使用 *.suo 的话讲找不到文件。</li>
<li>使用DIR命令的/B格式可以文件罗列出来，加上/AH开关之后只会查找隐藏文件。</li>
<li>FOR命令的/F开关可以将IN后面的集合按行分段，就能将DIR命令得到的文件列表逐行分开成多个文件了。</li>
<li>最后使用DEL命令将文件删除。</li>
</ul>
<p>我的机器只有在开机之后第一次用VS打开工程时才会卡死，后面即使有 *.suo 文件也不会。不知道是我的插件缘故还是VS的Bug，有经验的朋友欢迎留言指教。</p>
<p><strong>参考</strong></p>
<ul>
<li><a title="For命令语法参考" href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds.mspx?mfr=true" target="_blank">For命令语法</a></li>
</ul>
<p><strong>更行 2013年3月25日</strong></p>
<p>上面的脚本对于文件名中有空格的情况会有问题，建议使用下面的方式：</p><pre class="urvanov-syntax-highlighter-plain-tag">FOR /F "delims=?" %%f IN ('DIR /B /AH *.suo') DO (DEL "%%f")</pre><p>如果需要同时删除子文件夹中的文件，可以在DIR命令后面加上“/S”，如果想删除普通的文件而不是隐藏文件，只要把“/AH”删除即可。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15617">用脚本批量删除文件</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15617/feed</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Windows 8中的输入法切换</title>
		<link>https://www.xiaomingtu.com/archives/15588?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-8%25e4%25b8%25ad%25e7%259a%2584%25e8%25be%2593%25e5%2585%25a5%25e6%25b3%2595%25e5%2588%2587%25e6%258d%25a2</link>
					<comments>https://www.xiaomingtu.com/archives/15588#comments</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Sun, 09 Sep 2012 20:30:44 +0000</pubDate>
				<category><![CDATA[专业技术]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[有图有真相]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[windows8]]></category>
		<category><![CDATA[语言]]></category>
		<category><![CDATA[输入法]]></category>
		<guid isPermaLink="false">http://www.xiaomingtu.com/?p=15588</guid>

					<description><![CDATA[<p>在Windows 8中，语言已经变成了比较自由、常用的选项。不同的输入法属于不同的语言下，比如我使用的系统是英语版的，在英语下无法添加中文的输入法，我必须添加一个简体中文的语言，然后在其下添加新的中文输入法，当需要切换输入法的时候，实际上是在切换语言。 在大部分时候，大家都不会碰到问题，但是如果你的键盘布局比较特殊，就会有影响，比如我的笔记本是英式键盘的，布局和国内电脑的键盘布局不一样。在以前的系统中，我都是使用简体中文一种输入语言，然后在其中除了使用一般的中文输入法之外，我还会添加英式键盘，这样我就能非常方便的切换（CTRL+SPACE），但是，在Win8中，你无法给简体中文添加英式键盘，这就导致了必须在英语语言下添加英式键盘。输入法切换也不方便，因为你得先切换语言，才能在某个语言下切换输入法。好在语言之间的切换有快捷键（WIN+SPACE）。这样我在两种语言下都只有一种输入方式的时候还是比较方便的，正如第一张图中看到的一样，我的英语语言下只有英式键盘一种输入方式，而简体中文中只有谷歌输入法，所以我现在要切换输入法的时候只要切换语言就能实现了。 这里还有一个问题，在Win8的默认设置下，当前语言是全局性的，也就是你切换到某个语言之后，所有程序中的输入方式都变成那个语言，这样带来的问题就是你得频繁的切换输入法。比如一边在网页里用英语写邮件，一边在QQ上用中文聊天，每次切换窗口都要换一下语言，虽然只是一次快捷键的时间，但还是很麻烦。解决办法就是在第二张图左边点击“Advance settings”，然后勾选“Let me set a different input method for each app window”，这样不同程序之间就不会共享语言选项了。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15588">Windows 8中的输入法切换</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>在Windows 8中，语言已经变成了比较自由、常用的选项。不同的输入法属于不同的语言下，比如我使用的系统是英语版的，在英语下无法添加中文的输入法，我必须添加一个简体中文的语言，然后在其下添加新的中文输入法，当需要切换输入法的时候，实际上是在切换语言。</p>
<div id="attachment_15589" style="width: 310px" class="wp-caption aligncenter"><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Switch-Language.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-15589" class="size-medium wp-image-15589" title="切换语言" src="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Switch-Language-300x250.png" alt="切换语言" width="300" height="250" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Switch-Language-300x250.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/09/Switch-Language.png 312w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-15589" class="wp-caption-text">任务栏中切换语言</p></div>
<div id="attachment_15590" style="width: 310px" class="wp-caption aligncenter"><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Language-Preferences.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-15590" class="size-medium wp-image-15590" title="Win8中的语言选项" src="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Language-Preferences-300x177.png" alt="Win8中的语言选项" width="300" height="177" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Language-Preferences-300x177.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/09/Language-Preferences.png 933w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-15590" class="wp-caption-text">Win8中的语言选项</p></div>
<p><span id="more-15588"></span>在大部分时候，大家都不会碰到问题，但是如果你的键盘布局比较特殊，就会有影响，比如我的笔记本是英式键盘的，布局和国内电脑的键盘布局不一样。在以前的系统中，我都是使用简体中文一种输入语言，然后在其中除了使用一般的中文输入法之外，我还会添加英式键盘，这样我就能非常方便的切换（CTRL+SPACE），但是，在Win8中，你无法给简体中文添加英式键盘，这就导致了必须在英语语言下添加英式键盘。输入法切换也不方便，因为你得先切换语言，才能在某个语言下切换输入法。好在语言之间的切换有快捷键（WIN+SPACE）。这样我在两种语言下都只有一种输入方式的时候还是比较方便的，正如第一张图中看到的一样，我的英语语言下只有英式键盘一种输入方式，而简体中文中只有谷歌输入法，所以我现在要切换输入法的时候只要切换语言就能实现了。</p>
<p>这里还有一个问题，在Win8的默认设置下，当前语言是全局性的，也就是你切换到某个语言之后，所有程序中的输入方式都变成那个语言，这样带来的问题就是你得频繁的切换输入法。比如一边在网页里用英语写邮件，一边在QQ上用中文聊天，每次切换窗口都要换一下语言，虽然只是一次快捷键的时间，但还是很麻烦。解决办法就是在第二张图左边点击“Advance settings”，然后勾选“Let me set a different input method for each app window”，这样不同程序之间就不会共享语言选项了。</p>
<div id="attachment_15592" style="width: 310px" class="wp-caption aligncenter"><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Advance-settings-for-language.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-15592" class="size-medium wp-image-15592" title="语言中的高级设置" src="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Advance-settings-for-language-300x177.png" alt="语言中的高级设置" width="300" height="177" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Advance-settings-for-language-300x177.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/09/Advance-settings-for-language.png 933w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-15592" class="wp-caption-text">勾选红色方框中的选项之后，可以为不同程序设置不同输入法</p></div>
<p>The post <a href="https://www.xiaomingtu.com/archives/15588">Windows 8中的输入法切换</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15588/feed</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>IE10哪儿去了？</title>
		<link>https://www.xiaomingtu.com/archives/15580?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ie10%25e5%2593%25aa%25e5%2584%25bf%25e5%258e%25bb%25e4%25ba%2586%25ef%25bc%259f</link>
					<comments>https://www.xiaomingtu.com/archives/15580#respond</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Sun, 09 Sep 2012 20:02:22 +0000</pubDate>
				<category><![CDATA[专业技术]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[有图有真相]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[windows8]]></category>
		<guid isPermaLink="false">http://www.xiaomingtu.com/?p=15580</guid>

					<description><![CDATA[<p>安装Win8之后，相信大家对IE10都印象非常深刻，完美的体现了Metro风格（现在该改口叫Windows 8风格了）。 但是在设置其他浏览器比如Chrome为默认浏览器之后，你就再也看不到Metro版的IE10了。这个可能和Win8里面App的概念有关。这时候，原先开始界面里的Chrome图标会有一些变化： 点击黑底这个图标将打开Metro版本的Chrome，虽然有些假。。。不过它确实是，而且这个Chrome和你在桌面上打开的Chrome并不是同一个。用过Chrome多用户功能的都知道，当切换到另外一个用户之后，Chrome就像是新的，所有内容（收藏栏、插件、设置等）都是独立的。这个Metro版的Chrome就类似这样，它和桌面上打开的Chrome并不是同一个。也就是说，你想让其他浏览器作为默认浏览器，而又想偶尔体验一下Metro风格的IE10，那是不可能的！除非将IE10改回默认浏览器。 如果你很幸运现在在用支持触摸屏的Win8的话，可能IE10会更加的适合你，因为结合其他的App一起使用，会非常的得心应手。如果你是像我一样的屌丝，还在用鼠标键盘的，那你只能暂时放弃Metro版的IE10了，因为你在使用桌面程序的时候，也会切换到Metro的IE中去。要知道在Win8里，传统桌面环境下的软件和Metro风格的App像是运行在两个环境中的，两者之间切换非常的不方便。我已经将默认安装的一些App都卸载了，因为大部分时候我还是习惯传统桌面风格，Metro程序更适合触摸屏使用，新版开始菜单对我来说和以前的开始菜单没区别，只是现在图标更大，点起来方便一些，而且搜索和以前一样，按“徽标”然后直接开始输入搜索内容就好了。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15580">IE10哪儿去了？</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>安装Win8之后，相信大家对IE10都印象非常深刻，完美的体现了Metro风格（现在该改口叫Windows 8风格了）。</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/09/IE10-Metro.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15581" title="Win8风格的IE10" src="https://www.xiaomingtu.com/wp-content/uploads/2012/09/IE10-Metro-300x168.png" alt="Win8风格的IE10" width="300" height="168" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/09/IE10-Metro-300x168.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/09/IE10-Metro.png 1920w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>但是在设置其他浏览器比如Chrome为默认浏览器之后，你就再也看不到Metro版的IE10了。这个可能和Win8里面App的概念有关。这时候，原先开始界面里的Chrome图标会有一些变化：<span id="more-15580"></span></p>
<div id="attachment_15582" style="width: 310px" class="wp-caption aligncenter"><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Browser-Icon-Compare.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-15582" class="size-medium wp-image-15582" title="默认浏览器图标比较" src="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Browser-Icon-Compare-300x220.png" alt="默认浏览器图标比较" width="300" height="220" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Browser-Icon-Compare-300x220.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/09/Browser-Icon-Compare.png 576w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-15582" class="wp-caption-text">默认浏览器不同的时候，开始界面图标不一样</p></div>
<p>点击黑底这个图标将打开Metro版本的Chrome，虽然有些假。。。不过它确实是，而且这个Chrome和你在桌面上打开的Chrome并不是同一个。用过Chrome多用户功能的都知道，当切换到另外一个用户之后，Chrome就像是新的，所有内容（收藏栏、插件、设置等）都是独立的。这个Metro版的Chrome就类似这样，它和桌面上打开的Chrome并不是同一个。也就是说，你想让其他浏览器作为默认浏览器，而又想偶尔体验一下Metro风格的IE10，那是不可能的！除非将IE10改回默认浏览器。</p>
<p>如果你很幸运现在在用支持触摸屏的Win8的话，可能IE10会更加的适合你，因为结合其他的App一起使用，会非常的得心应手。如果你是像我一样的屌丝，还在用鼠标键盘的，那你只能暂时放弃Metro版的IE10了，因为你在使用桌面程序的时候，也会切换到Metro的IE中去。要知道在Win8里，传统桌面环境下的软件和Metro风格的App像是运行在两个环境中的，两者之间切换非常的不方便。我已经将默认安装的一些App都卸载了，因为大部分时候我还是习惯传统桌面风格，Metro程序更适合触摸屏使用，新版开始菜单对我来说和以前的开始菜单没区别，只是现在图标更大，点起来方便一些，而且搜索和以前一样，按“徽标”然后直接开始输入搜索内容就好了。</p>
<div id="attachment_15583" style="width: 310px" class="wp-caption aligncenter"><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Start.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-15583" class="size-medium wp-image-15583" title="开始界面" src="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Start-300x168.png" alt="开始界面" width="300" height="168" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/09/Start-300x168.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/09/Start.png 1920w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-15583" class="wp-caption-text">我现在的开始界面，清理的很干净，常用、开发、游戏都分开啦</p></div>
<p>The post <a href="https://www.xiaomingtu.com/archives/15580">IE10哪儿去了？</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15580/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Windows系统下给文件夹增加自定义右键菜单</title>
		<link>https://www.xiaomingtu.com/archives/15561?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows%25e7%25b3%25bb%25e7%25bb%259f%25e4%25b8%258b%25e7%25bb%2599%25e6%2596%2587%25e4%25bb%25b6%25e5%25a4%25b9%25e5%25a2%259e%25e5%258a%25a0%25e8%2587%25aa%25e5%25ae%259a%25e4%25b9%2589%25e5%258f%25b3%25e9%2594%25ae%25e8%258f%259c%25e5%258d%2595</link>
					<comments>https://www.xiaomingtu.com/archives/15561#comments</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Fri, 31 Aug 2012 11:45:11 +0000</pubDate>
				<category><![CDATA[专业技术]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[windows7]]></category>
		<category><![CDATA[windows8]]></category>
		<category><![CDATA[菜单]]></category>
		<guid isPermaLink="false">http://www.xiaomingtu.com/?p=15561</guid>

					<description><![CDATA[<p>对于开发人员来说，经常需要使用命令行并且切换到某个指定的目录中去。可以通过给文件夹增加一个右键菜单（比如Open in CMD）来完成。 只要在注册表中增加下面的键值就能完成： 在HKLM\SOFTWARE\Class\Folder\shell下新建一个键，比如“CMD Prompt”（见文章后面12年12月1日的更新），将其中的default值改成任意你想显示的右键菜单名称。 在上面创建的键下面在创建一个键，名称必须为“command”，将其中的default值改成“cmd.exe /k pushd %1”。 修改立即生效，现在点右键就能看到新的菜单项了。 &#160; 更新（2012-12-01）：如果将shell下面的键名字改成“runas”，那打开的CMD窗口将是管理员身份的。懒得手动操作的朋友可以直接导入这个注册表文件（ADMIN_CMD.ZIP）。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15561">Windows系统下给文件夹增加自定义右键菜单</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>对于开发人员来说，经常需要使用命令行并且切换到某个指定的目录中去。可以通过给文件夹增加一个右键菜单（比如Open in CMD）来完成。</p>
<p>只要在注册表中增加下面的键值就能完成：</p>
<p>在HKLM\SOFTWARE\Class\Folder\shell下新建一个键，比如“CMD Prompt”（见文章后面12年12月1日的更新），将其中的default值改成任意你想显示的右键菜单名称。</p>
<p>在上面创建的键下面在创建一个键，名称必须为“command”，将其中的default值改成“cmd.exe /k pushd %1”。</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/08/ContextMenu.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15562" title="注册表中给文件夹增加右键菜单" src="https://www.xiaomingtu.com/wp-content/uploads/2012/08/ContextMenu-300x147.png" alt="注册表中给文件夹增加右键菜单" width="300" height="147" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/08/ContextMenu-300x147.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/08/ContextMenu.png 644w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>修改立即生效，现在点右键就能看到新的菜单项了。</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/08/ContextMenu2.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15563" title="自定义的右键菜单" src="https://www.xiaomingtu.com/wp-content/uploads/2012/08/ContextMenu2-300x134.png" alt="自定义的右键菜单" width="300" height="134" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/08/ContextMenu2-300x134.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/08/ContextMenu2.png 306w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>&nbsp;</p>
<p><strong>更新（2012-12-01）</strong>：如果将shell下面的键名字改成“runas”，那打开的CMD窗口将是管理员身份的。懒得手动操作的朋友可以直接导入这个注册表文件（<a href="https://www.xiaomingtu.com/wp-content/uploads/2012/12/ADMIN_CMD.zip">ADMIN_CMD.ZIP</a>）。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15561">Windows系统下给文件夹增加自定义右键菜单</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15561/feed</wfw:commentRss>
			<slash:comments>107</slash:comments>
		
		
			</item>
		<item>
		<title>修改Visual Studio 2010和Windows注册用户信息</title>
		<link>https://www.xiaomingtu.com/archives/15550?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e4%25bf%25ae%25e6%2594%25b9visual-studio-2010%25e5%2592%258cwindows%25e6%25b3%25a8%25e5%2586%258c%25e7%2594%25a8%25e6%2588%25b7%25e4%25bf%25a1%25e6%2581%25af</link>
					<comments>https://www.xiaomingtu.com/archives/15550#respond</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Fri, 31 Aug 2012 11:17:54 +0000</pubDate>
				<category><![CDATA[专业技术]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[VisualStudio2010]]></category>
		<category><![CDATA[VS]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[windows7]]></category>
		<category><![CDATA[windows8]]></category>
		<category><![CDATA[用户名]]></category>
		<category><![CDATA[组织]]></category>
		<guid isPermaLink="false">http://www.xiaomingtu.com/?p=15550</guid>

					<description><![CDATA[<p>在VS2010的闪屏以及关于对话框中有用户及组织的信息： 可以通过修改注册表来修改上面的信息： 32位系统： 用户名：HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\Registration中的UserName 组织信息：HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion中的RegisteredOrganization 修改UserName之后并不会马上生效，需要使用执行“devenv.exe /setup”让IDE重置之后才会生效。 &#160; Windows的用户名信息：HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion中的RegisteredOwner 组织信息与上面VS的组织信息是一样的。 通过修改Windows的这两个信息，以后安装软件就会默认使用这个新的名称。 &#160; 64位系统： 用户名：HKLM\SOFTWARE\WoW6432Node\Microsoft\VisualStudio\10.0\Registration中的UserName 组织信息：HKLM\SOFTWARE\WoW6432Node\Microsoft\Windows NT\CurrentVersion中的RegisteredOrganization Windows的用户名信息：HKLM\SOFTWARE\WoW6432Node\Microsoft\Windows NT\CurrentVersion中的RegisteredOwner</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15550">修改Visual Studio 2010和Windows注册用户信息</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>在VS2010的闪屏以及关于对话框中有用户及组织的信息：</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/08/Splash.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15552" title="VS2010闪屏画面" src="https://www.xiaomingtu.com/wp-content/uploads/2012/08/Splash-300x212.png" alt="VS2010闪屏画面" width="300" height="212" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/08/Splash-300x212.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/08/Splash.png 540w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/08/About.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15551" title="关于对话框" src="https://www.xiaomingtu.com/wp-content/uploads/2012/08/About-300x224.png" alt="VS2010关于对话框" width="300" height="224" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/08/About-300x224.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/08/About.png 790w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>可以通过修改注册表来修改上面的信息：<span id="more-15550"></span></p>
<p><strong>32位系统</strong>：</p>
<p>用户名：<strong>HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\Registration</strong>中的<strong>UserName</strong></p>
<p>组织信息：<strong>HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion</strong>中的<strong>RegisteredOrganization</strong></p>
<p>修改UserName之后并不会马上生效，需要使用执行“<strong><span style="color: #ff0000;">devenv.exe /setup</span></strong>”让IDE重置之后才会生效。</p>
<p>&nbsp;</p>
<p>Windows的用户名信息：<strong>HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion</strong>中的<strong>RegisteredOwner</strong></p>
<p>组织信息与上面VS的组织信息是一样的。</p>
<p>通过修改Windows的这两个信息，以后安装软件就会默认使用这个新的名称。</p>
<p>&nbsp;</p>
<p><strong>64位系统</strong>：</p>
<p>用户名：<strong>HKLM\SOFTWARE\WoW6432Node\Microsoft\VisualStudio\10.0\Registration</strong>中的<strong>UserName</strong></p>
<p>组织信息：<strong>HKLM\SOFTWARE\<strong>WoW6432Node\</strong>Microsoft\Windows NT\CurrentVersion</strong>中的<strong>RegisteredOrganization</strong></p>
<p>Windows的用户名信息：<strong>HKLM\SOFTWARE\<strong>WoW6432Node\</strong>Microsoft\Windows NT\CurrentVersion</strong>中的<strong>RegisteredOwner</strong></p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15550">修改Visual Studio 2010和Windows注册用户信息</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15550/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>体验Windows 8</title>
		<link>https://www.xiaomingtu.com/archives/15511?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e4%25bd%2593%25e9%25aa%258cwindows-8</link>
					<comments>https://www.xiaomingtu.com/archives/15511#comments</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Mon, 04 Jun 2012 22:51:36 +0000</pubDate>
				<category><![CDATA[专业技术]]></category>
		<category><![CDATA[有图有真相]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Hotmail]]></category>
		<category><![CDATA[live]]></category>
		<category><![CDATA[Metro]]></category>
		<category><![CDATA[Ribbon]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[windows8]]></category>
		<guid isPermaLink="false">http://www.xiaomingtu.com/?p=15511</guid>

					<description><![CDATA[<p>今天在Google Reader中看新闻，发现Comptex 2012计算机展中出了好多新的Windows 8的超级本（Ultrabook）和平板，所以就去下载了Windows 8 Release Preview版本准备试试，选择的是64位的版本，3.3GB，下载了20分钟左右就完成了，家里宽带还是比较给力的。安装在VirtualBox中进行测试体验。 安装 安装过程与Windows 7相似，很简单而且很快，整个过程不超过20分钟，安装完毕之后与以前的版本不太一样，不会询问太多的设置，它会与目前一般的智能机一样，让你用一个Windows账户（Live账户）登录，这样就可以登录到微软在线商店中购买软件了。同时，它也能将Windows的各种设置参数、图片以及SkyDrive等进行同步，像我这种习惯了云服务的人来说，感觉很不错。 开始（Start）界面 进入系统之后，首先映入眼前的是Metro风格的新版开始界面，这种扁平的风格还是挺让人喜欢的，不过界面这种东西见仁见智。在截上面图的时候，我已经用过一会儿了，所以可以看到有些格子已经有一些内容了。如果安装的程序比较多的话，会有多屏，与现在的很多手机一样。因为我的电脑不是触屏的，所以在下面其实有一个横向的滚动条，用于切换屏幕用。预安装的这些程序打开之后都会以全屏的形式运行，它能让你专注于正在使用的程序。比如打开地图，整个界面就只会剩下地图，任何其他的菜单、任务栏都会消失。那要是想切换程序或者看看时间的话该怎么办呢？在Win8系统的每个界面下，鼠标靠近屏幕的几个角落时都有特殊的功能。左上角是类似Alt+Tab键一样的功能，一组最近使用的程序；左下角是进入上面的开始界面；右上角是打开系统级的菜单，包括搜索、分享、开始菜单、设备、设置五个菜单项；右下角有一个“-”按钮，这个按钮点击之后就会缩小视图，从而能够显示更多的图标。在开始界面中，输入任意的字符都能直接进入搜索模式，这个操作类似在Win7下点击开始菜单之后，直接输入要搜索的内容。 联系人（People）程序 之所以先介绍它是因为可以在其中添加一些第三方的账户，以便同步一些数据过来，比如Facebook、Google、LinkedIn、Twitter等，这样你在其他程序中的使用体验会更加的好。第一次打开它的时候会提示你连接到第三方的账户，也可以选择不添加，以后要是还想添加的话，只要在任意空白的地方点击右键就会在下方弹出菜单。我的所有联系人信息都在Google账户里，所以同步之后所有的联系人信息都同步过来了，非常的方便。该程序主要包含三个部分，除了People联系人之外，What&#8217;s New中是一些更新，比如Facebook、LinkedIn中的联系人的更新。Me界面相当于你的个人资料页，显示你的个人信息及一些第三方应用中的消息。个人感觉Win8与社交软件的集成度非常高，能够让你在系统中直接访问或者与社交网站进行交互。 邮件（Mail）、日历（Calendar）程序 通过People程序与其他第三方的账户绑定成功之后，像Mail（邮件）、Calendar（日历）等程序就能方便的被使用了，我平时都用Gmail和Google日历，所以添加Google账户之后，我已经能够在Mail中收发Gmail邮件；在Calendar中能够看到Google日历的日程了。不过貌似它只同步了默认的日历，我在Google日历中创建有好几个不同类型的日历，它好像只会同步默认的日历。 浏览器（IE10）程序 IE10在Windows 8中貌似有两个版本，如果是从开始界面开启的话，它会是Metro风格，如果是从桌面或者任务栏中打开IE的话，就和以前的IE9一样，这里就不多介绍了。因为Metro风格的程序还不太会使用，比如想新建一个面板或者关闭面板都不知道该怎么操作，找不到入口，最后只能通过快捷键进行。（下面的截图中，是因为当前正在下载程序，所以会显示下载进度框以及下面的地址、操作栏，如果是普通浏览状态的话，下面黑色的部分都将消失，只有网页内容。） 资源管理器（Explorer）程序 体验完Metro的几大软件之后就回到“桌面”了，新版“桌面”中已经取消了“开始”菜单按钮，取而代之的是上面说的左下角快捷方式以及Start界面。桌面环境最主要的程序 &#8211; 资源管理器也有了较大的变化，使用了Office 2007/2010的Ribbon风格。 总结 Windows 8的开始界面非常适合于触屏操作，因为各个功能入口都是非常大而且易于操作的按钮，加上一些屏幕边缘、角落的快捷方式，相信在触屏操作的时候会有非常好的体验。在运行Metro程序的时候，全屏幕运行软件能够让用户专注于软件本身，没有其他东西的视觉打扰，比如以前的任务栏、标题栏、菜单栏等等。Windows 8与其他社交软件以及第三方应用的集成能够更快的让用户适应系统，并且专注于内容本身，而不是操作系统的操作框架。系统本身自带的程序之间以及与第三方应用之间也能够互通起来，而不像以前的版本，虽然随机自带很多程序，但都是各自独立。 在Windows 8中依然保留有传统的桌面环境，相信很大的原因是为了兼容性考虑，不过就目前来看，桌面环境与Metro之间衔接的还不够，两者给人的感觉是完全不一样的东西。举个可能不太恰当的例子，现代的书本与古代的竹简书，虽然都是记载文字的方法，但是两者的形式很不一样的，现代的书本完全颠覆了以前那种阅读的方法。而如果把现代的书本和电子书相比的话，大家就能很容易的接受它，因为它们之间很相似。不过话说回来，传统的桌面环境本身就没有考虑过触屏的环境，它是需要一定的时间进行演变的，就像以前的菜单形式变成Ribbon风格的菜单，再到现在Windows 8中的Metro界面。 [poll id=&#8221;3&#8243;] </p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15511">体验Windows 8</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>今天在Google Reader中看新闻，发现Comptex 2012计算机展中出了好多新的Windows 8的超级本（Ultrabook）和平板，所以就去下载了<a title="Windows 8 Release Preview 下载" href="http://windows.microsoft.com/en-US/windows-8/download" target="_blank">Windows 8 Release Preview版本</a>准备试试，选择的是64位的版本，3.3GB，下载了20分钟左右就完成了，家里宽带还是比较给力的。安装在VirtualBox中进行测试体验。</p>
<h3>安装</h3>
<p>安装过程与Windows 7相似，很简单而且很快，整个过程不超过20分钟，安装完毕之后与以前的版本不太一样，不会询问太多的设置，它会与目前一般的智能机一样，让你用一个Windows账户（Live账户）登录，这样就可以登录到微软在线商店中购买软件了。同时，它也能将Windows的各种设置参数、图片以及SkyDrive等进行同步，像我这种习惯了云服务的人来说，感觉很不错。</p>
<h3>开始（Start）界面</h3>
<p>进入系统之后，首先映入眼前的是Metro风格的新版开始界面，<span id="more-15511"></span>这种扁平的风格还是挺让人喜欢的，不过界面这种东西见仁见智。<a href="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Start.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15512" title="Windows 8开始界面" src="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Start-300x240.png" alt="Windows 8开始界面" width="300" height="240" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Start-300x240.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/06/Start.png 1280w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a>在截上面图的时候，我已经用过一会儿了，所以可以看到有些格子已经有一些内容了。如果安装的程序比较多的话，会有多屏，与现在的很多手机一样。因为我的电脑不是触屏的，所以在下面其实有一个横向的滚动条，用于切换屏幕用。预安装的这些程序打开之后都会以全屏的形式运行，它能让你<strong>专注于正在使用的程序</strong>。比如打开地图，整个界面就只会剩下地图，任何其他的菜单、任务栏都会消失。那要是想切换程序或者看看时间的话该怎么办呢？在Win8系统的每个界面下，鼠标靠近屏幕的几个角落时都有特殊的功能。左上角是类似Alt+Tab键一样的功能，一组最近使用的程序；左下角是进入上面的开始界面；右上角是打开系统级的菜单，包括搜索、分享、开始菜单、设备、设置五个菜单项；右下角有一个“-”按钮，这个按钮点击之后就会缩小视图，从而能够显示更多的图标。在开始界面中，输入任意的字符都能直接进入搜索模式，这个操作类似在Win7下点击开始菜单之后，直接输入要搜索的内容。<a href="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Corners.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15516" title="Windows 8 角落快捷方式" src="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Corners-300x279.png" alt="Windows 8 角落快捷方式" width="300" height="279" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Corners-300x279.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/06/Corners.png 868w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h3>联系人（People）程序</h3>
<p>之所以先介绍它是因为可以在其中添加一些第三方的账户，以便同步一些数据过来，比如Facebook、Google、LinkedIn、Twitter等，这样你在其他程序中的使用体验会更加的好。<a href="https://www.xiaomingtu.com/wp-content/uploads/2012/06/People.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15514" title="Windows 8 联系人界面" src="https://www.xiaomingtu.com/wp-content/uploads/2012/06/People-300x240.png" alt="Windows 8 联系人界面" width="300" height="240" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/06/People-300x240.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/06/People.png 1280w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a>第一次打开它的时候会提示你连接到第三方的账户，也可以选择不添加，以后要是还想添加的话，只要在任意空白的地方点击右键就会在下方弹出菜单。我的所有联系人信息都在Google账户里，所以同步之后所有的联系人信息都同步过来了，非常的方便。该程序主要包含三个部分，除了People联系人之外，What&#8217;s New中是一些更新，比如Facebook、LinkedIn中的联系人的更新。Me界面相当于你的个人资料页，显示你的个人信息及一些第三方应用中的消息。个人感觉Win8与社交软件的集成度非常高，能够让你<strong>在系统中直接访问或者与社交网站进行交互</strong>。</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Me.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15517" title="Windows 8 Me界面" src="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Me-300x238.png" alt="Windows 8 Me界面" width="300" height="238" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Me-300x238.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/06/Me.png 1079w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h3>邮件（Mail）、日历（Calendar）程序</h3>
<p>通过People程序与其他第三方的账户绑定成功之后，像Mail（邮件）、Calendar（日历）等程序就能方便的被使用了，我平时都用Gmail和Google日历，所以添加Google账户之后，我已经能够在Mail中收发Gmail邮件；在Calendar中能够看到Google日历的日程了。不过貌似它只同步了默认的日历，我在Google日历中创建有好几个不同类型的日历，它好像只会同步默认的日历。<a href="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Mail.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15518" title="Windows 8 Mail界面" src="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Mail-300x240.png" alt="Windows 8 Mail界面" width="300" height="240" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Mail-300x240.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/06/Mail.png 1078w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h3>浏览器（IE10）程序</h3>
<p>IE10在Windows 8中貌似有两个版本，如果是从开始界面开启的话，它会是Metro风格，如果是从桌面或者任务栏中打开IE的话，就和以前的IE9一样，这里就不多介绍了。因为Metro风格的程序还不太会使用，比如想新建一个面板或者关闭面板都不知道该怎么操作，找不到入口，最后只能通过快捷键进行。（下面的截图中，是因为当前正在下载程序，所以会显示下载进度框以及下面的地址、操作栏，如果是普通浏览状态的话，下面黑色的部分都将消失，只有网页内容。）<a href="https://www.xiaomingtu.com/wp-content/uploads/2012/06/IE10-Metro.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15519" title="Windows 8 IE10-Metro界面" src="https://www.xiaomingtu.com/wp-content/uploads/2012/06/IE10-Metro-300x239.png" alt="Windows 8 IE10-Metro界面" width="300" height="239" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/06/IE10-Metro-300x239.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/06/IE10-Metro.png 1080w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h3>资源管理器（Explorer）程序</h3>
<p>体验完Metro的几大软件之后就回到“桌面”了，新版“桌面”中已经取消了“开始”菜单按钮，取而代之的是上面说的左下角快捷方式以及Start界面。桌面环境最主要的程序 &#8211; 资源管理器也有了较大的变化，使用了Office 2007/2010的Ribbon风格。<a href="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Explorer.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-15520" title="Windows 8 Explorer界面" src="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Explorer-300x225.png" alt="Windows 8 Explorer界面" width="300" height="225" srcset="https://www.xiaomingtu.com/wp-content/uploads/2012/06/Explorer-300x225.png 300w, https://www.xiaomingtu.com/wp-content/uploads/2012/06/Explorer.png 1150w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h3>总结</h3>
<p>Windows 8的开始界面非常适合于触屏操作，因为各个功能入口都是非常大而且易于操作的按钮，加上一些屏幕边缘、角落的快捷方式，相信在触屏操作的时候会有非常好的体验。在运行Metro程序的时候，全屏幕运行软件能够让用户专注于软件本身，没有其他东西的视觉打扰，比如以前的任务栏、标题栏、菜单栏等等。Windows 8与其他社交软件以及第三方应用的集成能够更快的让用户适应系统，并且专注于内容本身，而不是操作系统的操作框架。系统本身自带的程序之间以及与第三方应用之间也能够互通起来，而不像以前的版本，虽然随机自带很多程序，但都是各自独立。</p>
<p>在Windows 8中依然保留有传统的桌面环境，相信很大的原因是为了兼容性考虑，不过就目前来看，桌面环境与Metro之间衔接的还不够，两者给人的感觉是完全不一样的东西。举个可能不太恰当的例子，现代的书本与古代的竹简书，虽然都是记载文字的方法，但是两者的形式很不一样的，现代的书本完全颠覆了以前那种阅读的方法。而如果把现代的书本和电子书相比的话，大家就能很容易的接受它，因为它们之间很相似。不过话说回来，传统的桌面环境本身就没有考虑过触屏的环境，它是需要一定的时间进行演变的，就像以前的菜单形式变成Ribbon风格的菜单，再到现在Windows 8中的Metro界面。</p>
<p>[poll id=&#8221;3&#8243;]  [<a href="https://www.xiaomingtu.com/archives/15511?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e4%25bd%2593%25e9%25aa%258cwindows-8">See image gallery at 192.168.208.3</a>] </p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15511">体验Windows 8</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15511/feed</wfw:commentRss>
			<slash:comments>204</slash:comments>
		
		
			</item>
		<item>
		<title>使用WinDbg查找内存泄漏问题</title>
		<link>https://www.xiaomingtu.com/archives/15278?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e4%25bd%25bf%25e7%2594%25a8windbg%25e6%259f%25a5%25e6%2589%25be%25e5%2586%2585%25e5%25ad%2598%25e6%25b3%2584%25e6%25bc%258f%25e9%2597%25ae%25e9%25a2%2598</link>
					<comments>https://www.xiaomingtu.com/archives/15278#comments</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Fri, 03 Dec 2010 00:09:33 +0000</pubDate>
				<category><![CDATA[专业技术]]></category>
		<category><![CDATA[开发语言]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[windbg]]></category>
		<category><![CDATA[内存泄漏]]></category>
		<guid isPermaLink="false">http://www.xiaomingtu.com/archives/15278</guid>

					<description><![CDATA[<p>WinDbg安装 下载地址：32位 64位 双击运行，在Install Options中选择“Common Utilities”下的“Debugging Tools For Windows”： （我这里已经安装过了，所以显示是灰色的。） 安装完成之后，可以在“开始”-“所有程序”-“ Debugging Tools for Windows (x86)”中找到。 将WinDbg安装目录（ “C:\Program Files\Debugging Tools for Windows (x86)”）添加到“Path”环境变量中。 场景设计 比如有一个多文档应用程序，在代码中设计了一个管理类用于管理打开的各个文档窗口，为了便于各个模块通过访问这个类获取打开的文档清单，因此将类中的List定义为静态变量。但是由于程序员的疏忽，在文档关闭的时候List中对应的引用并没有删除，导致内存泄漏。 场景创建 Visual Studio中创建一个WindowsApplication，新建一个MDIParent窗口： 修改Program.cs中的启动窗口为此MDIParent。添加一个名为“DocumentEditorManager”的类，用下面的代码替换里面的内容： [crayon-6ada8beb36e4b413010039/] 在MDIParent.cs文件中查找到ShowNewForm方法，修改为如下代码： [crayon-6ada8beb36e4f011328340/] &#160; 按F5运行程序之后，打开任务管理器，多次点击工具栏中的“New”按钮，发现内存一直在上涨，即使把打开的窗口关闭了，内存依旧未释放。 发现问题原因 关闭程序，在工程下找到生成的EXE文件并运行（不要直接在VS中运行程序）。打开WinDbg，在菜单中选择“Attach to a Process”： 在打开的窗口中找到对应的程序，点击OK： 这时候，程序已经不能交互了，因为已经进入调试模式，类似于VS中命中断点时的情景。在WinDbg中能看到程序所加载的所有文件： WinDbg支持扩展DLL来提供更加丰富的调试功能，调试.NET程序需要用到的是“SOS.DLL”模块（SOS.DLL所支持的所有命令可以在这里找到。），它包含在每个版本的.NET Framework中（比如2.0版本的路径为C:\Windows\Microsoft.NET\Framework\v2.0.50727\SOS.dll），安装完WinDbg之后已经有一份在WinDbg的安装目录下了，输入下面的命令加载“SOS.DLL”： [crayon-6ada8beb36e50977711975/] 在WinDbg中按F5继续运行程序，使其跳出调试模式，切换到程序中，按10次“New”按钮创建10个窗口，然后关闭这10个窗口（这个过程相当于程序运行了一段时间回到最初的状态，但是内存没有减少），我们需要通过WinDbg找到是什么类出现了问题。切换到WinDbg，在菜单“Debug”中找到“Break”点击中断程序： 输入“!dumpheap –type WindowsFormsApplication3”罗列出我们程序的所有类实例： MT与类型的概念差不多，只要类型一样，这个MT地址就一样，红色的方框中可以看到有两种，一种是1个，另外一种是10个，与Statistics中的内容一致。 理论上来说，所有的Form1都已经关闭了，应该不存在这样的对象，有些人可能觉得是垃圾回收器还没来得及回收的缘故，我们可以做一个实验，修改程序，在工具栏中加一个按钮“Clear Memory”，并在Click事件中编写如下的代码： [crayon-6ada8beb36e55456368044/] 当关闭10个窗口之后点击此按钮，再在WinDbg中用dumpheap命令查看对象清单，发现它们依旧存在。 这说明垃圾回收器并没有回收它们，.NET中的垃圾回收器只会回收没有被使用的对象，所以这些Form1对象依旧被使用，那是谁在使用它们呢，我们可以通过查看其中一个对象实例的引用列表来找到源头： 比如看其中一个地址为“01f78160”的对象引用，使用下面的命令： [&#8230;]</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15278">使用WinDbg查找内存泄漏问题</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>WinDbg安装</h3>
<p>下载地址：<a href="http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx">32位</a> <a href="http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx">64位</a></p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image001.png"><img loading="lazy" decoding="async" style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image001" src="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image001_thumb.png" alt="clip_image001" width="163" height="65" border="0" /></a></p>
<p>双击运行，在Install Options中选择“Common Utilities”下的“Debugging Tools For Windows”：<span id="more-15278"></span></p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image003.jpg"><img loading="lazy" decoding="async" style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image003" src="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image003_thumb.jpg" alt="clip_image003" width="411" height="291" border="0" /></a></p>
<p><em>（我这里已经安装过了，所以显示是灰色的。）</em><em> </em></p>
<p>安装完成之后，可以在“开始”-“所有程序”-“ Debugging Tools for Windows (x86)”中找到。</p>
<p>将WinDbg安装目录（ “C:\Program Files\Debugging Tools for Windows (x86)”）添加到“Path”环境变量中。</p>
<h3>场景设计</h3>
<p>比如有一个多文档应用程序，在代码中设计了一个管理类用于管理打开的各个文档窗口，为了便于各个模块通过访问这个类获取打开的文档清单，因此将类中的List定义为静态变量。但是由于程序员的疏忽，在文档关闭的时候List中对应的引用并没有删除，导致内存泄漏。</p>
<h3>场景创建</h3>
<p>Visual Studio中创建一个WindowsApplication，新建一个MDIParent窗口：</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image005.jpg"><img loading="lazy" decoding="async" style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image005" src="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image005_thumb.jpg" alt="clip_image005" width="421" height="293" border="0" /></a></p>
<p>修改Program.cs中的启动窗口为此MDIParent。添加一个名为“DocumentEditorManager”的类，用下面的代码替换里面的内容：</p><pre class="urvanov-syntax-highlighter-plain-tag">using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    class DocumentEditorManager
    {
        internal static List&lt;Form&gt; DocumentEditors = new List&lt;Form&gt;();
    }
}</pre><p>在MDIParent.cs文件中查找到ShowNewForm方法，修改为如下代码：</p><pre class="urvanov-syntax-highlighter-plain-tag">private void ShowNewForm(object sender, EventArgs e)
{
    Form1 childForm = new Form1();
    DocumentEditorManager.DocumentEditors.Add(childForm);
    childForm.MdiParent = this;
    childForm.Text = "Document " + childFormNumber++;
    childForm.Show();
}</pre><p>&nbsp;</p>
<p>按F5运行程序之后，打开任务管理器，多次点击工具栏中的“New”按钮，发现内存一直在上涨，即使把打开的窗口关闭了，内存依旧未释放。</p>
<h3>发现问题原因</h3>
<p>关闭程序，在工程下找到生成的EXE文件并运行（不要直接在VS中运行程序）。打开WinDbg，在菜单中选择“Attach to a Process”：</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image006.png"><img loading="lazy" decoding="async" style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image006" src="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image006_thumb.png" alt="clip_image006" width="244" height="143" border="0" /></a></p>
<p>在打开的窗口中找到对应的程序，点击OK：</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image007.png"><img loading="lazy" decoding="async" style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image007" src="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image007_thumb.png" alt="clip_image007" width="244" height="150" border="0" /></a></p>
<p>这时候，程序已经不能交互了，因为已经进入调试模式，类似于VS中命中断点时的情景。在WinDbg中能看到程序所加载的所有文件：</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image009.jpg"><img loading="lazy" decoding="async" style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image009" src="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image009_thumb.jpg" alt="clip_image009" width="406" height="272" border="0" /></a></p>
<p>WinDbg支持扩展DLL来提供更加丰富的调试功能，调试.NET程序需要用到的是“SOS.DLL”模块（SOS.DLL所支持的所有命令可以在<a href="http://msdn.microsoft.com/en-us/library/bb190764(VS.80).aspx">这里</a>找到。），它包含在每个版本的.NET Framework中（比如2.0版本的路径为C:\Windows\Microsoft.NET\Framework\v2.0.50727\SOS.dll），安装完WinDbg之后已经有一份在WinDbg的安装目录下了，输入下面的命令加载“SOS.DLL”：</p><pre class="urvanov-syntax-highlighter-plain-tag">.load sos.dll</pre><p>在WinDbg中按F5继续运行程序，使其跳出调试模式，切换到程序中，按10次“New”按钮创建10个窗口，然后关闭这10个窗口（这个过程相当于程序运行了一段时间回到最初的状态，但是内存没有减少），我们需要通过WinDbg找到是什么类出现了问题。切换到WinDbg，在菜单“Debug”中找到“Break”点击中断程序：</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image010.png"><img loading="lazy" decoding="async" style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image010" src="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image010_thumb.png" alt="clip_image010" width="244" height="128" border="0" /></a></p>
<p>输入“!dumpheap –type WindowsFormsApplication3”罗列出我们程序的所有类实例：</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image012.jpg"><img loading="lazy" decoding="async" style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image012" src="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image012_thumb.jpg" alt="clip_image012" width="244" height="183" border="0" /></a></p>
<p>MT与类型的概念差不多，只要类型一样，这个MT地址就一样，红色的方框中可以看到有两种，一种是1个，另外一种是10个，与Statistics中的内容一致。</p>
<p>理论上来说，所有的Form1都已经关闭了，应该不存在这样的对象，有些人可能觉得是垃圾回收器还没来得及回收的缘故，我们可以做一个实验，修改程序，在工具栏中加一个按钮“Clear Memory”，并在Click事件中编写如下的代码：</p><pre class="urvanov-syntax-highlighter-plain-tag">private void toolStripButton1_Click(object sender, EventArgs e)
{
  GC.Collect();
}</pre><p>当关闭10个窗口之后点击此按钮，再在WinDbg中用dumpheap命令查看对象清单，发现它们依旧存在。</p>
<p>这说明垃圾回收器并没有回收它们，.NET中的垃圾回收器只会回收没有被使用的对象，所以这些Form1对象依旧被使用，那是谁在使用它们呢，我们可以通过查看其中一个对象实例的引用列表来找到源头：</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image014.jpg"><img loading="lazy" decoding="async" style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image014" src="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image014_thumb.jpg" alt="clip_image014" width="405" height="246" border="0" /></a></p>
<p>比如看其中一个地址为“01f78160”的对象引用，使用下面的命令：</p>
<div id="codeSnippetWrapper">
<pre class="urvanov-syntax-highlighter-plain-tag">!gcroot 01f78160</pre>
</div>
<p>（注意每台机器上地址不同）下面长的方框中是某一个引用的路径，箭头最终指向是Form1。后面绿色和粉色的根是一个Weak引用，这个对垃圾回收器没有影响。而红色方框的根为“HANDLE(Pinned)”，这表示一个正在使用的对象，后面看到类型是System.Object[]，可能是个数组，也可能是静态变量，因为.NET运行时中所有静态变量都是用Object[]存储的，它的第二级是一个List&lt;Form&gt;类型的，从这里就能找到问题的原因了。</p>
<h3>解决问题</h3>
<p>我们修改Form1的代码，添加窗口的Closing事件处理函数，修改为以下的代码：</p><pre class="urvanov-syntax-highlighter-plain-tag">private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
 DocumentEditorManager.DocumentEditors.Remove(this);
}</pre><p>这样在Form1关闭的时候就会从List中移除，这时候再重复上面的步骤，可以看到在使用dumpheap命令的时候已经与前面的情况不同了：</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image016.jpg"><img loading="lazy" decoding="async" style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image016" src="https://www.xiaomingtu.com/wp-content/uploads/2010/12/clip_image016_thumb.jpg" alt="clip_image016" width="327" height="202" border="0" /></a></p>
<p>从图中，我们可以看到，Form1还有一个对象存在，这是.NET内部机制引起的，每个MDI的窗口都有一个PropertyStore，用于优化性能，只有最后一个关闭的子对话框会被引用，所以它不会导致内存一直增长，这问题本来在.NET 2.0的时候没有的，但是.NET 2.0 SP1的时候为了修复另外一个问题导致这个问题出现了，详细的解释可以见<a href="http://memprofiler.com/articles/memleakintroducedin2.0sp1.aspx">这里</a>。</p>
<h3>总结</h3>
<p>SOS.DLL是一个强大的扩展，还有非常多的功能。各个命令也支持很多参数。也可以在VS的调试器中使用SOS.DLL，VS中进入调试模式之后，可以使用相同的命令.load sos.dll来加载SOS.DLL，但是个人感觉用起来不太顺，还是WinDbg中用起来比较顺畅。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15278">使用WinDbg查找内存泄漏问题</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15278/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>个人邮箱统一管理方案</title>
		<link>https://www.xiaomingtu.com/archives/15219?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e4%25b8%25aa%25e4%25ba%25ba%25e9%2582%25ae%25e7%25ae%25b1%25e7%25bb%259f%25e4%25b8%2580%25e7%25ae%25a1%25e7%2590%2586%25e6%2596%25b9%25e6%25a1%2588</link>
					<comments>https://www.xiaomingtu.com/archives/15219#comments</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Wed, 08 Sep 2010 16:50:31 +0000</pubDate>
				<category><![CDATA[人生感悟]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[126]]></category>
		<category><![CDATA[139]]></category>
		<category><![CDATA[163]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Hotmail]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[POP]]></category>
		<category><![CDATA[QQ]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[邮箱]]></category>
		<guid isPermaLink="false">http://www.xiaomingtu.com/archives/15219</guid>

					<description><![CDATA[<p>从我申请的第一个邮箱开始，目前我已经拥有10个邮箱，其中163两个，126一个，139一个，Yahoo一个，QQ一个，Hotmail一个，Gmail两个，xiaomingtu.com一个。根据使用的频率可以分为三个级别，每个邮箱几乎都在用。 使用Outlook收发各个邮箱是个不错的选择，但是说真的，Outlook太庞大了，有时候开在那里一整天，占着那么多资源，可能还没一封邮件，着实浪费。而且对于163、126这种国产自私邮箱，无法使用POP功能，也导致客户端无用武之地。 我之前就是一直使用Outlook 2007来管理各个邮箱，后来Windows Live Wave 4推出之后，对Live Mail的新版本很感兴趣，于是换到Live Mail，但是这段时间用了之后，发现微软免费的东西果然不靠谱，邮件多了之后经常崩溃，而且也很卡。 最终我选择了Gmail，虽然很多邮箱服务都支持收发其他POP邮箱，但是因为Gmail的强大、简洁、开放，让我深深地爱上了它，而且使用Android手机之后，PushMail功能总是能让我第一时间收到邮件。下面就记录一下各个邮箱服务如何迁移到Gmail，迁移包括两个部分，一是将已有的邮件迁移到Gmail，二是未来使用Gmail来收发该邮箱的邮件。 从163或者126邮箱迁移到Gmail。 从Hotmail邮箱迁移到Gmail。 从Yahoo邮箱迁移到Gmail。 从QQ邮箱、139邮箱、Gmail邮箱迁移到Gmail。 现在我10个邮箱邮件统一都会发送到我的Gmail邮箱，通过配置Filter，可以自动的将标签设置好，比如自动将收件人为xxx@163.com的邮件加上163这个标签，如果你还不了解Gmail的标签功能，建议你看下Google的帮助；另外，有了Android上的Google应用加上PushMail的帮助，总是能第一时间收到邮件，非常适合经常有邮件的朋友。 下面是我Gmail中Accounts and Imports设置： 我设置了几个Filter，可以看到左边的有各个邮箱的Label，都会自动添加的，找邮件也方便。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15219">个人邮箱统一管理方案</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>从我申请的第一个邮箱开始，目前我已经拥有10个邮箱，其中163两个，126一个，139一个，Yahoo一个，QQ一个，Hotmail一个，<a href="http://mail.google.com/" target="_blank">Gmail</a>两个，<a title="涂晓鸣的个人网站" href="http://xiaomingtu.com/" target="_blank">xiaomingtu.com</a>一个。根据使用的频率可以分为三个级别，每个邮箱几乎都在用。</p>
<p>使用Outlook收发各个邮箱是个不错的选择，但是说真的，Outlook太庞大了，有时候开在那里一整天，占着那么多资源，可能还没一封邮件，着实浪费。而且对于163、126这种国产自私邮箱，无法使用POP功能，也导致客户端无用武之地。</p>
<p>我之前就是一直使用Outlook 2007来管理各个邮箱，后来Windows Live Wave 4推出之后，对Live Mail的新版本很感兴趣，于是换到Live Mail，但是这段时间用了之后，发现微软免费的东西果然不靠谱，邮件多了之后经常崩溃，而且也很卡。</p>
<p>最终我选择了Gmail，虽然很多邮箱服务都支持收发其他POP邮箱，但是因为Gmail的强大、简洁、开放，让我深深地爱上了它，而且使用Android手机之后，PushMail功能总是能让我第一时间收到邮件。下面就记录一下各个邮箱服务如何迁移到Gmail，迁移包括两个部分，一是将已有的邮件迁移到Gmail，二是未来使用Gmail来收发该邮箱的邮件。</p>
<p>  <span id="more-15219"></span>    </p>
<ol>
<li><a title="从163或者126邮箱迁移到Gmail" href="https://www.xiaomingtu.com/archives/15201" target="_blank">从163或者126邮箱迁移到Gmail</a>。 </li>
<li><a title="从Hotmail邮箱迁移到Gmail" href="https://www.xiaomingtu.com/archives/15211" target="_blank">从Hotmail邮箱迁移到Gmail</a>。 </li>
<li>从Yahoo邮箱迁移到Gmail。 </li>
<li>从QQ邮箱、139邮箱、Gmail邮箱迁移到Gmail。 </li>
</ol>
<p>现在我10个邮箱邮件统一都会发送到我的Gmail邮箱，通过配置Filter，可以自动的将标签设置好，比如自动将收件人为<a href="mailto:xxx@163.com">xxx@163.com</a>的邮件加上163这个标签，如果你还不了解Gmail的标签功能，建议你看下<a href="http://mail.google.com/support/bin/answer.py?hl=cn&amp;answer=118708" target="_blank">Google的帮助</a>；另外，有了Android上的Google应用加上PushMail的帮助，总是能第一时间收到邮件，非常适合经常有邮件的朋友。</p>
<p>下面是我Gmail中Accounts and Imports设置：</p>
<p><a href="https://www.xiaomingtu.com/wp-content/uploads/2010/09/2.png" target="_blank"><img loading="lazy" decoding="async" style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Accounts and Imports设置" border="0" alt="Accounts and Imports设置" src="https://www.xiaomingtu.com/wp-content/uploads/2010/09/2_thumb.png" width="485" height="347" /></a></p>
<p>我设置了几个Filter，可以看到左边的有各个邮箱的Label，都会自动添加的，找邮件也方便。</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15219">个人邮箱统一管理方案</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15219/feed</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
	</channel>
</rss>
