|
15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」
[Q]
Windows 95 での シリアル番号・ホ゛リュームラヘ゛ルの取得方法
[A]
Win32API の GetVolumeInformation を使用します。
BOOL GetVolumeInformation( LPCTSTR lpRootPathName,
LPTSTR lpVolumeNameBuffer,
DWORD nVolumeNameSize,
LPDWORD lpVolumeSerialNumber,
LPDWORD lpMaximumComponentLength,
LPDWORD lpFileSystemFlags,
LPTSTR lpFileSystemNameBuffer,
DWORD nFileSystemNameSize );
----------------------------------------------------------------------
lpRootPathName: 取得するドライブを指定
NULL終端文字列としてください。
'A:\'と直接定数を記述しても良いです。
lpVolumeNameBuffer: ボリュームラベルを格納する領域
NULL終端文字列としてください。
nVolumeNameSize: lpVolumeNameBufferのハ゛イト数を指定
lpVolumeSerialNumber: シリアル番号を格納する領域
DWordとしてください。
lpMaximumComponentLength: Long File名などを使用するOSの場合の
名前の最大文字数を格納する領域
DWordとしてください。
lpFileSystemFlags,lpFileSystemNameBuffer,nFileSystemNameSize
については、Helpを参照してください。
[例]
{--------------------------------------------------------------------------
フォームに Edit1,Label1,Button1 を配置し、Button1のclickなどで呼び出
して下さい。}
Var
lpRootPathName,
lpVolumeNameBuffer : array [0..255] Of Char;
lpVolumeSerialNumber,
lpMaximumComponentLength,
lpFileSystemFlags: DWord;
begin
StrPCopy(lpRootPathName,Edit1.Text); {Edit1.Text は C:\ のようにする}
if GetVolumeInformation(lpRootPathName,
lpVolumeNameBuffer,
SizeOf(lpVolumeNameBuffer),
@lpVolumeSerialNumber,
lpMaximumComponentLength,
lpFileSystemFlags, nil,0) Then
Label1.Caption := StrPas(lpVolumeNameBuffer) + ' : '
+ IntToHex(lpVolumeSerialNumber,4) + ' : '
+ IntToStr(lpMaximumComponentLength)
Else
ShowMessage(Edit1.Text + 'はマウントされていません');
end;
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。
Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会
|