学习文章:
http://blog.sina.com.cn/s/blog_5f0215c70100d3j7.html
WINCE与WM的差异(1)-查询文件系统目录结构
MSDN :http://msdn.microsoft.com/zh-cn/office/ee490204 Storage Manager Functions (Windows Embedded Compact 7)
(msdn,我用的太悲剧了,每次都不能快速的在目录索引下找到WinCE的目录,但偶尔翻的翻的就不知道怎么翻到WinCE的目录了,7也是。。。)
HANDLE h_store; STOREINFO StoreInfo; StoreInfo.cbSize = sizeof (STOREINFO); h_store = FindFirstStore(&StoreInfo); if (h_store !=INVALID_HANDLE_VALUE) { printf ( "查找Store成功 \n" ); printf ( "szDeviceName =%ls\n" , StoreInfo.szDeviceName); printf ( "szStoreName =%ls\n" , StoreInfo.szStoreName); printf ( "dwDeviceClass =%d\n" , StoreInfo.dwDeviceClass); printf ( "dwDeviceType =%d\n" , StoreInfo.dwDeviceType); printf ( "dwDeviceFlags =%d\n" , StoreInfo.dwDeviceFlags); printf ( "dwPartitionCount =%d\n" , StoreInfo.dwPartitionCount); printf ( "dwMountCount =%d\n" , StoreInfo.dwMountCount); /* szDeviceName =DSK1: szStoreName =EMULATOR SHARED FOLDER FS dwDeviceClass =2 dwDeviceType =536870912 dwDeviceFlags =1 dwPartitionCount =1 dwMountCount =1*/ HANDLE h_openStore; h_openStore = OpenStore(L "DSK1:" ); HANDLE h_part; PARTINFO PartInfo; PartInfo.cbSize = sizeof (PARTINFO); h_part = FindFirstPartition(h_openStore,&PartInfo); //FindFirstPartition第一个参数是OpenStore的返回值,不能用FindFirstStore的返回值 if (h_part !=INVALID_HANDLE_VALUE) { printf ( "查找第一个Store分区成功\n" ); do { printf ( "szPartitionName =%ls\n" , PartInfo.szPartitionName); printf ( "szFileSys =%ls\n" , PartInfo.szFileSys); printf ( "szVolumeName =%d\n" , PartInfo.szVolumeName); } while (FindNextPartition(h_part,&PartInfo)); /*szPartitionName =PART00 szFileSys =VCEFSD.dll szVolumeName =324996*/ } else { printf ( "查找第一个Store分区失败\n" ); } FindClosePartition(h_part); } if (FindNextStore(h_store,&StoreInfo)) { printf ( "不止唯一Store\n" ); } else { printf ( "只有一个Store\n" ); } FindCloseStore(h_store); |
输出的是模拟器的信息
还没结束,今天没时间测试了,也没机器,
工作的机器放资源的分区是隐藏的,每次放资源或程序的时候感觉忒麻烦。。尤其是心情烦躁的时候。
目标:做一个程序,一点击就修改注册表键值 ,将对应分区注册表隐藏设置为显示,然后卸载分区,再加载分区,应该会方便。
明天继续
---------------------------------------------------------------------------------------------------------------------------------
//将要显示的分区的注册表隐藏设置为假。
void CPartitionControlDlg::ChangeRegKeyValue() { HKEY hOpenKey; DWORD dwKeyValueType = 0; DWORD dwKeyValue; DWORD dwKeyValueLength = sizeof ( DWORD ); if (ERROR_SUCCESS == RegOpenKeyEx( HKEY_LOCAL_MACHINE, L "System\\StorageManager\\Profiles\\Nand\\NANDFATFS" ,0, 0, &hOpenKey )) { long lResult = 0; lResult = RegQueryValueExW( hOpenKey, L "MountHidden" , 0, &dwKeyValueType,( BYTE *)&dwKeyValue, &dwKeyValueLength); if (lResult ==ERROR_SUCCESS) { printf ( "读取注册表成功,achKey = %d\n" ,dwKeyValue); dwKeyValue = 0; RegSetValueExW(hOpenKey,L "MountHidden" ,0,dwKeyValueType,( BYTE *)&dwKeyValue,dwKeyValueLength); } else { printf ( "读取失败 :lResult = %d\n" ,lResult); } //RegSetValueEx(hKey, TEXT("Screen"), 0, dwType, (LPBYTE)&dwData, dwDataLen); RegCloseKey( hOpenKey ); } } |
//卸载、加载指定分区
void CPartitionControlDlg::OnBnClickedButton2() { // TODO: Add your control notification handler code here ChangeRegKeyValue(); HANDLE h_openStore; h_openStore = OpenStore(L "DSK1:" ); HANDLE h_NandPart; PARTINFO PartInfo; PartInfo.cbSize = sizeof (PARTINFO); h_NandPart = OpenPartition(h_openStore,L "Part01" ); if (DismountPartition(h_NandPart)) { printf ( "NAND分区卸载成功\n" ); } else { printf ( "NAND分区卸载失败\n" ); MessageBox(L "显示NAND失败" ); CloseHandle(h_NandPart); CloseHandle(h_openStore); return ; } if (MountPartition(h_NandPart)) { printf ( "NAND分区加载成功\n" ); } else { printf ( "NAND分区加载失败\n" ); MessageBox(L "显示NAND失败" ); CloseHandle(h_NandPart); CloseHandle(h_openStore); return ; } CloseHandle(h_NandPart); CloseHandle(h_openStore); MessageBox(L "显示NAND成功" ); } |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ezhong的博客签名-------------------------------------
以上内容来自ezhong的博客园,作者:ezhong
ezhong的博客园: http://www.cnblogs.com/ezhong
感谢您的阅读。感谢您的分享。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步