<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Sephil的自由空间</title><subtitle type="text">我的生活，我的梦想</subtitle><id>http://feed.cnblogs.com/blog/u/13834/rss</id><updated>2011-04-03T05:54:02Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/13834/rss"/><entry><id>http://www.cnblogs.com/sephil/archive/2011/04/03/2004384.html</id><title type="text">VC CListCtrl 第一列列宽自适应</title><summary type="text">今天用VC写工具的时候用到CListView,并且ListCtrl的第一列需要自动拉伸,以占满空白区域Delphi做这个设置是很容易的,只要将Column的AutoSize设置为True就可以了不过VC/SDK的AutoSize其实是根据Item的文本长度来自动设置Column Width,跟我的要求不符,只好自己实现了其实很简单,就是觉得麻烦...voidCMyView::AdjustColumnWidth(){RECTrc;CListCtrl&amp;amp;list=GetListCtrl();CHeaderCtrl*pHeader=list.GetHeaderCtrl();if(!pHeade</summary><published>2011-04-03T05:52:00Z</published><updated>2011-04-03T05:52:00Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sephil/archive/2011/04/03/2004384.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/archive/2011/04/03/2004384.html"/><content type="html">&lt;p&gt;今天用VC写工具的时候用到CListView,并且ListCtrl的第一列需要自动拉伸,以占满空白区域&lt;/p&gt;&#xD;
&lt;p&gt;Delphi做这个设置是很容易的,只要将Column的AutoSize设置为True就可以了&lt;/p&gt;&#xD;
&lt;p&gt;不过VC/SDK的AutoSize其实是根据Item的文本长度来自动设置Column Width,跟我的要求不符,只好自己实现了&lt;/p&gt;&#xD;
&lt;p&gt;其实很简单,就是觉得麻烦...&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;CMyView::AdjustColumnWidth()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RECT&amp;nbsp;rc;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CListCtrl&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;list&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetListCtrl();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CHeaderCtrl&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;pHeader&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;list.GetHeaderCtrl();&lt;br /&gt;&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;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;pHeader)&lt;br /&gt;&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;return&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;客户区域&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.GetClientRect(&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000"&gt;rc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;nColCount&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;pHeader&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;GetItemCount();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;去掉其他列占用的宽度&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;nColCount;&amp;nbsp;i&lt;/span&gt;&lt;span style="color: #000000"&gt;++&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&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;rc.right&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;list.GetColumnWidth(i);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;去掉滚动条占用的宽度&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCROLLBARINFO&amp;nbsp;sbi;&lt;br /&gt;&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;&amp;nbsp;(list.GetScrollBarInfo(OBJID_VSCROLL,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000"&gt;sbi))&lt;br /&gt;&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;rc.right&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;sbi.rcScrollBar.right&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;sbi.rcScrollBar.left;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;修改列宽&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.SetColumnWidth(&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;rc.right&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;rc.left&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;rc.right&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;rc.left&amp;nbsp;:&amp;nbsp;LVSCW_AUTOSIZE_USEHEADER);&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;使用方法:在OnSize消息中调用一下AdjustColumnWidth就好了&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;CMyView::OnSize(UINT&amp;nbsp;nType,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;cx,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;cy)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CListView::OnSize(nType,&amp;nbsp;cx,&amp;nbsp;cy);&lt;br /&gt;&lt;br /&gt;&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;&amp;nbsp;(GetListCtrl().GetSafeHwnd())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AdjustColumnWidth();&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sephil/aggbug/2004384.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sephil/archive/2011/04/03/2004384.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sephil/archive/2011/03/18/1988350.html</id><title type="text">WriteFile写磁盘扇区是87错误的原因</title><summary type="text">今天在写个工具,功能是将一些数据写到磁盘的绝对扇区上.但是发现ReadFile没问题,可是WriteFile总是报87错误(参数不正确).Google上查了一会,发现碰到问题的人不少,可惜没有正确答案....没辙,还是啃MSDN,终于还是自己解决了~呵呵赶紧记下来,免得忘了...其实主要是写入的数据大小,必须是BytesOfSector大小的倍数,一般是512字节,ReadFile却无所谓...另外,MSDN上还说,WriteFile前最好先用FSCTL_LOCK_VOLUME或者FSCTL_DISMOUNT_VOLUME将磁盘锁定或卸载,不过我试下来好像没什么影响...代码摘录如下:1UIN</summary><published>2011-03-18T10:18:00Z</published><updated>2011-03-18T10:18:00Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sephil/archive/2011/03/18/1988350.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/archive/2011/03/18/1988350.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: Arial"&gt;今天在写个工具,功能是将一些数据写到磁盘的绝对扇区上.&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: Arial"&gt;但是发现ReadFile没问题,可是WriteFile总是报87错误(参数不正确).&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: Arial"&gt;Google上查了一会,发现碰到问题的人不少,可惜没有正确答案....&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: Arial"&gt;没辙,还是啃MSDN,终于还是自己解决了~呵呵&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: Arial"&gt;赶紧记下来,免得忘了...&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: Arial"&gt;其实主要是写入的数据大小,必须是BytesOfSector大小的倍数,一般是512字节,ReadFile却无所谓...&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: Arial"&gt;另外,MSDN上还说,WriteFile前最好先用&lt;/span&gt;&lt;strong style="font-family: Arial"&gt;FSCTL_LOCK_VOLUME&lt;/strong&gt;&lt;span style="font-family: Arial"&gt;或者&lt;/span&gt;&lt;strong&gt;FSCTL_DISMOUNT_VOLUME&lt;/strong&gt;将磁盘锁定或卸载,不过我试下来好像没什么影响...&lt;/p&gt;&#xD;
&lt;p&gt;&lt;font face="Arial"&gt;代码摘录如下:&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;UINT&amp;nbsp;CDevInfo::Write(LPVOID&amp;nbsp;pData,&amp;nbsp;UINT&amp;nbsp;nSize)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&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;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;pData&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;nSize&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&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;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TCHAR&amp;nbsp;szDevName[&lt;/span&gt;&lt;span style="color: #800080"&gt;30&lt;/span&gt;&lt;span style="color: #000000"&gt;];&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_stprintf(szDevName,&amp;nbsp;_T(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;\\\\.\\PHYSICALDRIVE%d&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;),&amp;nbsp;m_nDevNum); // DeviceNumber&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HANDLE&amp;nbsp;hDev&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;::CreateFile(szDevName,&amp;nbsp;GENERIC_WRITE,&amp;nbsp;FILE_SHARE_READ&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FILE_SHARE_WRITE,&amp;nbsp;NULL,&amp;nbsp;OPEN_EXISTING,&amp;nbsp;NULL,&amp;nbsp;NULL);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&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;&amp;nbsp;(hDev&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;INVALID_HANDLE_VALUE)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&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;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;dwCount;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;14&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&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;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;::DeviceIoControl(hDev,&amp;nbsp;FSCTL_LOCK_VOLUME,&amp;nbsp;NULL,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;NULL,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000"&gt;dwCount,&amp;nbsp;NULL))&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&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;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DWORD&amp;nbsp;dwWritten(&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;18&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::SetFilePointer(hDev,&amp;nbsp;SECTOR_NUM&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetSectorSize(),&amp;nbsp;NULL,&amp;nbsp;FILE_BEGIN);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;19&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&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;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;::WriteFile(hDev,&amp;nbsp;pData,&amp;nbsp;nSize,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000"&gt;dwWritten,&amp;nbsp;NULL))&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;20&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwWritten&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;21&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;22&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::DeviceIoControl(hDev,&amp;nbsp;FSCTL_UNLOCK_VOLUME,&amp;nbsp;NULL,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;NULL,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000"&gt;dwCount,&amp;nbsp;NULL);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;23&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::CloseHandle(hDev);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;24&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;dwWritten;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;25&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;strong&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;img src="http://www.cnblogs.com/sephil/aggbug/1988350.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sephil/archive/2011/03/18/1988350.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sephil/archive/2009/10/14/1583007.html</id><title type="text">批量更改文件名的批处理文件</title><summary type="text">最近下了不少动画，不过文件名都太长，一般都是 [字幕组][名称][集数][语言][分辨率][编码].后缀 这样的格式我喜欢简单的名字，比如 01.rmvb 之类，可是手动改很麻烦，于是就写了这个 bat，希望对大家有帮助2009-10-16:* 修正了更改文件名部分+ 增加了几个取得名称的方法，在REM注释节[代码]新建个 bat，将以上代码复制至其中即可运行，参数可适当修改</summary><published>2009-10-14T02:20:00Z</published><updated>2009-10-14T02:20:00Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sephil/archive/2009/10/14/1583007.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/archive/2009/10/14/1583007.html"/></entry><entry><id>http://www.cnblogs.com/sephil/archive/2009/05/25/fr.html</id><title type="text">替代Windows运行功能的工具FastRun</title><summary type="text">周末在家写的一个工具，用来替换Windows标准的运行功能</summary><published>2009-05-25T15:47:00Z</published><updated>2009-05-25T15:47:00Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sephil/archive/2009/05/25/fr.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/archive/2009/05/25/fr.html"/></entry><entry><id>http://www.cnblogs.com/sephil/archive/2009/05/24/1488378.html</id><title type="text">关于 API 中返回字串的一些问题</title><summary type="text">这几天在写个东西，其中有个函数，有这么几句[代码]但是调试发现FullPath总是得于PathName，就是说ExtNames[i]没被加上。。。花了2小时才发现问题。原来PathName是调用ExpandEnvironmentStrings得到的[代码]查MSDN发现，ExpandEnvironmentStrings返回的长度是包括了\0的。。。所以返回的结果最后有个\0，不管你在后面加什么，编...</summary><published>2009-05-24T11:18:00Z</published><updated>2009-05-24T11:18:00Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sephil/archive/2009/05/24/1488378.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/archive/2009/05/24/1488378.html"/></entry><entry><id>http://www.cnblogs.com/sephil/archive/2009/05/21/hide_on_tray.html</id><title type="text">BCB/Delphi2007 隐藏任务栏图标</title><summary type="text">记得以前在D7下,要隐藏任务栏图标只需要一句但是今天试了试,在D2007下无效了...</summary><published>2009-05-21T11:23:00Z</published><updated>2009-05-21T11:23:00Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sephil/archive/2009/05/21/hide_on_tray.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/archive/2009/05/21/hide_on_tray.html"/></entry><entry><id>http://www.cnblogs.com/sephil/archive/2009/05/13/oga.html</id><title type="text">OGA &amp; WGA Crack</title><summary type="text">最近我也受到 M$ OGA / WGA 影响,于是去网上找了个补丁,现在我的 Windows 和 Office 验证都能通过了...不过我的 Windows XP 是从别人那的公司 Copy 来的正版,怎么会验证不通过捏...Office 验证破解补丁: OGA_171110for Office2003 SP3 / Office2007 SP1Windows 验证破解补丁: WGA_1991for...</summary><published>2009-05-13T02:50:00Z</published><updated>2009-05-13T02:50:00Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sephil/archive/2009/05/13/oga.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/archive/2009/05/13/oga.html"/></entry><entry><id>http://www.cnblogs.com/sephil/archive/2009/05/05/all_soft.html</id><title type="text">所有小工具</title><summary type="text">点击这里查看列表</summary><published>2009-05-05T08:36:00Z</published><updated>2009-05-05T08:36:00Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sephil/archive/2009/05/05/all_soft.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/archive/2009/05/05/all_soft.html"/></entry><entry><id>http://www.cnblogs.com/sephil/archive/2009/05/05/uconv.html</id><title type="text">迅雷/快车/旋风地址转换器</title><summary type="text">一个用来转换迅雷/快车/旋风下载地址的小工具</summary><published>2009-05-05T08:20:00Z</published><updated>2009-05-05T08:20:00Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sephil/archive/2009/05/05/uconv.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/archive/2009/05/05/uconv.html"/></entry><entry><id>http://www.cnblogs.com/sephil/archive/2009/04/01/ora01033.html</id><title type="text">oracle ora-01033和ora-00600错误</title><summary type="text">下午服务器重启之后oracle一登录就报ora-01033 oracle initialization or shutdown in progress 错误于是网上查了查,说是有文件损坏.按照指示执行下来,在alter database open;时又出现00600错误继续网上搜,却始终没有找到正确的解决方法.后来问dba,dba说把系统时间改正确果然改了后重启oracle,然后一切就ok了...</summary><published>2009-04-01T08:52:00Z</published><updated>2009-04-01T08:52:00Z</updated><author><name>Sephil</name><uri>http://www.cnblogs.com/sephil/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sephil/archive/2009/04/01/ora01033.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sephil/archive/2009/04/01/ora01033.html"/></entry></feed>
