Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
초보프로그래머를 도와주세요
델파이를 시작한지 얼마 되지 않습니다.
하드 디스크인지 아닌지 구별하는 방법하구요
하드 디스크의 총 갯수를 체크할수 있나요
자세히 부탁 드릴께요
2
COMMENTS
최용일
•
2000.04.19 20:30
안녕하세요. 최용일입니다.
디스크의 타입정보는 GetDriveType란 API함수를 이용하시면 알 수 있습니다.
드라이브명은 A부터 Z까지 26개만 사용할 수 있습니다. 그중 A와 B는 플로피
드라이브를 위하여 예약되어 있습니다. 그러므로 하드디스크는 C이상부터의
이름을 가질 수 있습니다. GetDriveType에 인자로 드라이브의 루트디렉토리를
넣어주시면 드라이브 타입을 알려줍니다.
var
Drive: array[0..4] of Char;
I: Integer;
TotalHardDiskCount: Integer;
begin
Drive := 'c:';
TotalHardDiskCount := 0;
for I := Ord('C') to Ord('Z') do
begin
Drive[0] := Chr(I);
if GetDriveType(Drive) = DRIVE_FIXED then
begin
ShowMessage(Drive[0] + ': 드라이브는 고정된 하드디스크드라이브입니다.');
Inc(TotalHardDiskCount);
end;
end;
ShowMessage('총 하드디스크의 갯수는 ' + IntToStr(TotalHardDiskCount) + '개입니다.');
end;
GetDriveType의 리턴값 설명입니다.
0 The drive type cannot be determined.
1 The root directory does not exist.
DRIVE_REMOVABLE The drive can be removed from the drive.
DRIVE_FIXED The disk cannot be removed from the drive.
DRIVE_REMOTE The drive is a remote (network) drive.
DRIVE_CDROM The drive is a CD-ROM drive.
DRIVE_RAMDISK The drive is a RAM disk.
^^ 항상 즐코하세요.
엄주평 wrote:
> 델파이를 시작한지 얼마 되지 않습니다.
> 하드 디스크인지 아닌지 구별하는 방법하구요
> 하드 디스크의 총 갯수를 체크할수 있나요
> 자세히 부탁 드릴께요
>
>
0
0
삭제
수정
댓글
최석기
•
2000.04.19 20:04
엄주평 wrote:
> 델파이를 시작한지 얼마 되지 않습니다.
> 하드 디스크인지 아닌지 구별하는 방법하구요
> 하드 디스크의 총 갯수를 체크할수 있나요
> 자세히 부탁 드릴께요
>
>
PC에 설치된 드리이브 목록을 구하는 소스인데 참고 하세요..
하드디스크인지는 GetDriveType 함수를 사용하여 알 수 있습니다.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// 플로피 디스크의 인치
function FloppyDriveSize(Drive: Char): String;
type
PDIOC_REG = ^TDIOC_Registers;
TDIOC_Registers = record
Reg_EBX, Reg_EDX, Reg_ECX, Reg_EAX,
Reg_EDI, Reg_ESI, Reg_Flags : DWORD
end;
const
VWIN32_DIOC_DOS_INT13 = 4;
var
H : THandle;
R : TDIOC_Registers;
C : DWORD;
begin
Result := 'unknown';
H := CreateFile('.VWIN32', 0, 0, nil, 0, 0, 0);
if H <> INVALID_HANDLE_VALUE then
try
R.Reg_EAX := $800;
R.Reg_EDX := ord(upcase(Drive)) - Ord('A');
if DeviceIOControl(H, VWIN32_DIOC_DOS_INT13, @R,
SizeOf (R), @R, SizeOf (R), C, nil) and
(R.Reg_Flags and 1 = 0) then
if R.Reg_EBX and $FF < 3 then
Result := '5.25'
else
Result := '3.5';
finally
CloseHandle(H);
end
end;
procedure ListDrives(Strings: TStrings);
const
BufSize = 256;
var
Buffer: PChar;
P: PChar;
DrivePchar: array[0..5] of Char;
iDriveType: Integer;
begin
GetMem(Buffer, BufSize);
try
Strings.BeginUpdate;
try
Strings.Clear;
// 시스템에 설치된 드라이브 목록 구하기(형태 c:
d:
)
if GetLogicalDriveStrings(BufSize, Buffer) <> 0 then
begin
P := Buffer;
while P^ <> #0 do
begin
iDriveType := GetDriveType(P);
case iDriveType of
DRIVE_REMOVABLE:
begin
Strings.Add(P+' - Floppy drive ('+
FloppyDriveSize(P[0])+')'); // 인치 구분
end;
DRIVE_FIXED:
Strings.Add(P+' - Hard drive');
DRIVE_REMOTE:
Strings.Add(P+' - Network drive');
DRIVE_CDROM:
Strings.Add(P+' - CD-ROM drive');
DRIVE_RAMDISK:
Strings.Add(P+' - RAM drive');
end;
Inc(P, StrLen(P) + 1);
end;
end;
finally
Strings.EndUpdate;
end;
finally
FreeMem(Buffer, BufSize);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListDrives(Memo1.Lines);
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
hjcho96
•
2000.04.20 01:42
1
COMMENTS
/
0
LIKES
급 !!! interbase
sjd
•
2000.04.20 05:14
hjcho96 wrote: > win95 > computer1->interbase server 설치 > computer2->interbase client 설치 > B...
델초보
•
2000.04.20 01:42
1
COMMENTS
/
0
LIKES
[file not control.res]<--error message
갱민이
•
2000.04.20 02:50
델초보 wrote: > 안녕하세여? > > 델초보임당 > > 다른 분의 소스 가져다가 컴파일 하는 뎅 리소스 ...
초보1
•
2000.04.20 01:04
3
COMMENTS
/
0
LIKES
DBgrid내에서의 연산은 ?
ACCESS
•
2000.04.20 02:50
초보1 wrote: > 초보자가 올립니다. > query, datasource, dbgrid 가 서로연결되어있고, > > dbgrid...
구창민
•
2000.04.20 01:49
초보1 wrote: > 초보자가 올립니다. > query, datasource, dbgrid 가 서로연결되어있고, > > dbgrid...
하얀까마귀
•
2000.04.20 08:30
안녕하세요 하얀까마귀 입니다.. 구창민님의 말씀처럼.. dbgrid에서 어떤 입력을 하는건 별로 안좋다고 ...
맹주형
•
2000.04.20 00:59
2
COMMENTS
/
0
LIKES
한글출력시 공백처리 문제
강민주
•
2000.04.20 01:33
맹주형 wrote: > DB에 있는 데이터를 프린터로 출력을 하려고 합니다. > "델파이"라는 데이터가 있을경우...
내가 찾아볼께
•
2000.09.02 09:23
강민주 wrote: > 맹주형 wrote: > > DB에 있는 데이터를 프린터로 출력을 하려고 합니다. > > "델파이"...
황남철
•
2000.04.19 23:50
3
COMMENTS
/
0
LIKES
간단한거 같은데 모르겠네요
최용일
•
2000.04.19 23:58
안녕하세요. 최용일입니다. Copy(A ,2, Length(A) - 1); ^^ 항상 즐코하세요. 황남철 wrote: > ...
강인규
•
2000.04.20 00:19
테스트해보지 않았습니다만 length명령을 사용하시면 될듯합니다. copy(a,2,length(a)); 하시면 됩니...
하얀까마귀
•
2000.04.20 08:36
안녕하세요 하얀까마귀 입니다.. 다른분들이 답변올리셧는데.. 저두 한마디.. 후후 if pos('e' , a) ...
한승수
•
2000.04.19 22:57
3
COMMENTS
/
0
LIKES
폼의 크기에 타라서 컴포넌트 크기 조절 좀 갈쳐주세요
최용일
•
2000.04.19 23:07
안녕하세요. 최용일입니다. Anchors 속성을 사용해 보세요. True, False바꾸어 보면서 몇번 실행해보시...
한승수
•
2000.04.19 23:27
예..감사합니다..그런데요.. 툴바같은 컴포넌트는 버튼을 추가했을경우..폼의 크기가 버튼의 합의 크기...
최용일
•
2000.04.20 00:02
안녕하세요. 최용일입니다. 폼에 스크롤바를 생기지 않게 하실려면 폼의 AutoScroll속성값을 False로 해...
최진석
•
2000.04.19 22:25
1
COMMENTS
/
0
LIKES
트리뷰관련 질문입니다.
최용일
•
2000.04.19 23:01
안녕하세요. 최용일입니다. 델파이에서 트리노드에 Data란 속성이 있습니다. 아마도 비베의 트리노드에 ...
파이공주
•
2000.04.19 22:14
3
COMMENTS
/
0
LIKES
이종DB 간 inset 시.. 문제가 발생해요..고수님들의 사려깊은 조언 ..
이치형
•
2000.04.20 02:41
파이공주 wrote: > > 이종DB 간 inset 시.. 문제가 발생해요..고수님들의 사려깊은 조언 .. > 하나...
파이공주
•
2000.04.21 23:06
이치형 wrote: > 파이공주 wrote: > > > > 이종DB 간 inset 시.. 문제가 발생해요..고수님들의 사려...
이치형
•
2000.04.22 05:23
파이공주 wrote: > 이치형 wrote: > > 파이공주 wrote: > > > > > > 이종DB 간 inset 시.. 문제가 ...
이상우
2000.04.20 00:31
0
COMMENTS
/
0
LIKES
TStoredProc Error 잡아주십시오..
박충국
2000.04.20 00:09
0
COMMENTS
/
0
LIKES
TapControl의 전문가님들!~~
장경임
2000.04.19 21:23
0
COMMENTS
/
0
LIKES
lookup field 작성법좀...
최일성
•
2000.04.19 21:16
1
COMMENTS
/
0
LIKES
comboedit에 관한 질문입니다!
조규춘
•
2000.04.19 21:36
최일성 wrote: > 안녕하십니까? > 델파이를 공부중인 초보자거든여! > 델파이 5.0을 사용하고 있는데 co...
초보1
•
2000.04.19 21:04
1
COMMENTS
/
0
LIKES
다시 글을.... 두개의 maskedit의 기간 구하기 ?
최용일
•
2000.04.19 21:58
안녕하세요. 최용일입니다. TimeStamp를 쓰시면 간단하게 구하실 수 있습니다. function TForm1.GetD...
knight
2000.04.19 20:47
0
COMMENTS
/
0
LIKES
merge.reg...,css.. setup 시 error
고종일
•
2000.04.19 20:05
1
COMMENTS
/
0
LIKES
실행파일 2개사이에서 상호 간섭처리????
최용일
•
2000.04.19 20:45
안녕하세요. 최용일입니다. 뭐 여러가지 방법이 있겠지만 메세지를 사용하시는것이 제일 간단할 것 같은...
엄주평
•
2000.04.19 19:42
2
COMMENTS
/
0
LIKES
초보프로그래머를 도와주세요
델파이를 시작한지 얼마 되지 않습니다. 하드 디스크인지 아닌지 구별하는 방법하구요 하드 디스크의 총 갯수를 체크할수 있나요 자세히 부탁 드릴께요
최용일
•
2000.04.19 20:30
안녕하세요. 최용일입니다. 디스크의 타입정보는 GetDriveType란 API함수를 이용하시면 알 수 있습니다....
최석기
•
2000.04.19 20:04
엄주평 wrote: > 델파이를 시작한지 얼마 되지 않습니다. > 하드 디스크인지 아닌지 구별하는 방법하구요...
하수
2000.04.19 18:15
0
COMMENTS
/
0
LIKES
저도 알고 싶습니다. (자동업그레이드)
Red
•
2000.04.19 18:13
1
COMMENTS
/
0
LIKES
퀵 리포트에서 총 페이지수 구하는 방법 좀.....
HART
•
2000.04.19 18:29
답은 모두 알는데 조합이 안되것 같은데. 먼저 출력하기 전에 prepare를 하지면 pagecount에 출력하려는 출...
이경문
2000.04.19 16:42
0
COMMENTS
/
0
LIKES
mpeg을 공부할 수 있는 좋은 사이트!
초보
•
2000.04.19 14:21
4
COMMENTS
/
0
LIKES
[델파이]에디트박스에서 문자와 숫자구분을 어떻게 해요?
최은석
•
2000.04.20 18:37
초보 wrote: > 4시간동안 헤맸어요..머리가 무척나쁜건지 일주일 봤는데 모르겠네요. > 폼에서 디자인하...
Mr.Q
•
2000.04.20 05:00
초보 wrote: > 4시간동안 헤맸어요..머리가 무척나쁜건지 일주일 봤는데 모르겠네요. > 폼에서 디자인하...
HART
•
2000.04.19 18:57
조금은 무시한 방법이되 숫자인지 확실하게 구분할 수 있습니다. function numbercheck(s : string) : b...
최석기
•
2000.04.19 18:36
초보 wrote: > 4시간동안 헤맸어요..머리가 무척나쁜건지 일주일 봤는데 모르겠네요. > 폼에서 디자인하...
엄주평
2000/04/19 19:42
Views
262
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
디스크의 타입정보는 GetDriveType란 API함수를 이용하시면 알 수 있습니다.
드라이브명은 A부터 Z까지 26개만 사용할 수 있습니다. 그중 A와 B는 플로피
드라이브를 위하여 예약되어 있습니다. 그러므로 하드디스크는 C이상부터의
이름을 가질 수 있습니다. GetDriveType에 인자로 드라이브의 루트디렉토리를
넣어주시면 드라이브 타입을 알려줍니다.
var
Drive: array[0..4] of Char;
I: Integer;
TotalHardDiskCount: Integer;
begin
Drive := 'c:';
TotalHardDiskCount := 0;
for I := Ord('C') to Ord('Z') do
begin
Drive[0] := Chr(I);
if GetDriveType(Drive) = DRIVE_FIXED then
begin
ShowMessage(Drive[0] + ': 드라이브는 고정된 하드디스크드라이브입니다.');
Inc(TotalHardDiskCount);
end;
end;
ShowMessage('총 하드디스크의 갯수는 ' + IntToStr(TotalHardDiskCount) + '개입니다.');
end;
GetDriveType의 리턴값 설명입니다.
0 The drive type cannot be determined.
1 The root directory does not exist.
DRIVE_REMOVABLE The drive can be removed from the drive.
DRIVE_FIXED The disk cannot be removed from the drive.
DRIVE_REMOTE The drive is a remote (network) drive.
DRIVE_CDROM The drive is a CD-ROM drive.
DRIVE_RAMDISK The drive is a RAM disk.
^^ 항상 즐코하세요.
엄주평 wrote:
> 델파이를 시작한지 얼마 되지 않습니다.
> 하드 디스크인지 아닌지 구별하는 방법하구요
> 하드 디스크의 총 갯수를 체크할수 있나요
> 자세히 부탁 드릴께요
>
>