Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
quick report 3.0.4 에 대해서...
안녕하세요...
첨으로 글 올립니다.
현재 델파이4로 프로그램 개발중인데..
퀵리포트3.0에 문제가 있어서 3.0.4버젼을 다운 받았습니다.
근데 상용인지 아닌지 잘 모르겠군요.
이걸 가지고 개발할때 나중에 무슨 문제라도 생기지는 않을런지..
별걸 다 궁금해 하는건지 모르겠지만..
답변 부탁드립니다.
2
COMMENTS
이영일
•
1999.04.15 19:10
CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요...
CPU의 벤더는 구할수 있는데 고유의 시리얼번호는 없나요..?
또, BIOS의 날짜나 버전은 나오는데 시리얼은 어떻게 구하나요..
즉 CPU랑 BIOS의 고유의 번호를 체크하구 싶은데 소스나 팁이 있는분은
갈켜주세요..
0
0
삭제
수정
댓글
김영대
•
1999.04.15 20:12
> 이영일 wrote:
> CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요...
> CPU의 벤더는 구할수 있는데 고유의 시리얼번호는 없나요..?
> 또, BIOS의 날짜나 버전은 나오는데 시리얼은 어떻게 구하나요..
> 즉 CPU랑 BIOS의 고유의 번호를 체크하구 싶은데 소스나 팁이 있는분은
> 갈켜주세요..
>
안녕하세요 김영대입니다
대부분의 CPU 에는 serial number 가 없는걸로 알고 있습니다
BIOS 에도 copyright, release date, version number 등등의 자료가 있습니다
혹시 각 시스템의 유일한 식별자를 찾으신다면 제한적일수는 있지만
HDD의 Volume Serial Number 를 사용하시거나 아니면
Network 카드의 MAC address 를 사용해 보세요
아래는 시스템 정보를 읽어오는 소스인데 참고해 보세요
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.06.23 02:18
1
COMMENTS
/
0
LIKES
탐색기같이 생긴 검색화면 만들기?
모승열
•
1999.06.29 11:26
최선기 께서 말씀하시기를... > 아래 질문을 했는데.. 혹시나 이해 못 하실까봐 다시 합니다. > 제 질문...
박형진
1999.06.23 01:55
0
COMMENTS
/
0
LIKES
퀵레포트 미리보기 루프 빠져나오기
남윤혁
•
1999.04.15 22:13
4
COMMENTS
/
0
LIKES
텍스트 인쇄?
남윤혁
•
1999.04.16 02:34
-.-;; 무슨말인지 잘모르겠네요... 다시 정리해서 올립니다. 아래의 함수는 그리기 전용함수입니다. ...
남윤혁
•
1999.04.16 00:37
다시 질문입니다. 제가 XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX ); YPI:= GetDeviceCaps( ...
이정욱
•
1999.04.16 01:06
화면 출력 후 XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX); YPI := GetDeviceCaps(Printe...
안치봉
•
1999.04.15 23:28
남윤혁 wrote: > 으아... 미치겠습니다. > > 인쇄를 하기 위해서 > > 매핑모드 바꾼거 까지는 좋았...
최선기
1999.06.23 01:54
0
COMMENTS
/
0
LIKES
TreeView로 검색화면 만들기가 가능한지?
Faster
•
1999.04.15 22:15
1
COMMENTS
/
0
LIKES
[요청]쩝... QuickReport 관련...
김영대
•
1999.04.16 18:42
> Faster wrote: > 출력물(QuickReport)에 대해 자세히 알고 싶습니다. > > 델파이 책중에 QuickReport...
신현숙
•
1999.06.23 00:46
1
COMMENTS
/
0
LIKES
Mdi Child 폼에 또다른 Mdi Child폼을 넣을수....
모승열
•
1999.06.29 11:24
신현숙 께서 말씀하시기를... > 안녕하세요.. > 질문이 있어서리~~ > ^^;; > > Mdi 폼에 mdi child ...
nuki
•
1999.06.23 00:01
1
COMMENTS
/
0
LIKES
스트링그리드에 입력을 하고 싶은데...
유수
•
1999.06.23 00:41
OnDrawCell 이벤트에서 직접 코딩을 해 주시면 됩니다. 이경우 현재 그려질 셀의 Canvas를 얻을...
남윤혁
•
1999.04.15 22:13
4
COMMENTS
/
0
LIKES
텍스트 인쇄?
남윤혁
•
1999.04.16 02:34
-.-;; 무슨말인지 잘모르겠네요... 다시 정리해서 올립니다. 아래의 함수는 그리기 전용함수입니다. ...
남윤혁
•
1999.04.16 00:37
다시 질문입니다. 제가 XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX ); YPI:= GetDeviceCaps( ...
이정욱
•
1999.04.16 01:06
화면 출력 후 XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX); YPI := GetDeviceCaps(Printe...
안치봉
•
1999.04.15 23:28
남윤혁 wrote: > 으아... 미치겠습니다. > > 인쇄를 하기 위해서 > > 매핑모드 바꾼거 까지는 좋았...
bds
•
1999.06.22 23:47
1
COMMENTS
/
0
LIKES
입력할때 에러메세지2
유수
•
1999.06.23 00:36
키필드에 값이 지정되지 않아서 나는 에러입니다. 해당 테이블의 프라이머리 키필드는 반드시 값이 지...
ppyp
•
1999.06.22 23:13
2
COMMENTS
/
0
LIKES
quick report 3.0.4 에 대해서...
안녕하세요... 첨으로 글 올립니다. 현재 델파이4로 프로그램 개발중인데.. 퀵리포트3.0에 문제가 있어서 3.0.4버젼을 다운 받았습니다. 근데 상용인지 아닌지 잘 모르겠군요. 이걸 가지고 개발할때 나중에 무슨 문제라도 생기지는 않을런...
이영일
•
1999.04.15 19:10
CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요... CPU의 벤더는 구할수 있는데...
김영대
•
1999.04.15 20:12
> 이영일 wrote: > CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요... > CPU의...
이영일
•
1999.04.15 19:10
1
COMMENTS
/
0
LIKES
[소스구함] CUP, BIOS의 시리얼번호나 Product ID를..
김영대
•
1999.04.15 20:12
> 이영일 wrote: > CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요... > CPU의...
bds
•
1999.06.22 21:08
1
COMMENTS
/
0
LIKES
입력할때 에러메세지
최석기
•
1999.06.22 21:30
bds 께서 말씀하시기를... > 무더운 여름에 고생많으십니다. > DBMemo로 입력하려고 합니다. > DBMemo...
권순종
1999.06.22 21:02
0
COMMENTS
/
0
LIKES
네트워크에서 객체 전송 ?
이순희
•
1999.04.15 08:34
2
COMMENTS
/
0
LIKES
시간계산에 대하여
bluepine
•
1999.04.17 01:18
이순희 wrote: > 안녕하세요... > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. > 두개...
글쎄요.
•
1999.04.15 19:02
이순희 wrote: > 안녕하세요... > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. > 두개...
franco97
1999.06.22 20:46
0
COMMENTS
/
0
LIKES
[Q]oracle 에서 sql 오류결과를 보여주려고 하는데..
Ghost
1999.04.15 15:27
0
COMMENTS
/
0
LIKES
라우터의 IP를 공유하는 Host방식 전용선에서 Midas
장일형
1999.06.22 20:28
0
COMMENTS
/
0
LIKES
OLE자동화기법에 대해서 알려주세요
김영해
•
1999.04.15 08:49
3
COMMENTS
/
0
LIKES
화면보호기 같은 프로그램 ?
손용석
•
1999.06.22 19:58
이제 델파이를 배우기 시작한 초보생인데 어디엔가 델파이 한글 도움말이 있다고 들었는데 아무리...
이정욱
•
1999.04.15 10:21
아래 작업전환을 막는것이 있습니다. 이 코드는 나이렉스의 팁 게시판에서 가져왔습니다. var Form1:...
김영해
•
1999.04.17 07:48
감사합니다.이정욱님 많은 도움이 되었습니다.
이동화
•
1999.04.15 08:56
5
COMMENTS
/
0
LIKES
프린터에 대하여 부탁드림니다.
배재민
•
1999.06.22 19:36
엑세스를 이용하여 프로그램을 만들었습니다. 그리고 Delphi 4.0 CD에 있는 인스톨 쉴드 2.02를 이용하...
김영해
•
1999.04.15 09:20
이동화 wrote: > 안녕하세요! > 프린터에대해서 궁금한게 있습니다. 아니 지금 되지가 않습니다. > 프린...
김경수
•
1999.06.22 19:57
안녕하세요. 저도 그런적이 있었거든요. 근데 실제 설치할 컴퓨터(저같은경우 win95)에 access가 설치되...
이동화
•
1999.04.15 09:39
김영해 wrote: > 이동화 wrote: > > 안녕하세요! > > 프린터에대해서 궁금한게 있습니다. 아니 지금 되...
진은정
•
1999.06.22 19:54
InstallSheild인지 BDE인지, 하여간 DAO랑 잘 어울리질 못하더군요, 저도 이것때문에 무척 고생을 했...
강동연
•
1999.06.22 19:29
1
COMMENTS
/
0
LIKES
(질문)제발 좀 알려주세요. 코드 어디가 잘못되었는지..
섭
•
1999.06.22 20:13
강동연 께서 말씀하시기를... > 고수님들 부탁드립니다. > > 테이블 리스트의 내용을 파일에 저장할때 ...
ppyp
1999/06/22 23:13
Views
201
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
CPU의 벤더는 구할수 있는데 고유의 시리얼번호는 없나요..?
또, BIOS의 날짜나 버전은 나오는데 시리얼은 어떻게 구하나요..
즉 CPU랑 BIOS의 고유의 번호를 체크하구 싶은데 소스나 팁이 있는분은
갈켜주세요..