<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Answer</title><subtitle type="text">专注于Mobile,WinCE</subtitle><id>http://feed.cnblogs.com/blog/u/23354/rss</id><updated>2012-01-31T13:39:56Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/23354/rss"/><entry><id>http://www.cnblogs.com/answer/archive/2012/01/31/2334000.html</id><title type="text">[转]HTC G11 ROOT获取权限教程</title><summary type="text">HTC G11因为外观时尚、硬件配置强大而被许多年轻用户青睐，特别是机身轻薄等特征，购机用户也是逐日渐增。但美中不足的是，和很多HTC其它机型一样HTC G11原生的安卓系统中，自带了非常多的程序软件，要删除它们，就必须先ROOT HTC G11。今天就告诉大家怎么ROOT HTC G11。 HTC G11 Root须知： 1、Root后的设备，即有被修改系统文件的风险。能力越大，责任越大。 2、如果是行货Root的话，很多设备是不再享受保修服务的。 3、Root后，你可以任意对系统文件进行修改替换，即可以增删内置软件，系统字体，界面等等，同时也要承担因操作不当导致系统崩溃的风险。 ...</summary><published>2012-01-31T13:39:00Z</published><updated>2012-01-31T13:39:00Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/answer/archive/2012/01/31/2334000.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/archive/2012/01/31/2334000.html"/><content type="html">&lt;div&gt;HTC G11因为外观时尚、硬件配置强大而被许多年轻用户青睐，特别是机身轻薄等特征，购机用户也是逐日渐增。但美中不足的是，和很多HTC其它机型一样HTC G11原生的安卓系统中，自带了非常多的程序软件，要删除它们，就必须先ROOT HTC G11。今天就告诉大家怎么ROOT HTC G11。&lt;br /&gt; &lt;br /&gt; &lt;strong&gt;HTC G11 Root须知：&lt;br /&gt; &lt;/strong&gt;&lt;br /&gt; 1、Root后的设备，即有被修改系统文件的风险。能力越大，责任越大。&lt;br /&gt; &lt;br /&gt; 2、如果是行货Root的话，很多设备是不再享受保修服务的。&lt;br /&gt; &lt;br /&gt; 3、Root后，你可以任意对系统文件进行修改替换，即可以增删内置软件，系统字体，界面等等，同时也要承担因操作不当导致系统崩溃的风险。&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;strong&gt;HTC G11 获取 ROOT权限：&lt;br /&gt; &lt;/strong&gt;&lt;br /&gt; 本教程是通过第三方Recovery刷入Root文件。&lt;br /&gt; &lt;br /&gt; 1、将保你的手机已经S-OFF，将第三方Reocovery文件PG32IMG.zip(点击下载&lt;a href="http://115.com/file/be8i4ork"&gt;http://115.com/file/be8i4ork&lt;/a&gt;#)拷贝至内存卡中。&lt;br /&gt; &lt;br /&gt; 2、将手机完全关闭，然后按&amp;#8220;音量下+电源&amp;#8221;进入BootLoader，设备会自动检查更新，检测到升级文件后，你只需按音量上键确认升级即可。&lt;br /&gt; &lt;br /&gt; 3、升级完毕后会提示你重启，不用理它，直接拔了电池即可，再将Root文件 is root.zip(点击下载&lt;a href="http://115.com/file/be8i4viz"&gt;http://115.com/file/be8i4viz&lt;/a&gt;#)拷贝至内存卡，并删除刚才的Recovery升级文件（否则再次进入又会提示升级）。&lt;br /&gt; &lt;br /&gt; 4、再按&amp;#8220;音量下键+电源&amp;#8221;进入Bootloader，选择Reocovery并进入。（音量键选择，电源键确认）。&lt;br /&gt; &lt;br /&gt; 5、选择第四项。Install zip from sdcard(从SD卡中选择zip升级包)。然后选择内存卡中的is root.zip文件，然后选择yes即可。&lt;br /&gt; &lt;br /&gt; 6、几十秒左右就可以刷完。重启后菜单中将会有Superuser的骷髅头应用。即表示授权成功。你可以安装RE文件浏览器或其它需要授权的软件测试。&lt;/div&gt;&lt;img src="http://www.cnblogs.com/answer/aggbug/2334000.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/answer/archive/2012/01/31/2334000.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/answer/archive/2011/12/19/2293277.html</id><title type="text">[转]WebForm 与 winform 路径获取</title><summary type="text">对于Windows程序 和Web 应用程序来说,他们运行的路径是不一样的,所以关键是判断当前运行的程序是哪种程序.于是我们可以使用如下的代码 string path = &amp;quot;&amp;quot;;if (System.Environment.CurrentDirectory == AppDomain.CurrentDomain.BaseDirectory)//Windows应用程序则相等{ path = AppDomain.CurrentDomain.BaseDirectory; }else{ path = AppDomain.CurrentDomain.BaseDirectory + &amp;qu</summary><published>2011-12-19T05:36:00Z</published><updated>2011-12-19T05:36:00Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/answer/archive/2011/12/19/2293277.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/archive/2011/12/19/2293277.html"/><content type="html">&lt;div&gt;&lt;p&gt;对于Windows程序 和Web 应用程序来说,他们运行的路径是不一样的,所以关键是判断当前运行的程序是哪种程序.于是我们可以使用如下的代码 &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; path &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt; &lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (System.Environment.CurrentDirectory &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; AppDomain.CurrentDomain.BaseDirectory)&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Windows应用程序则相等&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" alt="" align="top" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&lt;img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path &lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; AppDomain.CurrentDomain.BaseDirectory;&lt;br /&gt;&lt;img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&lt;img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path &lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; AppDomain.CurrentDomain.BaseDirectory &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt; &lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;Bin/&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;这样如果我们写了一个类库,类库中用到了Assembly.LoadFrom,由于是通用类库,所以可能用到Windows程序中也可能用到Web中,那么用上面的代码就很方便了.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;做法2：&lt;/p&gt; &lt;p&gt;string MyPath = System.IO.Path.GetDirectoryName(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName);&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blog.csdn.net/tarmee/archive/2008/04/01/2234872.aspx"&gt;&lt;span style="color: #336699;"&gt;C#获取项目程序及运行路径的方法&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;1.asp.net webform用&amp;#8220;Request.PhysicalApplicationPath获取站点所在虚拟目录的物理路径，最后包含&amp;#8220;/&amp;#8221;；&lt;/p&gt; &lt;p&gt;2.c# winform用&lt;br /&gt;A：&amp;#8220;Application.StartupPath&amp;#8221;:获取当前应用程序所在目录的路径，最后不包含&amp;#8220;/&amp;#8221;；&lt;br /&gt;B：&amp;#8220;Application.ExecutablePath &amp;#8221;:获取当前应用程序文件的路径，包含文件的名称；&lt;br /&gt;C：&amp;#8220;AppDomain.CurrentDomain.BaseDirectory&amp;#8221;:获取当前应用程序所在目录的路径，最后包含&amp;#8220;/&amp;#8221;；&lt;br /&gt;D：&amp;#8220;System.Threading.Thread.GetDomain().BaseDirectory&amp;#8221;:获取当前应用程序所在目录的路径，最后包含&amp;#8220;/&amp;#8221;；&lt;br /&gt;E：&amp;#8220;Environment.CurrentDirectory&amp;#8221;:获取当前应用程序的路径，最后不包含&amp;#8220;/&amp;#8221;；&lt;br /&gt;F：&amp;#8220;System.IO.Directory.GetCurrentDirectory&amp;#8221;:获取当前应用程序的路径，最后不包含&amp;#8220;/&amp;#8221;；&lt;/p&gt; &lt;p&gt;3.c# windows service服务中用&amp;#8220;AppDomain.CurrentDomain.BaseDirectory&amp;#8221;或&amp;#8220;System.Threading.Thread.GetDomain().BaseDirectory&amp;#8221;；&lt;br /&gt;用&amp;#8220;Environment.CurrentDirectory&amp;#8221;和&amp;#8220;System.IO.Directory.GetCurrentDirectory&amp;#8221;将得到&amp;#8220; system32&amp;#8221;目录的路径；&lt;br /&gt;如 果要使用&amp;#8220;Application.StartupPath&amp;#8221;或&amp;#8220;Application.ExecutablePath  &amp;#8221;，需要手动添加对&amp;#8220;System.Windows.Forms.dll &amp;#8221;的引用，并在程序开头用&amp;#8220;using&amp;nbsp;&amp;nbsp;  System.Windows.Forms&amp;#8221;声明该引用；&lt;/p&gt; &lt;p&gt;4.在卸载程序获取系统安装的目录：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Reflection.Assembly curPath = System.Reflection.Assembly.GetExecutingAssembly();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string path=curPath.Location;//得到安装程序类SetupLibrary文件的路径，获取这个文件路径所在的目录即得到安装程序的目录;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;来自：&lt;div&gt;http://blog.csdn.net/xiaogaolin/article/details/5964000&lt;/div&gt; &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/answer/aggbug/2293277.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/answer/archive/2011/12/19/2293277.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/answer/archive/2011/11/25/2263880.html</id><title type="text">[转]win7 系统装SQLServer2000 成功。</title><summary type="text">昨天在win7上装SQLServer数据库，写一下体会。首先，如果以前安装的话，要删除干净。我也找了半天的网络资料。1.把原来 SQLServer的安装目录 C:\Program Files\Microsoft SQL Server 删除2.所有SQLServer相关的注册表全部删除，保证系统是没有装过SQLServer的状态注册表打开方式：开始--&amp;amp;amp;gt; 运行--&amp;amp;amp;gt;regedit然后找下面目录删除 1).hkey_current_user\software\miocrosoft\MICROSOFT SQL SERVER 文件夹删除 2).hkey_cu</summary><published>2011-11-25T14:49:00Z</published><updated>2011-11-25T14:49:00Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/answer/archive/2011/11/25/2263880.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/archive/2011/11/25/2263880.html"/><content type="html">&lt;div&gt;&lt;p&gt;昨天在win7上装SQLServer数据库，写一下体会。首先，如果以前安装的话，要删除干净。我也找了半天的网络资料。1.把原来 SQLServer的安装目录 C:\Program Files\Microsoft SQL Server  &amp;nbsp;删除2.所有SQLServer相关的注册表全部删除，保证系统是没有装过SQLServer的状态注册表打开方式：开始--&amp;amp;amp;gt; 运行--&amp;amp;amp;gt;regedit然后找下面目录删除  &amp;nbsp;1).hkey_current_user\software\miocrosoft\MICROSOFT &amp;nbsp; SQL &amp;nbsp; SERVER 文件夹删除  &amp;nbsp;2).hkey_current_user\software\miocrosoft\mssqlserver &amp;nbsp;文件夹删除  &amp;nbsp;3).HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server  &amp;nbsp;文件夹删除总之一句话，把所有SqlServer相关的删除。然后重启机器开始装。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;通过截图进行显示了&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/430972/13581800-b93f-363e-855a-2fe9d30610fa.png" alt="" height="621" width="700" /&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/430974/d7ffc822-8505-3c65-936d-82a9a8a3fd5a.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/430978/fc04f566-bcd0-3b12-87b5-350d1e99bb08.png" alt="" height="560" width="700" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/430976/ac2b4b70-1ba5-32a2-91fb-d2ea19aef141.png" alt="" height="581" width="700" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/430980/9d46bc22-465e-337e-95c0-38d1c42c36c7.png" alt="" height="407" width="700" /&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/430982/fa59062d-eefd-3571-aa13-75d7e51f4320.png" alt="" height="415" width="700" /&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/430984/0b38d55f-b209-3501-80e6-957fb13d6b55.png" alt="" /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/430988/fd40e96b-cc11-3f05-9db3-7054cf96e5b7.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/430986/221a8419-8b11-34c8-b51e-328fc498925a.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/430990/0f5d7ada-4855-3b1c-ac8e-bbca576e3b2d.png" alt="" /&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/430994/5f1de252-11b6-3713-a741-2b5561ea3539.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/430992/0efb1b5c-5fa0-3d64-a3b0-f5b403e23552.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/430996/50e32b34-f8f5-30ae-83a5-6c68703a3281.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/430998/79eb3b6b-d28b-3e5a-8acb-da55cf44c1b6.png" alt="" height="499" width="700" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431000/3d095d7b-2b71-36bb-b45b-7d83154fd71f.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431002/62128e1b-ad7a-3728-933f-5477e413843f.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431006/440d4ef8-0bc9-3eb4-afc4-0cc1bd46d090.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431004/bf53d92b-588e-3250-b034-d90df3fee3c8.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431008/ca25040c-4bfa-30f2-ac90-0495db0de6d0.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431010/69a24616-82ca-37fd-863a-44ff7a4d91d7.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431012/5cdd9d50-1872-3b8d-b4de-2af6813c55f6.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431014/7a5d2e20-4004-3b3f-a41e-12c1ba3aba6a.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431016/08f8c3cf-9b15-38f3-85b3-4c03b6cab5fa.png" alt="" /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431018/580d8eda-ad23-35ff-b75e-e42e42925052.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/431044/959bd884-ec05-30b0-8a4c-85571216ac54.png" alt="" height="316" width="700" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431020/fa9d99ea-0274-3a5a-b1fd-446ccd716145.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;29.跳出一个提示，选是。 &amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431022/78aa29fd-46a5-3f3d-a461-a412056206a8.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/431024/62d09f3a-ec98-3dab-9752-9cafa232fc3f.png" alt="" height="521" width="700" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/431026/289e86ce-f326-339e-b29f-3ff864d591c0.png" alt="" height="500" width="700" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431028/8cba2eca-78de-3e49-83b9-1906ba38354d.png" alt="" /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431055/4022bb1d-f046-31ee-8f82-840e39bf93d5.png" alt="" /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431030/097f3647-1afb-3539-b374-a645965569bb.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/431032/14da8130-d482-3995-9667-d42cecf7a7a8.png" alt="" height="385" width="700" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img title="点击查看原始大小图片" src="http://dl.iteye.com/upload/attachment/431034/96106dd6-c92f-3d56-a70e-fb4818846e5a.png" alt="" height="732" width="700" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431036/1037a3dc-bb70-3a03-ad45-302a8eacd30a.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431038/411f623a-ee5f-3bd9-99e8-1a0070196ac3.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431040/76e21c94-6b06-3a29-80a9-292ee92e64b4.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/431042/c3a53a47-2a15-3c12-82d5-884de98c7f70.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt; &lt;p&gt;安装步骤摘抄自网络资料：http://wenku.baidu.com/view/2f13181614791711cc791704.html&lt;/p&gt; &lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/answer/aggbug/2263880.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/answer/archive/2011/11/25/2263880.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/answer/archive/2011/11/18/2253924.html</id><title type="text">Mobile Development: Disable Windows Mobile 6.5 Start and Close Button</title><summary type="text">来自：http://www.hjgode.de/wp/2010/11/18/mobile-development-disable-windows-mobile-6-5-start-and-close-button/Hello here is one other way to write a kios mode .NET application using a technique called SubClassing. The idea was born by a comment of redwolf2222 on this blog about how to Hide Start and...</summary><published>2011-11-18T04:24:00Z</published><updated>2011-11-18T04:24:00Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/answer/archive/2011/11/18/2253924.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/archive/2011/11/18/2253924.html"/><content type="html">&lt;p&gt;来自：http://www.hjgode.de/wp/2010/11/18/mobile-development-disable-windows-mobile-6-5-start-and-close-button/&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;p&gt;Hello&lt;/p&gt; &lt;p&gt;here is one other way to write a kios mode .NET application using a  technique called SubClassing. The idea was born by a comment of  redwolf2222 on this blog about how to &lt;a href="http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/"&gt;Hide Start and Close buttons on Windows Mobile 6.5 devices&lt;/a&gt;. Redwolf2222 also provided a code snippet. Unfortunately it was incomplete and so I wrote my own class.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Disable clicks on Start and Close button&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The demo project shows one dialog with two check boxes and you can  easily test the function. If &amp;#8220;StartButton Disabled&amp;#8221; or &amp;#8220;Close Button  disabled&amp;#8221; is checked, you cannot &amp;#8216;click&amp;#8217; the corresponding button any  more:&lt;/p&gt; &lt;p&gt;&lt;a rel="attachment wp-att-889" href="http://www.hjgode.de/wp/2010/11/18/mobile-development-disable-windows-mobile-6-5-start-and-close-button/startbuttoncontrolwm65_2/"&gt;&lt;img size-medium=""  wp-image-889"="" title="StartButtonControlWM65" src="http://www.hjgode.de/wp/wp-content/uploads/2010/11/StartButtonControlWM65_2-225x300.gif" alt="" height="300" width="225" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You still &amp;#8216;click&amp;#8217; the buttons but the subclassed window will not  &amp;#8216;execute&amp;#8217; your click. The buttons are part of the toolbar32 window which  is a child of the menu_worker window. So first we have to follow the  window tree.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;Downloads&lt;/strong&gt;&lt;br /&gt;  Visual Studion 2008 solution with demo project targeting Windows Mobile 6 SDK: &lt;strong&gt;DOWNLOAD:&lt;/strong&gt;&lt;a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=128" title="Downloaded 702 times"&gt;StartButtonHookWM65 VS2008 source code and demo project&lt;/a&gt; -  (Hits: 702, size: 18.53 kB)&lt;/p&gt; &lt;p&gt;Thanks to redwolf2222 for the great idea.&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/answer/aggbug/2253924.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/answer/archive/2011/11/18/2253924.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/answer/archive/2011/11/18/2253922.html</id><title type="text">[转]Windows Mobile: Hide StartButton in WinMo 6.5.x</title><summary type="text">来自：http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/ Here is a very short tip based on a finding at xda-developers.com For kiosk mode applications you dont want the user access the device settings or the start menu and all the programs and games accessible from the..</summary><published>2011-11-18T04:21:00Z</published><updated>2011-11-18T04:21:00Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/answer/archive/2011/11/18/2253922.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/archive/2011/11/18/2253922.html"/><content type="html">&lt;div&gt;&lt;p&gt;来自：http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/ &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Here is a very short tip based on a finding at xda-developers.com&lt;/p&gt; &lt;p&gt;For kiosk mode applications you dont want the user access the device  settings or the start menu and all the programs and games accessible  from there. One step to this kiosk mode is disabling the Start Button,  the button that opens a menu to access programs and settings.&lt;/p&gt; &lt;p&gt;In versions of windows mobile before 6.5.3, you could disable access  to the start button by subclassing HHTaskbar and discard clicks in the  Start button area or simply disable the whole HHTaskbar window.&lt;/p&gt; &lt;p&gt;Now, with windows mobile 6.5.3 the start button is part of the menu  bar and no longer part of the taskbar (which is now called MenuBar). To  hide the start button on a windows Mobile 6.5.x device you can use  following registry change:&lt;/p&gt; &lt;pre&gt;[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\BubbleTiles] "TextModeEnabled"=dword:00000001 "HardwareStartKeyEnabled"=dword:00000001 "HardwareDoneKeyEnabled"=dword:00000001 &lt;/pre&gt; &lt;p&gt;With this change the &amp;#8220;MenuBar&amp;#8221; will no longer show the Start Button  graphic nor the Done button, Windows Mobile will no longer decorate the  menu texts . Only two menu entries will now show on bottom of the today  screen.&lt;/p&gt; &lt;p&gt;TextModeEnabled switches the display of soft menu entries from the  default graphic tiles display to a text only display as it was and is in  windows mobile 6.1.&lt;/p&gt; &lt;p&gt;HardwareStartKeyEnabled controls the display of the Start button (the  big windows start symbol on the left of the soft menu). If you change  to enabled (0&amp;#215;01) you dont get a start button and have to use a key on  your keypad to launch the start screen!&lt;/p&gt; &lt;p&gt;HardwareDoneButton controls the display of the Done button at the  right of the menu bar (the big (X)). When enabled, you have no chance to  close apps that do not have an exit option in there menu, except you  have a key on on your keyboard assigned to the Done function! Done now  not only hides an app, with winmo 6.5 the app is closed and removed from  memory now.&lt;/p&gt; &lt;p&gt;&lt;a rel="attachment wp-att-830" href="http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/winmo653textmodeenabled/"&gt;&lt;img size-full=""  wp-image-830"="" title="winmo653textmodeenabled" src="http://www.hjgode.de/wp/wp-content/uploads/2010/10/winmo653textmodeenabled.jpg" alt="" height="267" width="208" /&gt;&lt;/a&gt; The Start entry at top left corner remains there but is only an indicator.&lt;/p&gt; &lt;p&gt;&lt;a rel="attachment wp-att-834" href="http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/textmodeenabled_2/"&gt;&lt;img size-thumbnail=""  wp-image-834"="" title="TextModeEnabled_2" src="http://www.hjgode.de/wp/wp-content/uploads/2010/10/TextModeEnabled_2-112x150.gif" alt="" height="195" width="146" /&gt;&lt;/a&gt; &lt;a rel="attachment wp-att-833" href="http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/textmodeenabled_3today-home/"&gt;&lt;img size-thumbnail=""  wp-image-833"="" title="TextModeEnabled_3today-home" src="http://www.hjgode.de/wp/wp-content/uploads/2010/10/TextModeEnabled_3today-home-112x150.gif" alt="" height="194" width="144" /&gt;&lt;/a&gt; &lt;a rel="attachment wp-att-835" href="http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/textmodeenabled_1/"&gt;&lt;img size-thumbnail=""  wp-image-835"="" title="TextModeEnabled_1" src="http://www.hjgode.de/wp/wp-content/uploads/2010/10/TextModeEnabled_1-112x150.gif" alt="" height="192" width="143" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;NO more Start Button, No more Done (X) Button&lt;/p&gt; &lt;p&gt;When you reboot the device, the change  will be applied and you will see the Today screen with two menu  shortcuts in the menubar at the bottom. On a prof. device this may be  (Phone) and (Contacts). These buttons are also called SoftKeys and you  can change there behaviour using the registry:&lt;/p&gt; &lt;pre&gt;[HKLM\Software\Microsoft\CHome\SK1URL]                 "Open"= &amp;lt;handling app&amp;gt; [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Today\Keys\112]                 @="&amp;lt;SK label&amp;gt;"                 "Open"= &amp;lt;handling app&amp;gt; &lt;/pre&gt; &lt;p&gt;(use SK2 for the second softkey)&lt;/p&gt; &lt;p&gt;So you may use these SoftKeys to enable the user to start your Kios application.&lt;/p&gt; &lt;p&gt;You should be aware of that if you dont have a key assigned to  VK_LWIN (the Win key), you will never be able to switch to the Start  Menu or now called Home Screen!&lt;/p&gt; &lt;p&gt;If an application is started and does not have a Exit menu, you will  not be able to get back to the today screen. If you disable the TitleBar  (HHTaskbar) you will also not be able to open any of the settings and  informations available thru the TitleBar (ie battery status, clock  settings, volume settings).&lt;/p&gt; &lt;p&gt;The TitleBar normally will get a &amp;#8220;Start Menu&amp;#8221; entry to the left. But  with TextmodeEnabled=1 this will not be the case! So no way back to  Today Screen and no way to get to the Start Menu with all the programs  or the Home Screen.&lt;/p&gt; &lt;p&gt;Happy kiosk mode coding.&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/answer/aggbug/2253922.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/answer/archive/2011/11/18/2253922.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/answer/archive/2011/05/24/2055457.html</id><title type="text">Windows CE 电源管理(转贴)</title><summary type="text">电源管理 Windows CE是典型的使用电池供电的系统。这使得正确操作系统十分关键，应用程序大多数时间都不需要关注Windows CE 设备的电源损耗，但是在某些时候，你可能要注意这些损耗。 当用户关闭了一个使用电池的Windows CE 设备，电源系统不会关闭PC电源，事实上，只是系统被挂起（译者注：这里就像有些PocketPC把关闭电源放在拔SIM卡的位置，拔出SIM卡才真正关 闭电源。但是，目前包括Smartphone在内，因为硬件设备，比如CPU无法进入低功耗，所以为了省电，需要做到关闭应用处理器及大部分设备供电，然 后需要唤醒时，再通过定时器或无线模块唤醒。所以不关闭电源的情况不是</summary><published>2011-05-24T06:20:00Z</published><updated>2011-05-24T06:20:00Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/answer/archive/2011/05/24/2055457.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/archive/2011/05/24/2055457.html"/><content type="html">&lt;div&gt;&lt;div id="cnblogs_post_body"&gt;&lt;div style="margin: 17pt 0cm 16.5pt"&gt;&lt;strong&gt;电源管理&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows CE是典型的使用电池供电的系统。这使得正确操作系统十分关键，应用程序大多数时间都不需要关注Windows CE 设备的电源损耗，但是在某些时候，你可能要注意这些损耗。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当用户关闭了一个使用电池的&lt;span&gt;Windows CE  设备，电源系统不会关闭PC电源，事实上，只是系统被挂起（译者注：这里就像有些PocketPC把关闭电源放在拔SIM卡的位置，拔出SIM卡才真正关 闭电源。但是，目前包括Smartphone在内，因为硬件设备，比如CPU无法进入低功耗，所以为了省电，需要做到关闭应用处理器及大部分设备供电，然 后需要唤醒时，再通过定时器或无线模块唤醒。所以不关闭电源的情况不是绝对的。）当用户打开设备电源，设备不会像PC一样重新启动，而是被唤醒，返回到与 系统挂起前一样的状态。这样导致一个应用程序在唤醒后会像挂起前一样运行。事实上，应用程序根本不知道它被挂起，除非它明确地请求当系统挂起时通知它。从 应用程序的角度看，电源管理有三种方式，查询电源状态，改变电源状态，和防止电源状态改变。&lt;/span&gt;&lt;/div&gt; &lt;div style="margin: 13pt 0cm"&gt;&lt;strong&gt;查询电源状态&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 要查询系统当前的电源状态，你必须调用&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-align: left; text-indent: -162.75pt; margin: 0cm 0cm 0pt 183.75pt" align="left"&gt;DWORD&amp;nbsp;GetSystemPowerStatusEx2&amp;nbsp;(PSYSTEM_POWER_STATUS_EX2&amp;nbsp;pSystemPowerStatusEx2, DWORD&amp;nbsp;dwLen,&amp;nbsp;BOOL&amp;nbsp;fUpdate);&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;函数带了三个参数：一个指向SYSTEM_POWER_ STATUS_EX2结构的指针，结构的长度，和一个布尔值，表示告诉操作系统是否应该查询电池驱动来得到最后的信息或者直接返回电池缓存中的信息。系统大约每&lt;span&gt;5秒查询一次电池状态，因此，如果第三个差数是FALSE，得到的数据不会太旧。结构SYSTEM_POWER_STATUS_EX2被定义为&lt;/span&gt;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;typedef&amp;nbsp;struct&amp;nbsp;_SYSTEM_POWER_STATUS_EX2&amp;nbsp;{&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;ACLineStatus;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;BatteryFlag;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;BatteryLifePercent;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;Reserved1;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;BatteryLifeTime;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;BatteryFullLifeTime;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;Reserved2;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;BackupBatteryFlag;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;BackupBatteryLifePercent;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;Reserved3;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;BackupBatteryLifeTime;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;BackupBatteryFullLifeTime;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WORD&amp;nbsp;BatteryVoltage;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;BatteryCurrent;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;BatteryAverageCurrent;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;BatteryAverageInterval;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;BatterymAHourConsumed;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;BatteryTemperature;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;BackupBatteryVoltage;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;&amp;nbsp;BatteryChemistry;&lt;/div&gt; &lt;div style="margin: 0cm 0cm 0pt 42pt"&gt;}&amp;nbsp;SYSTEM_POWER_STATUS_EX2;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在我描述的这个巨大的结构之前，我必须告诫你，这个结构返回的数据精确程度和电池驱动一样。同样的结构被传给电池驱动来查询它的状态。Windows CE不验证电池驱动返回的数据。这个函数返回来的数据依赖于电池驱动，因此不同的系统有不同的变化。举个例子，许多系统在使用AC电源时不报告精确的电源级数；另一些系统则相反。应用程序使用GetSystemPowerStatusEx2来自动预防和检测系统是否可能运行应用程序。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;第一个区域，&lt;span&gt;ACLineStatus，包含一个标志，表示系统是否连接到AC  电源。如果值是AC_LINE_OFFLINE，表示系统没有使用AC 电源；AC_LINE_ONLINE，表示系统使用了AC  电源；AC_LINE_BACKUP_POWER和AC_LINE_UNKNOWN，表示备用电源和未知电源。BatteryFlag区域，提供了一个总 的标识，表示当前系统的电池状态，可以有以下值：&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;strong&gt;BATTERY_FLAG_HIGH&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;电池被充满或接近充满。&lt;/div&gt; &lt;div&gt;&lt;strong&gt;BATTERY_FLAG_LOW&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;电池还有一点剩余。&lt;/div&gt; &lt;div&gt;&lt;strong&gt;BATTERY_FLAG_CRITICAL&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;电池电量处在一个临界状态。&lt;/div&gt; &lt;div&gt;&lt;strong&gt;BATTERY_FLAG_CHARGING&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;电池当前正在充电。&lt;/div&gt; &lt;div&gt;&lt;strong&gt;BATTERY_FLAG_NO_BATTERY&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;系统无电池&lt;/div&gt; &lt;div&gt;&lt;strong&gt;BATTERY_FLAG_UNKNOWN&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;电池状态未知&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;BatteryLifePercent&lt;span&gt;区域包含估计的电池电量能够维持的百分比。数值可能是&lt;span&gt;0 到100之间的一个，或用255表示百分比未知。BatteryLifeTime区域表示电池耗尽之前可以维持的秒数。如果该值不能估计，区域填入 BATTERY_LIFE_UNKNOWN。BatteryFullLifeTime区域包含完全充满电池需要的时间。如果该值不能估计，填入 BATTERY_LIFE_UNKNOWN。注意，在许多系统中，这些值可能难以测量。大多数OEM  厂商简单地在每个区域内填入BATTERY_LIFE_UNKNOWN。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;接下来的第四个区域（不计算保留区域）重复了前面的表述，只不过是对系统备份电池来说。因为这些值大多数难以测量，许多系统简单地返回&amp;#8220;unknown&amp;#8221;给这些区域。&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;剩下的区域描述了电池和备用电池的电力状态，因为许多系统缺少测量这些值的能力，这些区域也被简单地默认为&amp;#8220;unknown&amp;#8221;。最后一个区域，&lt;span&gt;BatteryChemistry，包含一个标志，表示系统中电池的类型。当前已定义的值包括&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: -18pt; margin: auto 0cm auto 36pt"&gt;&lt;span style="font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt"&gt;BATTERY_CHEMISTRY_ALKALINE&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: -18pt; margin: auto 0cm auto 36pt"&gt;&lt;span style="font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt"&gt;BATTERY_CHEMISTRY_NICD&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: -18pt; margin: auto 0cm auto 36pt"&gt;&lt;span style="font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt"&gt;BATTERY_CHEMISTRY_NIMH&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: -18pt; margin: auto 0cm auto 36pt"&gt;&lt;span style="font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt"&gt;BATTERY_CHEMISTRY_LION&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: -18pt; margin: auto 0cm auto 36pt"&gt;&lt;span style="font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt"&gt;BATTERY_CHEMISTRY_LIPOLY&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: -18pt; margin: auto 0cm auto 36pt"&gt;&lt;span style="font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt"&gt;BATTERY_CHEMISTRY_UNKNOWN&lt;/span&gt;&lt;/div&gt; &lt;div style="margin: 13pt 0cm"&gt;&lt;strong&gt;改变电源状态&lt;/strong&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;应用程序能通过一系列的方式改变系统的电源状态。在基于Windows CE.NET系统的较新系统中，首选的方式是使用电源管理程序，在之后的章节将会讨论。可是无论如何，还有大量的基于早期Windows CE版本的系统以及Windows CE.NET不包含电源管理程序版本。对这些系统来说，下面的技术会很方便。&lt;/div&gt; &lt;div style="margin: 13pt 0cm"&gt;&lt;strong&gt;关闭电源&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 应用程序可以通过调用一个少有资料的GwesPowerOffSystem函数挂起系统。这个函数可以在大多数版本Windows CE中使用，但是最近才被公开。事实上，大多数SDK没有包含这个函数的原型，你可能要提供原型。这个函数定义为&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;void&amp;nbsp;GwesPowerOffSystem(void);&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GwesPowerOffSystem的使用很简单：简单调用，系统就会挂起。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果你想避免使用很少资料的函数，你可以通过简单地模拟用户按关闭按钮来关闭系统。你可以通过使用&lt;span&gt;keybd_event函数很容易地允许你的应用程序挂起系统，如下：&lt;/span&gt;&lt;/div&gt; &lt;div style="text-align: left; margin: 0cm 0cm 0pt 21pt" align="left"&gt;keybd_event&amp;nbsp;(VK_OFF,&amp;nbsp;0,&amp;nbsp;KEYEVENTF_SILENT,&amp;nbsp;0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt; &lt;div style="margin: 0cm 0cm 0pt 21pt"&gt;keybd_event&amp;nbsp;(VK_OFF,&amp;nbsp;0,&amp;nbsp;KEYEVENTF_SILENT&amp;nbsp;&amp;#9474;&amp;nbsp;KEYEVENTF_KEYUP,&amp;nbsp;0);&lt;/div&gt; &lt;div&gt;这两个keybd_event调用模拟了按和释放电源按钮，电源按钮的虚拟键值是VK_OFF。执行前面的两行代码将挂起系统。因为虚拟键代码在执行时会由&lt;span&gt;GWES表现，两个函数可能在系统挂起前有一些状态的表现（译者注：屏幕上会有关闭对话框之类的图像，和真实按下按钮的画面一样）。如果你的程序无法在keybd_event函数之前停止工作，添加一个Sleep调用来使应用程序暂停一些毫秒来让GWES真实地挂起系统。&lt;/span&gt;&lt;/div&gt; &lt;div style="margin: 13pt 0cm"&gt;&lt;strong&gt;关闭屏幕&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果系统有有色背光显示，主要的电源消耗不是CPU而是背光。在一些环境下，一个应用程序需要运行却不需要显示在屏幕上。一个例子是音乐播放器应用程序，当用户听音乐的时候，不关注屏幕。在这些情形下，有能力关闭背光将意味着提高电池寿命。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当然，当用户想看屏幕时，任何关闭背光应用程序的需要一个简单的用户友好的方式来重新打开屏幕。同样，记得 用户典型的想法是屏幕变黑时会认为被关闭了，因此要考虑这点。举个例子，一个用户可能在系统已经运行时试图打开系统电源，并且这样做了，却很意外地发现， 设备电源被关闭了。同样，当系统在这种情况下关闭显示，它同时也关闭了触摸屏。这意味着你不能告诉用户敲击屏幕来打开。而是，你需要使用一些其他的事件， 比如设置时间，任务完成，或用户按了一个按钮。最后，这里讨论的方式对大多数基于Windows CE 3.0或更新的版本比较有用，并且被Windows CE .NET 4.0中的电源管理程序所替代。对于较新的系统，先看看是否电源管理程序可用，然后通过它来控制屏幕。如果失败了，&lt;span&gt;ExtEscape方式也许能行。&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在&lt;span&gt;Windows CE中，显示的控制是通过Ext&amp;#173;Escape函数。这是一个显示和打印机驱动的后门。Windows CE显示驱动支持许多设备转义代码（&lt;/span&gt;escape codes），这些被公布在Platform Builder中。对于我们的目的来说，只有两个转义代码被用到：SETPOWERMANAGEMENT来设置显示的电源状态和QUERYESCSUPPORT来查询是否SETPOWERMANAGEMENT被驱动支持。下面的例子打开或关闭系统显示通过显示驱动，并且支持完全的转义代码：&lt;/div&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;//&amp;nbsp;Defines&amp;nbsp;and&amp;nbsp;structures&amp;nbsp;taken&amp;nbsp;from&amp;nbsp;pwingdi.h&amp;nbsp;in&amp;nbsp;the&amp;nbsp;Platform&amp;nbsp;Builder&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;#define&amp;nbsp;QUERYESCSUPPORT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;#define&amp;nbsp;SETPOWERMANAGEMENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6147&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;#define&amp;nbsp;GETPOWERMANAGEMENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6148&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;typedef&amp;nbsp;enum&amp;nbsp;_VIDEO_POWER_STATE&amp;nbsp;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VideoPowerOn&amp;nbsp;=&amp;nbsp;1,&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VideoPowerStandBy,&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VideoPowerSuspend,&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VideoPowerOff&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;}&amp;nbsp;VIDEO_POWER_STATE,&amp;nbsp;*PVIDEO_POWER_STATE;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;typedef&amp;nbsp;struct&amp;nbsp;_VIDEO_POWER_MANAGEMENT&amp;nbsp;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG&amp;nbsp;Length;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG&amp;nbsp;DPMSVersion;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG&amp;nbsp;PowerState;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;}&amp;nbsp;VIDEO_POWER_MANAGEMENT,&amp;nbsp;*PVIDEO_POWER_MANAGEMENT;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;//----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;//&amp;nbsp;SetVideoPower&amp;nbsp;-&amp;nbsp;Turns&amp;nbsp;on&amp;nbsp;or&amp;nbsp;off&amp;nbsp;the&amp;nbsp;display&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;//&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;int&amp;nbsp;SetVideoPower&amp;nbsp;(BOOL&amp;nbsp;fOn)&amp;nbsp;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VIDEO_POWER_MANAGEMENT&amp;nbsp;vpm;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;rc,&amp;nbsp;fQueryEsc;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HDC&amp;nbsp;hdc;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Get&amp;nbsp;the&amp;nbsp;display&amp;nbsp;dc.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hdc&amp;nbsp;=&amp;nbsp;GetDC&amp;nbsp;(NULL);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;See&amp;nbsp;if&amp;nbsp;supported.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fQueryEsc&amp;nbsp;=&amp;nbsp;SETPOWERMANAGEMENT;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rc&amp;nbsp;=&amp;nbsp;ExtEscape&amp;nbsp;(hdc,&amp;nbsp;QUERYESCSUPPORT,&amp;nbsp;sizeof&amp;nbsp;(fQueryEsc),&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(LPSTR)&amp;amp;fQueryEsc,&amp;nbsp;0,&amp;nbsp;0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(rc&amp;nbsp;==&amp;nbsp;0)&amp;nbsp;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;No&amp;nbsp;support,&amp;nbsp;fail.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReleaseDC&amp;nbsp;(NULL,&amp;nbsp;hdc);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;-1;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Fill&amp;nbsp;in&amp;nbsp;the&amp;nbsp;power&amp;nbsp;management&amp;nbsp;structure.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vpm.Length&amp;nbsp;=&amp;nbsp;sizeof&amp;nbsp;(vpm);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vpm.DPMSVersion&amp;nbsp;=&amp;nbsp;1;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(fOn)&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vpm.PowerState&amp;nbsp;=&amp;nbsp;VideoPowerOn;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vpm.PowerState&amp;nbsp;=&amp;nbsp;VideoPowerOff;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Tell&amp;nbsp;the&amp;nbsp;driver&amp;nbsp;to&amp;nbsp;turn&amp;nbsp;on&amp;nbsp;or&amp;nbsp;off&amp;nbsp;the&amp;nbsp;display.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rc&amp;nbsp;=&amp;nbsp;ExtEscape&amp;nbsp;(hdc,&amp;nbsp;SETPOWERMANAGEMENT,&amp;nbsp;sizeof&amp;nbsp;(vpm),&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(LPSTR)&amp;amp;vpm,&amp;nbsp;0,&amp;nbsp;0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Always&amp;nbsp;release&amp;nbsp;what&amp;nbsp;you&amp;nbsp;get.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReleaseDC&amp;nbsp;(NULL,&amp;nbsp;hdc);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;0;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;}&lt;/span&gt;&lt;/pre&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 前面的代码通过调用ExtEscape和QUERYESCSUPPORT命令来查询是否支持转移代码。被查询的命令首先交给输入缓冲，如果SETPOWERMANAGEMENT命令被支持，程序就填充VIDEO_POWER_MANAGEMENT结构并再次调用ExtEscape设置电源状态。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 虽然这些转义代码允许应用程序打开或关闭显示，&lt;span&gt;Windows CE没有一个统一的方式来控制背光的亮度。每个系统都有它自己的OEM特有方式来控制背光亮度。如果将来有一种标准的背光亮度控制方式，它将很可能放在ExtEscape函数中。&lt;/span&gt;&lt;/div&gt; &lt;div style="margin: 13pt 0cm"&gt;&lt;strong&gt;打开系统电源&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当系统被挂起，应用程序将不再运行，因此当系统唤醒时，应用程序看起来没有被控制。然而，有一些方式来唤醒一个挂起的设备。首先，一个应用程序通过给定一个时间，并使用11章提到的消息API（Notification API）做系统被唤醒的计划。在一般情况下，OEM厂商会分配一些中断条件，以便管理系统电源打开，或唤醒。这种方式的一个例子是一个系统当防止了一个同步架（synchronization cradle）时被唤醒。&lt;/div&gt; &lt;div style="margin: 13pt 0cm"&gt;&lt;strong&gt;防止系统关闭电源&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 相反的情况，防止系统挂起也是一个问题。Windows CE系统通常被设置为当一段时间没有用户输入就自动挂起。要防止自动挂起，一个应用程序可以周期性地调用一下函数：&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;void&amp;nbsp;WINAPI&amp;nbsp;SystemIdleTimerReset&amp;nbsp;(void);&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;这个函数重设Windows CE用来监视用户输入的定时器。如果定时器到达预先的没有用户输入的间隔，系统会自动挂起。因为挂起超时值可以被改变，一个应用程序需要知道超时值，这样就要多一点调用&lt;span&gt;SystemIdleTimerReset。系统维护三个超时值，这些都能够使用SystemParametersInfo来查询。传递给SystemParametersInfo的常量的不同表现，显示如下：&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;strong&gt;SPI_GETBATTERYIDLETIMEOUT&lt;/strong&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;当系统运行在电池电源状态下，离用户最后输入的时间&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;strong&gt;SPI_GETEXTERNALIDLETIMEOUT&lt;/strong&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;当系统运行在&lt;span&gt;AC电源状态下，离用户最后输入的时间&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;strong&gt;SPI_GETWAKEUPIDLETIMEOUT&lt;/strong&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;在系统再次挂起时离系统被自动唤醒的时间&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;要防止电源被自动挂起，你需要查询这三个值，并在最短时间内返回之前调用&lt;span&gt;SystemIdleTimerReset。如果超时值被设置为0，表示超时值被禁止。&lt;/span&gt;&lt;/div&gt; &lt;div style="margin: 13pt 0cm"&gt;&lt;strong&gt;电源管理程序&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一个新的，独立的电源管理组件在Windows CE .NET 4.0中被引入了。这个电源管理程序替代了许多GWES以前完成的函数。电源管理程序定义了一系列的电源状态，如D0，D1，D2，和D3。这些看起来神秘的名字被对应于一些友好的系统级别名称。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对嵌入式系统来说，OEM厂商定义了系统的电源状态。例如，电源状态可能是打开（On），空闲（Idle）和挂起（Suspend）。其他电源状态也被定义了，像ScreenOff, InCradle, 和 OnBattery。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 从应用程序的观点看，新的电源管理程序提供了通知电源状态改变的能力以及通过一系列的函数统一改变电源状态的能力。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 系统的电源状态被定义在注册表中，SDK定义了&lt;span&gt;PWRMGR_REG_KEY，以致你不得不知道注册表的字符串，但是当常量没定义的时间，电源管理程序注册数据被保留在HKEY_LOCAL_MACHINESystemCurrentControlSetControlPower。电源状态被定义作为子键，位于Key State。&lt;/span&gt;&lt;/div&gt; &lt;div style="margin: 13pt 0cm"&gt;&lt;strong&gt;电源通知&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 电源管理程序一个十分受欢迎的特点是，可以在系统电源状态改变时通知应用程序。这可以让应用程序从手动检测电源状态中解脱出来。一个应用程序可以通过调用RequestPowerNotifications请求电源管理程序当电源状态改变的时候发送一个通知给应用程序。电源管理程序会通过一个由应用程序前面建立的消息队列发送通知。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RequestPowerNotifications原型如下。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HANDLE&amp;nbsp;RequestPowerNotifications&amp;nbsp;(HANDLE&amp;nbsp;hMsgQ,&amp;nbsp;DWORD&amp;nbsp;Flags);&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;第一个参数是一个应用程序在之前建立的消息队列的句柄。第二个参数是一系列参数，表示应用程序想接收的通知。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;strong&gt;PBT_TRANSITION&lt;/strong&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;接受系统电源状态改变的通知。例如，当系统从&lt;span&gt;On到Suspend。&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;strong&gt;PBT_RESUME&lt;/strong&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;当系统&lt;span&gt;resume的时候接收通知。&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;strong&gt;PBT_POWERSTATUSCHANGE &lt;/strong&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;当系统在&lt;span&gt;AC和电池之间切换的时候接收通知。&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;strong&gt;PBT_POWERINFOCHANGE&lt;/strong&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;当系统电池级数变化时接收通知。&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;strong&gt;POWER_NOTIFY_ALL&lt;/strong&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;接收所有的通知。&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;RequestPowerNotifications函数返回一个电源通知的句柄，失败返回&lt;span&gt;NULL。消息队列建立的时候必须使应用程序有读权限，因为应用程序将从消息队列中读取电源通知。&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;要接收通知，应用程序必须使用&lt;span&gt;WaitForSingleObject来阻塞消息句柄。像第10章所讨论的，当通知被放在队列中时，句柄将被signaled。实际的通知将由结构POWER_BROADCAST表中被接收到。&lt;/span&gt;&lt;/div&gt; &lt;div align="left"&gt;typedef&amp;nbsp;struct&amp;nbsp;_POWER_BROADCAST&amp;nbsp;{&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;Message;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;Flags;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;Length;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WCHAR&amp;nbsp;SystemPowerState[1];&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;}&amp;nbsp;POWER_BROADCAST,&amp;nbsp;*PPOWER_BROADCAST;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;第一个要注意的是，这个结构长度是可变的。最后一个字段，SystemPowerState，是被定义为&lt;span&gt;WCHAR&lt;/span&gt;s类型，但是可以填上非字符串数据。第一个字段是通知自己的标识，这个字段可以填前面PBT_标志列表之一。Flags区可以包括以下标志，依赖于被接收的通知：&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;POWER_STATE_ON&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;系统处于on状态。&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;POWER_STATE_OFF&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;系统处于&lt;span&gt;off状态。&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;POWER_STATE_CRITICAL&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;系统进入了一个临界&lt;span&gt;off状态。&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;POWER_STATE_BOOT&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;系统正在启动。&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;POWER_STATE_IDLE&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;系统进入&lt;span&gt;idle状态。&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;POWER_STATE_SUSPEND&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;系统被挂起。&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;POWER_STATE_RESET&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;系统被复位。&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;span&gt;最后两个字段是相互关联的。&lt;span&gt;Length字段是 SystemPowerState字段数据的长度。SystemPowerState中包含的数据依赖于被发送的通知。对于PBT_TRANSITION 通知来说，SystemPowerState字段包含一个新电源状态的标识字符串。这个字符串是以非0结尾的。为了结束字符串，使用Length字段来指 出字符串的长度。注意，Length字段是以字节为单位的，当字符是双字节的Uncode字符时，需要获得字符串字符的长度，就需要用Length字段去 除TCHAR的size。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;对于&lt;span&gt;PBT_POWERINFOCHANGE通知来说，SystemPowerState字段包含一个PPOWER_BROADCAST_POWER_INFO结构：&lt;/span&gt;&lt;/div&gt; &lt;div align="left"&gt;typedef&amp;nbsp;struct&amp;nbsp;_POWER_BROADCAST_POWER_INFO&amp;nbsp;{&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwNumLevels;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwBatteryLifeTime;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwBatteryFullLifeTime;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwBackupBatteryLifeTime;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwBackupBatteryFullLifeTime;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bACLineStatus;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bBatteryFlag;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bBatteryLifePercent;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bBackupBatteryFlag;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bBackupBatteryLifePercent;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;}&amp;nbsp;POWER_BROADCAST_POWER_INFO,&amp;nbsp;*PPOWER_BROADCAST_POWER_INFO;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;注意，这里有一些字段的名字和函数十分相似于前面讨论的SYSTEM_POWER_STATUS_EX2结构。&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="margin: 13pt 0cm"&gt;&lt;strong&gt;设置电源状态&lt;/strong&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 电源管理程序提供的函数也允许应用程序来控制电源状态。有两个方式来控制电源。第一个方式是应用程序给定一个电源设定。第二个方式是应用程序请求电源状态不要低于给定的级别。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一个应用程序通过调用函数SetSystemPowerState可以请求特定的电源状态。这个函数原型如下。&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;pre&gt;&lt;span style="font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD&amp;nbsp;SetSystemPowerState&amp;nbsp;(LPCWSTR&amp;nbsp;psState,&amp;nbsp;DWORD&amp;nbsp;StateFlags,&lt;/span&gt;&lt;/pre&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD&amp;nbsp;Options);&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;电源状态可以被请求通过指定前两个参数。如果第一个参数是非零值，它指向一个字符串标识被请求的状态。这个字符串必须和注册表中列出的电源状态之一相匹配。&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;如果psState 为 NULL，第二个参数&lt;span&gt;StateFlags，定义了请求的电源状态。这个参数是从POWER_STATE_ON直到POWER_STATE_RESET状态其中之一，这些在前面提到的POWER_BROADCAST结构有描述。&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;span&gt;比较特别的是&lt;span&gt;POWER_STATE_RESET标志。这个标 志请求系统重起，使用SetSystemPowerState的方法重起比通过直接使用IOCTL_HAL_REBOOT命令来调用 KernelIoControl的方法更好。调用 SetSystemPowerState  会让系统在重起设备之前任何还在缓冲中的数据保存到文件系统。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&lt;span&gt;调用&lt;span&gt;SetSystemPowerState是一个直接改变电 源状态的方法。更巧妙的方法是通过调用SetPowerRequirement来请求系统维持应用程序所需最低限度的电源状态。 SetSystemPowerState是假定应用程序知道所需状态，而调用SetPowerRequirement是允许系统对电源设定做优化以满足应 用程序的需要。一个使用SetPowerRequirement会比较方便的例子是，一个使用串口的应用程序需要串口在进行通信时保持住电源状态。 SetPowerRequirement被定义如下。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div align="left"&gt;HANDLE&amp;nbsp;SetPowerRequirement&amp;nbsp;(PVOID&amp;nbsp;pvDevice,&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CEDEVICE_POWER_STATE&amp;nbsp;DeviceState,&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG&amp;nbsp;DeviceFlags,&amp;nbsp;PVOID&amp;nbsp;pvSystemState,&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG&amp;nbsp;StateFlags);&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;第一个参数指定了应用程序需要维护电源状态的设备。DeviceState参数定义了设备的电源状态。CEDEVICE_POWER_STATE&lt;span&gt;指定了状态范围是从&lt;span&gt;D0（意 味着设备是处于最大功耗状态）到D4（表示设备被关闭）（译者注：其实D0到D4的状态的具体表现，完全是由OEM厂商可自定义的，对应用程序开发者来 说，比如是在D1关LCD背光还是在D2，都是不确定的，微软只给出标准定义，而不是实际定义）。DeviceFlags参数由两个标志合并而 成：POWER_NAME，表示设备名有效；POWER_FORCE，表示设备应当维持当前状态甚至当系统挂起时。如果pvSystemState不为 NULL，它表示只有对于在pvSystemState中已命名的电源请求才是有效的。设备可能无法更改请求的状态。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;应用程序应当注销通过调用&lt;span&gt;ReleasePowerRequirement来注销请求，原型如下。&lt;/span&gt;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;DWORD&amp;nbsp;ReleasePowerRequirement&amp;nbsp;(HANDLE&amp;nbsp;hPowerReq);&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;这里唯一的参数是从SetPowerRequirement里返回的句柄。&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="text-indent: 21pt"&gt;转自（&lt;a href="http://www.builder.com.cn/2007/1126/655117.shtml" target="_blank"&gt;http://www.builder.com.cn/2007/1126/655117.shtml&lt;/a&gt;）&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/answer/aggbug/2055457.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/answer/archive/2011/05/24/2055457.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/answer/archive/2011/04/19/2020825.html</id><title type="text">[转]分享8个超棒的免费高质量图标搜索引擎</title><summary type="text">在工作中，我们经常需要用到图标素材。你也许能搜到很多的图标资源网站，但要找到免费的高质量图标却很难，这就是为什么我今天要与大家分享这些优秀的免费质量图标搜索引擎，相信在这些网站你能找到你要的东西。如果你知道更多更好的网站，欢迎与我们分享！ FindIcons FindIcons 是我最喜欢的图标搜索引擎，目前已拥有超过 300,000 个图标资源。 IconFinder Iconfinder 能帮助你快速找到需要的高质量图标，目前已拥有超过 150,000 个图标资源。 MrIcons MrIcons 也是非常不错的图标搜索引擎，拥有 125,174 个图标资源。 Iconlet Iconle</summary><published>2011-04-19T05:44:00Z</published><updated>2011-04-19T05:44:00Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/answer/archive/2011/04/19/2020825.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/archive/2011/04/19/2020825.html"/><content type="html">&lt;div&gt;在工作中，我们经常需要用到图标素材。你也许能搜到很多的图标资源网站，但要找到免费的高质量图标却很难，这就是为什么我今天要与大家分享这些优秀的免费质量图标搜索引擎，相信在这些网站你能找到你要的东西。如果你知道更多更好的网站，欢迎与我们分享！ &lt;p&gt;&lt;strong&gt;&lt;a href="http://findicons.com/" target="_blank"&gt;&lt;strong&gt;FindIcons&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;FindIcons 是我最喜欢的图标搜索引擎，目前已拥有超过 300,000 个图标资源。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.findicons.com/" target="_blank"&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/36987/2011040823303098.jpg"  alt="" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.iconfinder.com/" target="_blank"&gt;&lt;strong&gt;IconFinder&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Iconfinder 能帮助你快速找到需要的高质量图标，目前已拥有超过 150,000 个图标资源。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.iconfinder.com/" target="_blank"&gt;&lt;img title="IconFinder" alt="IconFinder" src="http://smashinghub.com/wp-content/uploads/2011/03/IconFinder_thumb.jpg" width="544" border="0" height="249" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mricons.com/" target="_blank"&gt;&lt;strong&gt;MrIcons&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;MrIcons 也是非常不错的图标搜索引擎，拥有 125,174 个图标资源。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.mricons.com/" target="_blank"&gt;&lt;img title="MrIcons" alt="MrIcons" src="http://smashinghub.com/wp-content/uploads/2011/03/MrIcons_thumb.jpg" width="544" border="0" height="341" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.iconlet.com/" target="_blank"&gt;&lt;strong&gt;Iconlet&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Iconlet 是一个查找图标等图片资源的搜索引擎。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.iconlet.com/" target="_blank"&gt;&lt;img title="Iconlet" alt="Iconlet" src="http://smashinghub.com/wp-content/uploads/2011/03/Iconlet_thumb.jpg" width="544" border="0" height="249" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.iconscan.com/" target="_blank"&gt;&lt;strong&gt;IconScan&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;这是一个用于查找 ICO 格式图标的搜索引擎，拥有超过 80,000 个图标文件。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.iconscan.com/" target="_blank"&gt;&lt;img title="IconScan" alt="IconScan" src="http://smashinghub.com/wp-content/uploads/2011/03/IconScan_thumb.jpg" width="504" border="0" height="168" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.iconseeker.com/" target="_blank"&gt;&lt;strong&gt;IconSeeker&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;IconSeeker 是最好的图标搜索引擎，拥有超过 50,000 张图标资源，下载格式有 PNG, ICO&amp;nbsp; 和 ICNS 三种。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.iconseeker.com/" target="_blank"&gt;&lt;img title="Icon-Seeker" alt="Icon-Seeker" src="http://smashinghub.com/wp-content/uploads/2011/03/Icon-Seeker_thumb.jpg" width="504" border="0" height="191" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://icons-search.com/" target="_blank"&gt;&lt;strong&gt;Icons Search&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Icons-Search 是一个帮助你查找高质量图标的在线搜索工具。&lt;/p&gt; &lt;p&gt;&lt;a href="http://icons-search.com/" target="_blank"&gt;&lt;img title="Icons-Search" alt="Icons-Search" src="http://smashinghub.com/wp-content/uploads/2011/03/Icons-Search_thumb.jpg" width="544" border="0" height="249" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.veryicon.com/" target="_blank"&gt;&lt;strong&gt;VeryIcon&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;VeryIcom 是另外一个帮助你搜索高质量图标的网站，拥有超过 20,000 的高质量图标。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.veryicon.com/" target="_blank"&gt;&lt;img title="VeryIcon" alt="VeryIcon" src="http://smashinghub.com/wp-content/uploads/2011/03/VeryIcon_thumb.jpg" width="537" border="0" height="316" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;（编译来源：&lt;a href="http://www.cnblogs.com/lhb25/" target="_blank"&gt;梦想天空&lt;/a&gt;&amp;nbsp; 改编自：&lt;a href="http://smashinghub.com/find-high-quality-icons.htm" target="_blank"&gt;8 Best Search Engines You Should Visit To Find&lt;/a&gt;）&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/answer/aggbug/2020825.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/answer/archive/2011/04/19/2020825.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/answer/archive/2011/03/30/1999834.html</id><title type="text">[转]Win7系统下VS2005_2008不识别WinCE5 SDK</title><summary type="text">最近客户那边遇到了一个问题：在Windows 7操作系统下，使用VS2005/2008开发WinCE智能设备应用程序的时候，识别不到机器上已经安装好了的WinCE5 SDK。问题解决后，将搜集的资料做一下总结。 一 微软网站上的问题描述 Unable to install a Windows CE 5 SDK provided by a vendor on a Windows Vista or Windows 7 machine running Visual Studio 2008. This SDK will install on Windows XP machines with Visua</summary><published>2011-03-30T06:06:00Z</published><updated>2011-03-30T06:06:00Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/answer/archive/2011/03/30/1999834.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/archive/2011/03/30/1999834.html"/><content type="html">&lt;div&gt;&lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: 宋体;"&gt;最近客户那边遇到了一个问题：在&lt;/span&gt;Windows 7&lt;span style="font-family: 宋体;"&gt;操作系统下，使用&lt;/span&gt;VS2005/2008&lt;span style="font-family: 宋体;"&gt;开发&lt;/span&gt;WinCE&lt;span style="font-family: 宋体;"&gt;智能设备应用程序的时候，识别不到机器上已经安装好了的&lt;/span&gt;WinCE5 SDK&lt;span style="font-family: 宋体;"&gt;。问题解决后，将搜集的资料做一下总结。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: 宋体;"&gt;一&lt;/span&gt; &lt;span style="font-family: 宋体;"&gt;微软网站上的问题描述&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span&gt;&lt;span style="font-size: medium;"&gt;Unable  to install a Windows CE 5 SDK provided by a vendor on a Windows Vista  or Windows 7 machine running Visual Studio 2008. This SDK will install  on Windows XP machines with Visual Studio 2008. Though the SDK will  appear in the list of programs that can be uninstalled it will not  appear as a target for a smart device project.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-family: 宋体;"&gt;二&lt;/span&gt; &lt;span style="font-family: 宋体;"&gt;导致此问题的根本原因&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span&gt;&lt;span style="font-size: medium;"&gt;Though  not proven, it would seem that when the installation is run on Windows  Vista or Windows 7 some part of that process is not running at an  appropriately authorized level to successfully install the SDK.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;Specifically, the file C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages\WCE.VC&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;Platform.config does not get updated&lt;span style="font-family: 宋体;"&gt;（注：这个路径是针对&lt;/span&gt;VS2008&lt;span style="font-family: 宋体;"&gt;的）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;三&lt;/span&gt; &lt;span style="font-family: 宋体;"&gt;解决办法&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 &lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;微软提出的解决方法：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To successfully install a CE 5 SDK use the following steps:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;1) Open a command prompt with administrator authority&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;2) Enter the command "msiexec /package SDKinstall.msi" where SDKInstall.msi is the name of the .msi file you wish to install &lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;3) Step through the installation process&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span&gt;&lt;span style="font-size: medium;"&gt;This  process will successfully install the SDK as expected. To check for a  successful installation look for a reference to the SDK in C:\Program  Files\Microsoft Visual Studio 9.0\VC\vcpackages\WCE.VCPlatform.config  assuming Visual Studio is installed in the default location. A smart  device project will now offer the new SDK as a target.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;2 &lt;span style="font-family: 宋体;"&gt;论坛网友&lt;/span&gt;A&lt;span style="font-family: 宋体;"&gt;的建议&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;1. Make sure you install Visual Studio 2005 Service Pack 1 and Visual Studio 2005 Service Pack 1 Update for Windows Vista &lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;2. Run the VS2005 as Administrator (right click on the shortcut to VS2005 and then select "Run as Administrator).&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;The known issue list and more other information can be found from the following link:&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;Visual Studio on Windows Vista and Windows 7 &lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;http://msdn.microsoft.com/en-us/vstudio/aa948853.aspx &lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;If  possible I would recommend you use VS2008 on Windows 7 64-bit. That's  what I am using and VS2008 has no problem recognizing Windows CE SDK.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;3 &lt;span style="font-family: 宋体;"&gt;论坛网友&lt;/span&gt;B&lt;span style="font-family: 宋体;"&gt;的建议&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span&gt;&lt;span style="font-size: medium;"&gt;An  update on this issue I have discovered that it is WCE.VCPlatform.config  is not being updated by the SDK install process on Windows 7. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span&gt;&lt;span style="font-size: medium;"&gt;I  Solved the issue by installing an identical set of SDK's on a Win XP  machine then copied the file to the C:\Program Files\Microsoft Visual  Studio 9.0\VC\vcpackages\WCE.VCPlatform.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;config.&lt;span style="font-family: 宋体;"&gt;（注：此路径也是针对&lt;/span&gt;VS2008&lt;span style="font-family: 宋体;"&gt;的）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;附：我直接采用了网友&lt;/span&gt;B&lt;span style="font-family: 宋体;"&gt;的建议，目前来看已经能够&lt;/span&gt;Win7&lt;span style="font-family: 宋体;"&gt;上开发了，没发现什么由此而产生的问题。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;相关网页地址：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;http://social.msdn.microsoft.com/Forums/zh-SG/vssmartdevicesnative/thread/cf730fd1-6cde-4721-b54d-98281787bd57&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;http://support.microsoft.com/kb/2022719#top&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 21pt;"&gt;&lt;span style="font-size: medium;"&gt;http://msdn.microsoft.com/en-us/vstudio/aa964140&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;转自:&lt;/p&gt;&lt;p&gt;&lt;div&gt;http://blog.csdn.net/joyzml/archive/2010/12/23/6094589.aspx&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/answer/aggbug/1999834.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/answer/archive/2011/03/30/1999834.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/answer/archive/2011/03/04/1970750.html</id><title type="text">[转]windows 7 下ASP.net 本地配置 ( IIS 7)</title><summary type="text">今天调试blend 3的一个Zune3D样例时, 运行后生成的是sliverlight程序, 由于我的机器是刚从vista升级到windows 7, iis都没有配置, 因此无法预览.现给出步骤: (一. 配置IIS) 1. 打开&amp;quot;Control Panel&amp;quot; / &amp;quot;Programs&amp;quot; / &amp;quot;Turn Windows features on or off&amp;quot;, 勾选&amp;quot;Internet Information Services&amp;quot;, windows 7默认勾选里面WMT和WWWS的部分选项. 点击 &amp;quot;Ok&amp;qu</summary><published>2011-03-04T03:47:00Z</published><updated>2011-03-04T03:47:00Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/answer/archive/2011/03/04/1970750.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/archive/2011/03/04/1970750.html"/><content type="html">&lt;div&gt;今天调试blend 3的一个Zune3D样例时, 运行后生成的是sliverlight程序, 由于我的机器是刚从vista升级到windows 7, iis都没有配置, 因此无法预览.现给出步骤:  &lt;p&gt;&lt;span style="font-size: medium;"&gt;(一. 配置IIS)&lt;/span&gt;&lt;/p&gt; &lt;p&gt;1. 打开"Control Panel" / "Programs" / "Turn Windows features on or  off",&amp;nbsp; 勾选"Internet Information Services", windows 7默认勾选里面WMT和WWWS的部分选项.  点击 "Ok", 退出.&lt;/p&gt;  &lt;p&gt;2. 打开"Start / All Program" / "Administrtive Tools" / "Internet  Information Services(IIS) Manager".&amp;nbsp; 也可以直接在 "Start Menu"下直接搜索"IIS"&lt;/p&gt;  &lt;p&gt;3. 点击左边树中"Site"节点, 选择"Default Web Site",&amp;nbsp; 打开后选择"Default Web  Site"右边的Actions, 单击"Start", 如果出现0x80070020的一个错误对话框的话, 是因为端口80被别的应用程序占用,  单击Actions的"Bindings..."按钮, 编辑默认的80端口为其他的端口, 比如81.&lt;/p&gt;  &lt;p&gt;4. 单击Actions的"Restart", 选择"Browse *:81(http)"就会看到IIS的start页面.&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: medium;"&gt;(二, 配置自己的网站Zune3D)&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;1. 右击左边树中的"Application Pools", 选择弹出菜单的"Add Application Pool..."选项, 命名为"Zune3D", 确定退出.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;2. 右击左边树中的"Sites", 选择弹出菜单的"Add Web Site"选项, site name填写"Zune3D", Application pool:选择刚才创建的"Zune3D",&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;Physical path:选择Zune3D所在的目录. &lt;/span&gt;&lt;/span&gt;单 击"Connect as..."按钮后出现"Connect As"对话框,&amp;nbsp; 勾选"Specific user:", 单击"Set",  在弹出的对话框填入本机的管理员权限的用户名和账号. 点击"Ok"后退出"Connect As"对话框,&amp;nbsp; 此时可以单击"Test  Settings"按钮查看刚才配置是否成功. 然后在port:中填入有效端口, 比如82.&lt;/p&gt;  &lt;p&gt;3. 单击左边树"Site"下刚创建的"Zune3D", 选择右边的"Diretory Browsing",  打开后选择"Directory Browsing"右边的Actions, 勾选"Enable". 再次点击左边树的根节点,  选择右边的"Default Document", 打开后选择"Diretory Browsing"右边的Actions, 单击"Add",  填入"Default.html",点击"OK". 点击Actions里的"Move up", 把"Default.html"选项移至顶部.&amp;nbsp; &lt;/p&gt;  &lt;p&gt;4. 单击Actions的"Restart", 选择"Browse *:82(http)"就会看到Zune3D的页面了. &lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;来自： &lt;div&gt;http://blog.csdn.net/muzizongheng/archive/2009/10/30/4746005.aspx&lt;/div&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/answer/aggbug/1970750.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/answer/archive/2011/03/04/1970750.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/answer/archive/2011/02/24/1963598.html</id><title type="text">[转]SQLite存取二进制数据</title><summary type="text">/*程序功能： 使用SQLite的C API操作SQLite数据库，存取二进制数据. 用来测试的文件都小于65535字节，没有测试更大的文件!参考文档： http://www.cntxk.com/CataNews/56/info8106.html编译环境： codeblock 10.05(svn 6906)*/#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;memory.h&amp;gt;#include &amp;lt;sqlite3.h&amp;gt;int main(int argc,char *argv[]){ sqlite3* pDB=NULL; char* pErrMsg; if</summary><published>2011-02-24T03:37:00Z</published><updated>2011-02-24T03:37:00Z</updated><author><name>answer</name><uri>http://www.cnblogs.com/answer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/answer/archive/2011/02/24/1963598.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/answer/archive/2011/02/24/1963598.html"/><content type="html">&lt;div&gt;/*&lt;br /&gt;程序功能：&amp;nbsp;&amp;nbsp; 使用SQLite的C API操作SQLite数据库，存取二进制数据.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 用来测试的文件都小于65535字节，没有测试更大的文件!&lt;br /&gt;参考文档：&amp;nbsp;&amp;nbsp; http://www.cntxk.com/CataNews/56/info8106.html&lt;br /&gt;编译环境：&amp;nbsp;&amp;nbsp; codeblock 10.05(svn 6906)&lt;br /&gt;*/&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;memory.h&amp;gt;&lt;br /&gt;#include &amp;lt;sqlite3.h&amp;gt;&lt;br /&gt;&lt;br /&gt;int main(int argc,char *argv[])&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3*&amp;nbsp;&amp;nbsp;&amp;nbsp; pDB=NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pErrMsg;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(SQLITE_OK==sqlite3_open("./mydb.db",&amp;amp;pDB))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_exec(pDB,"create table bList(fileName varchar(16) primary key, binData blob);",NULL,NULL,&amp;amp;pErrMsg);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[65535];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iLen=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_stmt*&amp;nbsp;&amp;nbsp; stmt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {//存储二进制数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char hex[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_prepare(pDB,"insert into bList values ('hex',?);",-1,&amp;amp;stmt,NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_bind_blob(stmt,1,hex,16,NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_step(stmt);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stmt=NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {//存储exe文件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memset(buffer,0,65535);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE* fp=fopen(argv[0],"rb");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iLen=fread(buffer,1,65535,fp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose(fp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_prepare(pDB,"insert into bList values ('me.exe',?);",-1,&amp;amp;stmt,NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_bind_blob(stmt,1,buffer,iLen,NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_step(stmt);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stmt=NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {//存储普通c文档&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memset(buffer,0,65535);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE* fp=fopen("../main.c","rb");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iLen=fread(buffer,1,65535,fp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose(fp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_prepare(pDB,"insert into bList values ('main.txt',?);",-1,&amp;amp;stmt,NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_bind_blob(stmt,1,buffer,iLen,NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_step(stmt);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stmt=NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {//从数据库中读取txt文件数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *data=NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memset(buffer,0,65535);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_prepare(pDB, "select binData from bList where fileName='main.txt';", -1, &amp;amp;stmt, 0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_step(stmt);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data= (char *)sqlite3_column_blob(stmt,0);//得到纪录中的BLOB字段&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iLen= sqlite3_column_bytes(stmt, 0);//得到字段中数据的长度&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memmove(buffer,data,iLen);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%s\n",buffer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlite3_close(pDB);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; puts("Press any key to exit...");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getchar();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;br /&gt;}&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;From:&lt;/p&gt;&lt;p&gt;&lt;div&gt;http://hi.baidu.com/ejoywx/blog/item/4d7b418c8677cc00b31bbae9.html&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/answer/aggbug/1963598.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/answer/archive/2011/02/24/1963598.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
