用GetVolumeInformation 获取卷标 的疑惑
//对话框程序
void CMyColorDlg::OnButton1()
{
char szLabel[64];
char szFSName[64];
DWORD dwSerialNumber;
DWORD dwMaxLength;
DWORD dwFlags;
memset(szLabel,0,64);
if ( !GetVolumeInformation("C:",szLabel,64,&dwSerialNumber,&dwMaxLength,
&dwFlags,szFSName,64) )
Beep(1000,100); //调用失败则响铃提醒
SetDlgItemText(IDC_STATUS,szLabel); //将卷标显示在文本标签
}
//Win32API程序
.........
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
........
char szLabel[64];
char szFSName[64];
char szTemp[32];
DWORD dwSerialNumber;
DWORD dwMaxLength;
DWORD dwFlags;
memset(szLabel,0,64);
memset(szFSName,0,64);
memset(szTemp,0,32);
switch (message)
{
case WM_COMMAND:
break;
case WM_PAINT:
hdc = BeginPaint(hWnd,&ps);
GetVolumeInformation("C:\\",szLabel,64,&dwSerialNumber,
&dwMaxLength,&dwFlags,szFSName,64);
TextOut(hdc,0,10,"卷标名称",strlen("卷标名称"));
TextOut(hdc,130,10,szLabel,strlen(szLabel));
EndPaint(hWnd,&ps);
break;
........
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
-------------------------------------------------------------------------
我的windowsXP 装在C盘 卷标是 本地磁盘,(装好系统未修改过C盘卷标)
问题1:
调用上面对话框程序("C:\\") , ,
若 装好系统未修改过C盘卷标,文本标签没动静,换成其他盘符,显示正常,
然后我手动对C盘重命名一个卷标,调用上面对话框程序,显示正常了。这很奇怪!
问题2:
Win32API程序 中 将第一个参数改为"D:" [not "D:\\"] ,显示正常
但在 对话框 就会 失败,不知为什么?
void CMyColorDlg::OnButton1()
{
char szLabel[64];
char szFSName[64];
DWORD dwSerialNumber;
DWORD dwMaxLength;
DWORD dwFlags;
memset(szLabel,0,64);
if ( !GetVolumeInformation("C:",szLabel,64,&dwSerialNumber,&dwMaxLength,
&dwFlags,szFSName,64) )
Beep(1000,100); //调用失败则响铃提醒
SetDlgItemText(IDC_STATUS,szLabel); //将卷标显示在文本标签
}
//Win32API程序
.........
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
........
char szLabel[64];
char szFSName[64];
char szTemp[32];
DWORD dwSerialNumber;
DWORD dwMaxLength;
DWORD dwFlags;
memset(szLabel,0,64);
memset(szFSName,0,64);
memset(szTemp,0,32);
switch (message)
{
case WM_COMMAND:
break;
case WM_PAINT:
hdc = BeginPaint(hWnd,&ps);
GetVolumeInformation("C:\\",szLabel,64,&dwSerialNumber,
&dwMaxLength,&dwFlags,szFSName,64);
TextOut(hdc,0,10,"卷标名称",strlen("卷标名称"));
TextOut(hdc,130,10,szLabel,strlen(szLabel));
EndPaint(hWnd,&ps);
break;
........
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
-------------------------------------------------------------------------
我的windowsXP 装在C盘 卷标是 本地磁盘,(装好系统未修改过C盘卷标)
问题1:
调用上面对话框程序("C:\\") , ,
若 装好系统未修改过C盘卷标,文本标签没动静,换成其他盘符,显示正常,
然后我手动对C盘重命名一个卷标,调用上面对话框程序,显示正常了。这很奇怪!
问题2:
Win32API程序 中 将第一个参数改为"D:" [not "D:\\"] ,显示正常
但在 对话框 就会 失败,不知为什么?
...全文
相关推荐
如何获取硬盘卷标、序列号和文件系统类型?
获取硬盘卷标硬盘卷标通常是用户为磁盘分区设置的一个名称标识,方便识别不同的分区。在Windows操作系统中,可以使用`GetVolumeInformation`函数来获取卷标。
精彩编程与编程技巧-获得驱动器的卷标...
#### 二、API函数GetVolumeInformation介绍`GetVolumeInformation`是Windows操作系统提供的一个API函数,用于获取指定驱动器的卷标、卷序列号、文件系统标志以及文件系统名等信息
精彩编程与编程技巧-如何获取硬盘卷标、序列号和文件系统类型?...
### 如何获取硬盘卷标、序列号和文件系统类型?在计算机编程中,有时我们需要获取当前硬盘或磁盘分区的一些基本信息,例如卷标(即通常所说的盘符名称)、序列号以及所使用的文件系统类型等。
VB 枚举系统驱动器,并设置磁盘卷标源代码.rar
该项目使用VB6或VBA调用Windows API函数实现枚举系统驱动器,并通过SetVolumeLabel设置磁盘卷标,结合GetVolumeInformation获取磁盘信息。核心功能集中在API
VB硬盘信息显示与卷标设定
摘要:VB源码,系统相关,硬盘,卷标 VB编写的一个与硬盘属性信息读取的小程序,硬盘信息的显示与卷标的设定,调用GetVolumeInformation函数,获得所选盘符的卷标、分区格式信息,变量i


