Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
디스크 드라이브의 볼륨명 알기
제목되로 하드나 풀로피나 씨디롬의 볼륨명을 알고 싶습니다.
그럼 많은 조언 부탁드립니다.
1
COMMENTS
김영대
•
1999.11.16 03:20
한 wrote:
> 제목되로 하드나 풀로피나 씨디롬의 볼륨명을 알고 싶습니다.
> 그럼 많은 조언 부탁드립니다.
// 아래에서 GetVolumeInfo 를 보세요
unit GetInfo;
interface
uses
Windows, Messages, SysUtils, Classes, Registry;
type
SystemInfoRecord = record
VolumeName, // 디스크 볼륨명
VolumeSerial, // 디스크 시리얼번호
FileSystemName, // 파일구조
Drives : shortstring;// 디스크명들
ProcessorType : shortstring;// CPU 타입(MMX나 P-II는 안됨)
Version, // 윈도우 버전
Plattform : shortstring;// 윈도우 종류
PlattId : DWORD; // 현 플랫폼 ID
ComputerName, // 컴퓨터 이름
FPU, // FPU 유무
UserName, // 사용자 이름
CompanyName, // 회사이름
CDSerial : shortstring;// 윈도우 시디 시리얼번호
TotalPhys, // 총 메모리
AvailPhys, // 이용할 수 있는 메모리
TotalVirtual, // 총 가상메모리
AvailVirtual, // 이용할 수 있는 가상메모리
MemoryLoad : DWORD; // 메모리 적재율
BiosDate, // 마더보더의 바이오스 날짜
BiosName, // 마더보더의 바이오스 이름
BiosVer, // 마더보더의 바이오스 버전
BusType, // 버스타입
CPU, // 바이오스에 나타난 CPU종류
MachineType : shortstring;// 바이오스에 나타난 컴종류
end;
var
SysInfoRec: SystemInfoRecord;
function GetAllSystemInfo: SystemInfoRecord; stdcall;
implementation
var
OSVerInfo: TOSVersionInfo;
function GetRegStr(Key, St: string): string;
begin
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(Key, False) then result := ReadString(St);
finally
Free;
end;
end;
procedure GetComputerName;
var
Computer : PChar;
CSize : DWORD;
begin
CSize := MAX_COMPUTERNAME_LENGTH + 1;
try
GetMem( Computer, CSize );
if Windows.GetComputerName( Computer, CSize ) then
SysInfoRec.ComputerName := Computer;
finally
FreeMem( Computer );
end;
end;
procedure GetVolumeInfo;
var
lpRootPathName : PChar;
lpVolumeNameBuffer : PChar;
nVolumeNameSize : DWORD;
lpVolumeSerialNumber : DWORD;
lpMaximumComponentLength : DWORD;
lpFileSystemFlags : DWORD;
lpFileSystemNameBuffer : PChar;
nFileSystemNameSize : DWORD;
begin
try
GetMem( lpVolumeNameBuffer, MAX_PATH + 1 );
GetMem( lpFileSystemNameBuffer, MAX_PATH + 1 );
nVolumeNameSize := MAX_PATH + 1;
nFileSystemNameSize := MAX_PATH + 1;
lpRootPathName := PChar( 'C:' );
if Windows.GetVolumeInformation( lpRootPathName,
lpVolumeNameBuffer,
nVolumeNameSize,
@lpVolumeSerialNumber,
lpMaximumComponentLength,
lpFileSystemFlags,
lpFileSystemNameBuffer,
nFileSystemNameSize ) then
begin
with SysInfoRec do begin
VolumeName := lpVolumeNameBuffer;
VolumeSerial := IntToHex(HiWord(lpVolumeSerialNumber), 4) + '-' +
IntToHex(LoWord(lpVolumeSerialNumber), 4);
FileSystemName := lpFileSystemNameBuffer;
end;
end;
finally
FreeMem( lpVolumeNameBuffer );
FreeMem( lpFileSystemNameBuffer );
end;
end;
procedure GetOSVersionInfo;
function Plat(Pl: DWORD): string;
begin
case Pl of
VER_PLATFORM_WIN32s: result := 'Windows 3.1';
VER_PLATFORM_WIN32_WINDOWS: result := 'Windows 95';
VER_PLATFORM_WIN32_NT: result := 'Windows NT';
else result := '???';
end;
end;
begin
with OSVerInfo, SysInfoRec do begin
dwOSVersionInfoSize := SizeOf(OSVerInfo);
if GetVersionEx(OSVerInfo) then;
Version := Format('%d.%d (%d.%s)',[dwMajorVersion, dwMinorVersion,
(dwBuildNumber and $FFFF), szCSDVersion]);
Plattform := Plat(dwPlatformId);
PlattID := dwPlatformId;
end;
end;
procedure GetDriveNames;
var
D1 : set of 0..25;
D2 : integer;
begin
DWORD( D1 ) := Windows.GetLogicalDrives;
with SysInfoRec do begin
Drives := '';
for D2 := 0 to 25 do
if D2 in D1 then
Drives := Drives + Chr( D2 + Ord( 'A' )) + ': ';
end;
end;
procedure GetSystemInfo;
var TmpStr: string;
MProc: string;
LocalSI: TSystemInfo;
const
PROCESSOR_INTEL_386 = 386;
PROCESSOR_INTEL_486 = 486;
PROCESSOR_INTEL_PENTIUM = 586;
PROCESSOR_MIPS_R4000 = 4000;
PROCESSOR_ALPHA_21064 = 21064;
begin
Windows.GetSystemInfo(LocalSI);
with LocalSI, SysInfoRec do begin
case dwProcessorType of
PROCESSOR_INTEL_386 : ProcessorType := ' 386';
PROCESSOR_INTEL_486 : ProcessorType := ' 486';
PROCESSOR_INTEL_PENTIUM : ProcessorType := ' Pentium';
PROCESSOR_MIPS_R4000 : ProcessorType := ' MIPS';
PROCESSOR_ALPHA_21064 : ProcessorType := ' ALPHA';
end;
end;
end;
procedure MemoryInfo;
var
MemStatus: TMemoryStatus;
begin
MemStatus.dwLength := SizeOf(MemStatus);
GlobalMemoryStatus(MemStatus);
with SysInfoRec do begin
TotalPhys := MemStatus.dwTotalPhys DIV 1024;
AvailPhys := MemStatus.dwAvailPhys DIV 1024;
TotalVirtual := MemStatus.dwTotalVirtual DIV 1024;
AvailVirtual := MemStatus.dwAvailVirtual DIV 1024;
MemoryLoad := MemStatus.dwMemoryLoad;
end;
end;
procedure GetRegisterInfo;
const
FPPKey = 'hardwareDESCRIPTIONSystemFloatingPointProcessor';
var
CurVerKey : PChar;
begin
with SysInfoRec do begin
case PlattID of
VER_PLATFORM_WIN32_WINDOWS :
CurVerKey := 'SOFTWAREMicrosoftWindowsCurrentVersion';
VER_PLATFORM_WIN32_NT :
CurVerKey := 'SOFTWAREMicrosoftWindows NTCurrentVersion';
else CurVerKey := nil;
end;
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(FPPKey, False) then
FPU := 'Yes'
else FPU := 'No';
finally
Free;
end;
UserName := GetRegStr(CurVerKey,'RegisteredOwner');
CompanyName := GetRegStr(CurVerKey,'RegisteredOrganization');
if PlattID = VER_PLATFORM_WIN32_WINDOWS then
CDSerial := GetRegStr(CurVerKey,'ProductID');
end;
end;
procedure GetBiosInfo;
begin
with SysInfoRec do begin
BiosDate := GetRegStr('EnumRoot*PNP0C01
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
클라라
•
1999.11.16 10:44
1
COMMENTS
/
0
LIKES
SQL INSERT에서요..에러가나는데..봐주세요..
김고진
•
1999.11.16 18:25
클라라 wrote: > 파라독스 DB를 쓰구요. > with DataModule1.com_query do > begin >...
신재경
•
1999.11.16 07:21
1
COMMENTS
/
0
LIKES
[다시질문]수직 스크롤이 맨마지막으로 이동했을때 ?
김영대
•
1999.11.16 20:33
아래 소스를 참고해 보세요 그리고 MessageBox() 로 자료의 끝임을 알릴때 여러번 박스가 나타나므로 아...
김정하
•
1999.11.16 06:25
3
COMMENTS
/
0
LIKES
SaveDialog
이주흥
•
1999.11.16 20:52
김정하 wrote: > SaveDialog에서 파일 선택후 파일을 생성하려고 합니다. > 새로 생성하려는 파일명을 입...
김정하
•
1999.11.16 21:56
답변감사합니다. 그런데, 문제점은......... SaveDialog1.Options := [ofOverwritePormpt]를 사용해 ...
이주흥
•
1999.11.16 22:27
김정하 wrote: > 답변감사합니다. > 그런데, 문제점은......... > SaveDialog1.Options := [ofOverwr...
김선학
•
1999.11.16 05:18
1
COMMENTS
/
0
LIKES
*** Join 후 필드 값 수정하기 [급함] ***
오정운
•
1999.11.16 08:47
김선학 wrote: > 안녕하세요. > 매번 질문만 하게 되네요. > > with datamodule do > begin ...
eclipse
1999.11.16 04:31
0
COMMENTS
/
0
LIKES
퀵레포트 프린트문제....
류한규
•
1999.11.16 03:07
1
COMMENTS
/
0
LIKES
프린터 spooler제어
김영대
•
1999.11.16 03:18
류한규 wrote: > 안녕하십니까? > 프린터의 Spooler를 제어하는 방법을 아시는 분의 > 조언을 부탁드립...
한
•
1999.11.16 02:40
1
COMMENTS
/
0
LIKES
디스크 드라이브의 볼륨명 알기
제목되로 하드나 풀로피나 씨디롬의 볼륨명을 알고 싶습니다. 그럼 많은 조언 부탁드립니다.
김영대
•
1999.11.16 03:20
한 wrote: > 제목되로 하드나 풀로피나 씨디롬의 볼륨명을 알고 싶습니다. > 그럼 많은 조언 부탁드립니...
버겁이
•
1999.11.16 02:19
2
COMMENTS
/
0
LIKES
EDIT에 입력한 값이 SQL SERVER 7.0의 Money Type의 필드에 저장안됨.
김고진
•
1999.11.16 02:31
버겁이 wrote: > EDIT에 입력한 값을 SQL SERVER 7.0의 Money Type의 필드에 저장할때 소숫점 이하의 > ...
안재현
•
1999.11.16 21:48
김고진 wrote: > 버겁이 wrote: > > EDIT에 입력한 값을 SQL SERVER 7.0의 Money Type의 필드에 저장할때...
서언미
•
1999.11.16 02:06
1
COMMENTS
/
0
LIKES
Quick Report 에서 Preview 는 되는데 출력이안됩니다.(급함)
김영대
•
1999.11.16 03:25
서언미 wrote: > 안녕하세요. 여러분. > 간만이입니다. > > QuickReport에 데이타 set을 연결하지 않...
안경혜
•
1999.11.16 01:56
2
COMMENTS
/
0
LIKES
크리스탈에서 누계 구하는 법..
김지희
•
1999.11.16 18:51
Running Total을 말씀을 하시는군요.... 새로운 Running Total을 추가하시구요.... [Summary]에서 원하...
최수영
•
2000.02.02 18:20
저한테 레포트를 보내주시면 수정해서 보내드리겠습니다! 그것은 whileprintingrecord라는 것을 포물러...
강미나
•
1999.11.16 00:38
1
COMMENTS
/
0
LIKES
델파이5.0 설치에 대해서
류성호
•
1999.11.16 02:48
저는 델파이 4.0과 델파이 5.0을 같이 설치해서 사용하고 있습니다. 같이 사용해도 문제가 되지 않더라 구...
안장식
•
1999.11.16 00:03
2
COMMENTS
/
0
LIKES
실행화일 생성시 사이즈 변동이 생깁니다.
TeamX
•
1999.11.16 01:54
글쎄요.... 실행파일의 크기가 그렇게 변하는걸 보니........ 아무래도 프로젝트옵션의 문제인것 같은데...
안장식
•
1999.11.16 02:04
답변 감사합니다. 런타임패키지에는 확실히 체크가 되어있지 않거든요? 델파이를 새로 설치해야하는지 고...
김선학
•
1999.11.15 23:52
1
COMMENTS
/
0
LIKES
join후 필드값 수정
최수영
•
1999.11.16 18:57
김선학 wrote: > 안녕하세요. > 매번 질문만 하게 되네요. > > with datamodule do > begi...
노유승
•
1999.11.15 22:57
3
COMMENTS
/
0
LIKES
Quick Report Version Up을 했더니
노유승
•
1999.11.16 19:40
노유승 wrote: > Quick report Version 을 3.0에서 3.05로 업을 했더니 > 다른 버젼의 comctrl로 compile...
유도삼
•
1999.11.16 05:59
노유승 wrote: > Quick report Version 을 3.0에서 3.05로 업을 했더니 > 다른 버젼의 comctrl로 compile...
TeamX
•
1999.11.16 02:00
답변이 될지 모르겠습니다. 대개 비주얼씨로 만든 종류의 프로그램들을 보면 그 프로그램을 배포할때 비...
긴급
1999.11.15 22:33
0
COMMENTS
/
0
LIKES
도서대여 프로그램을 짜는 데요...
고민합니다.
•
1999.11.15 22:04
1
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
유도삼
•
1999.11.16 06:02
고민합니다. wrote: > 안녕하세요? > > 답변좀 부탁합니다. > > 델파이 4를 이용하고요, DB는 서버...
왕초보
•
1999.11.15 21:51
1
COMMENTS
/
0
LIKES
NT 4.0에서 BDE사용은??
갱수
•
1999.11.17 02:27
왕초보 wrote: > win98에서 BDE Setting을 하고 나면 DB를 잘 보는데.. > NT에서는 왜 안되는지 모르겠네...
김금남
•
1999.11.15 23:56
2
COMMENTS
/
0
LIKES
Edit의 overwirte모드
염재민
•
1999.11.18 18:16
김금남 wrote: > Edit박스에 입력할 때 insert모드가 되잖아요, > 그때 overwrite모드가 되게 하는 방법...
홍순용
•
1999.11.16 00:27
김금남 wrote: > Edit박스에 입력할 때 insert모드가 되잖아요, > 그때 overwrite모드가 되게 하는 방법...
김용호
1999.11.15 20:32
0
COMMENTS
/
0
LIKES
오라클 트리거
초보의 궁금증
•
1999.11.15 20:28
1
COMMENTS
/
0
LIKES
안녕하세요.. 액트브 ftp에 캐쉬된 정보 알수 있느방법 좀
김영대
•
1999.11.16 03:28
초보의 궁금증 wrote: > 안녀하세요. > 다름이 아니라 제가 패스 워드을 잊어 버려서요.. > ftp 계정을 ...
한
1999/11/16 02:40
Views
335
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 제목되로 하드나 풀로피나 씨디롬의 볼륨명을 알고 싶습니다.
> 그럼 많은 조언 부탁드립니다.
// 아래에서 GetVolumeInfo 를 보세요
unit GetInfo;
interface
uses
Windows, Messages, SysUtils, Classes, Registry;
type
SystemInfoRecord = record
VolumeName, // 디스크 볼륨명
VolumeSerial, // 디스크 시리얼번호
FileSystemName, // 파일구조
Drives : shortstring;// 디스크명들
ProcessorType : shortstring;// CPU 타입(MMX나 P-II는 안됨)
Version, // 윈도우 버전
Plattform : shortstring;// 윈도우 종류
PlattId : DWORD; // 현 플랫폼 ID
ComputerName, // 컴퓨터 이름
FPU, // FPU 유무
UserName, // 사용자 이름
CompanyName, // 회사이름
CDSerial : shortstring;// 윈도우 시디 시리얼번호
TotalPhys, // 총 메모리
AvailPhys, // 이용할 수 있는 메모리
TotalVirtual, // 총 가상메모리
AvailVirtual, // 이용할 수 있는 가상메모리
MemoryLoad : DWORD; // 메모리 적재율
BiosDate, // 마더보더의 바이오스 날짜
BiosName, // 마더보더의 바이오스 이름
BiosVer, // 마더보더의 바이오스 버전
BusType, // 버스타입
CPU, // 바이오스에 나타난 CPU종류
MachineType : shortstring;// 바이오스에 나타난 컴종류
end;
var
SysInfoRec: SystemInfoRecord;
function GetAllSystemInfo: SystemInfoRecord; stdcall;
implementation
var
OSVerInfo: TOSVersionInfo;
function GetRegStr(Key, St: string): string;
begin
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(Key, False) then result := ReadString(St);
finally
Free;
end;
end;
procedure GetComputerName;
var
Computer : PChar;
CSize : DWORD;
begin
CSize := MAX_COMPUTERNAME_LENGTH + 1;
try
GetMem( Computer, CSize );
if Windows.GetComputerName( Computer, CSize ) then
SysInfoRec.ComputerName := Computer;
finally
FreeMem( Computer );
end;
end;
procedure GetVolumeInfo;
var
lpRootPathName : PChar;
lpVolumeNameBuffer : PChar;
nVolumeNameSize : DWORD;
lpVolumeSerialNumber : DWORD;
lpMaximumComponentLength : DWORD;
lpFileSystemFlags : DWORD;
lpFileSystemNameBuffer : PChar;
nFileSystemNameSize : DWORD;
begin
try
GetMem( lpVolumeNameBuffer, MAX_PATH + 1 );
GetMem( lpFileSystemNameBuffer, MAX_PATH + 1 );
nVolumeNameSize := MAX_PATH + 1;
nFileSystemNameSize := MAX_PATH + 1;
lpRootPathName := PChar( 'C:' );
if Windows.GetVolumeInformation( lpRootPathName,
lpVolumeNameBuffer,
nVolumeNameSize,
@lpVolumeSerialNumber,
lpMaximumComponentLength,
lpFileSystemFlags,
lpFileSystemNameBuffer,
nFileSystemNameSize ) then
begin
with SysInfoRec do begin
VolumeName := lpVolumeNameBuffer;
VolumeSerial := IntToHex(HiWord(lpVolumeSerialNumber), 4) + '-' +
IntToHex(LoWord(lpVolumeSerialNumber), 4);
FileSystemName := lpFileSystemNameBuffer;
end;
end;
finally
FreeMem( lpVolumeNameBuffer );
FreeMem( lpFileSystemNameBuffer );
end;
end;
procedure GetOSVersionInfo;
function Plat(Pl: DWORD): string;
begin
case Pl of
VER_PLATFORM_WIN32s: result := 'Windows 3.1';
VER_PLATFORM_WIN32_WINDOWS: result := 'Windows 95';
VER_PLATFORM_WIN32_NT: result := 'Windows NT';
else result := '???';
end;
end;
begin
with OSVerInfo, SysInfoRec do begin
dwOSVersionInfoSize := SizeOf(OSVerInfo);
if GetVersionEx(OSVerInfo) then;
Version := Format('%d.%d (%d.%s)',[dwMajorVersion, dwMinorVersion,
(dwBuildNumber and $FFFF), szCSDVersion]);
Plattform := Plat(dwPlatformId);
PlattID := dwPlatformId;
end;
end;
procedure GetDriveNames;
var
D1 : set of 0..25;
D2 : integer;
begin
DWORD( D1 ) := Windows.GetLogicalDrives;
with SysInfoRec do begin
Drives := '';
for D2 := 0 to 25 do
if D2 in D1 then
Drives := Drives + Chr( D2 + Ord( 'A' )) + ': ';
end;
end;
procedure GetSystemInfo;
var TmpStr: string;
MProc: string;
LocalSI: TSystemInfo;
const
PROCESSOR_INTEL_386 = 386;
PROCESSOR_INTEL_486 = 486;
PROCESSOR_INTEL_PENTIUM = 586;
PROCESSOR_MIPS_R4000 = 4000;
PROCESSOR_ALPHA_21064 = 21064;
begin
Windows.GetSystemInfo(LocalSI);
with LocalSI, SysInfoRec do begin
case dwProcessorType of
PROCESSOR_INTEL_386 : ProcessorType := ' 386';
PROCESSOR_INTEL_486 : ProcessorType := ' 486';
PROCESSOR_INTEL_PENTIUM : ProcessorType := ' Pentium';
PROCESSOR_MIPS_R4000 : ProcessorType := ' MIPS';
PROCESSOR_ALPHA_21064 : ProcessorType := ' ALPHA';
end;
end;
end;
procedure MemoryInfo;
var
MemStatus: TMemoryStatus;
begin
MemStatus.dwLength := SizeOf(MemStatus);
GlobalMemoryStatus(MemStatus);
with SysInfoRec do begin
TotalPhys := MemStatus.dwTotalPhys DIV 1024;
AvailPhys := MemStatus.dwAvailPhys DIV 1024;
TotalVirtual := MemStatus.dwTotalVirtual DIV 1024;
AvailVirtual := MemStatus.dwAvailVirtual DIV 1024;
MemoryLoad := MemStatus.dwMemoryLoad;
end;
end;
procedure GetRegisterInfo;
const
FPPKey = 'hardwareDESCRIPTIONSystemFloatingPointProcessor';
var
CurVerKey : PChar;
begin
with SysInfoRec do begin
case PlattID of
VER_PLATFORM_WIN32_WINDOWS :
CurVerKey := 'SOFTWAREMicrosoftWindowsCurrentVersion';
VER_PLATFORM_WIN32_NT :
CurVerKey := 'SOFTWAREMicrosoftWindows NTCurrentVersion';
else CurVerKey := nil;
end;
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(FPPKey, False) then
FPU := 'Yes'
else FPU := 'No';
finally
Free;
end;
UserName := GetRegStr(CurVerKey,'RegisteredOwner');
CompanyName := GetRegStr(CurVerKey,'RegisteredOrganization');
if PlattID = VER_PLATFORM_WIN32_WINDOWS then
CDSerial := GetRegStr(CurVerKey,'ProductID');
end;
end;
procedure GetBiosInfo;
begin
with SysInfoRec do begin
BiosDate := GetRegStr('EnumRoot*PNP0C01