Q&A

  • Pentium3 CPUID 구하는 법
펜티엄2까지는 델파이팁의 CPUID 구하는 방법으로 해결이 되는데

펜티엄3에서는 CPUID가 모두 같이 나옵니다.

해결책 좀 알려주세요.

2  COMMENTS
  • Profile
    도마뱀 2000.07.19 02:43
    아래꺼중 하나를 써봄이 어떨런지...



    김영대씨의 답변 내용중...



    > // 아래에서 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
  • Profile
    도마뱀 2000.07.19 02:38
    SexyBear wrote:

    > 펜티엄2까지는 델파이팁의 CPUID 구하는 방법으로 해결이 되는데

    > 펜티엄3에서는 CPUID가 모두 같이 나옵니다.

    > 해결책 좀 알려주세요.



    우하하

    미국의 사생활 침해사건 관련 변호사들은 지난주 인텔이 CPU ID계획을 발표하자마자 일제히 공격에 나섰다. 인텔은 온라인 주문이 어디서 오는지 확인하는 프로세서ID 넘버를 웹브라우저들이 전달할 수 있기 때문에 이 새로운 특성이 EC의 붐을 가져올 것이라고 떠들어댔다.



    그러나 프라이버시 옹호자들은 새로운 인텔칩이 사용자가 인터넷상의 어디를 들르든 그 전자ID를 퍼뜨릴 것이라고 반발하고 있다. 그들은 공개적으로 인텔제품에 대한 대규모 불매 운동을 거론하며 인텔을 위협했다. 그리고 인텔은 금방 꼬리를 내렸다. CPU ID기능을 초기상태로 꺼버릴 것을 약속한 것이다.

    • SexyBear
    • 2000.07.19 02:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 도마뱀
      2000.07.19 02:43
      아래꺼중 하나를 써봄이 어떨런지... 김영대씨의 답변 내용중... > // 아래에서 GetVolumeInfo 를 보...
    • 도마뱀
      2000.07.19 02:38
      SexyBear wrote: > 펜티엄2까지는 델파이팁의 CPUID 구하는 방법으로 해결이 되는데 > 펜티엄3에서는 CPU...
    • 김영해
      2000.07.19 03:21
      신현숙 wrote: > 안녕하세요.. > excel로 자료를 보내고, excel의 자료를 읽고 하다 보니.. > f1book콤...
    • 호야
    • 2000.07.19 02:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.07.19 02:20
      호야 wrote: > procedure TForm1.ToolButton5Click(Sender: TObject); > var > ActiveForm: TForm; > ...
    • ljb007
    • 2000.07.19 02:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 오광배
      2000.07.29 03:35
      ljb007 wrote: > sql서버 C/S환경은 절대아님 > 10대의pc가 있는데 1대만 실행파일과 db을 설치하고 > ...
    • 최용일
      2000.07.19 12:11
      안녕하세요. 최용일입니다. for j:=1 to Column do AStdvr[i]:=a[j]*b[j,i]; 위에서 b가 이차원배...
    • Faster
    • 2000.07.19 01:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성호종
      2000.07.21 22:15
      Faster wrote: 당근 가능하지요... 아주 기본적인 형태의 그래프군요.... > 넙쭉. > > 안녕하심까. ...
    • heimdal
    • 2000.07.19 01:19
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.07.19 01:25
      heimdal wrote: > datetimepicker을 이용해서 검색을 하고싶은데여.. > > 2000-7-17일을 클릭하면 디비...
    • heimdal
      2000.07.19 02:34
      구창민 wrote: > heimdal wrote: > > datetimepicker을 이용해서 검색을 하고싶은데여.. > > > > 2000...
    • 김영해
      2000.07.19 03:26
      heimdal wrote: > 구창민 wrote: > > heimdal wrote: > > > datetimepicker을 이용해서 검색을 하고싶은...
    • 한재필
      2000.07.19 01:15
      xfilemania wrote: > > Exit가 아니라 다른 것이 있는지 궁금합니다. Exit는 아예 프로시저에서 빠...
    • 구창민
      2000.07.19 01:10
      xfilemania wrote: > > Exit가 아니라 다른 것이 있는지 궁금합니다. Exit는 아예 프로시저에서 빠...
    • 문현범
    • 2000.07.19 00:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.07.19 01:13
      문현범 wrote: > 년도를 바꿀 수 있게금 하는 달력 콤포넌트를 가지고 계신분은 꼭 좀 공유 합시다. > 저...
    • 한재필
    • 2000.07.19 00:42
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이주흥
      2000.07.19 00:51
      한재필 wrote: > 델파이로 만든프로그램인데요 파라독스를 사용한 테이블이 연결되있는데 > 인스톨쉴드를...
    • 한재필
      2000.07.19 01:06
      이주흥 wrote: > 한재필 wrote: > > 델파이로 만든프로그램인데요 파라독스를 사용한 테이블이 연결되있...
    • 이주흥
      2000.07.20 02:39
      아..이제 봤네요.. BDE를 따로설치하는건 저도 해보지 않았구요.. 아마 정품을 사셨다면 따로 들어있을지...
    • 장명선
    • 2000.07.19 00:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성호종
      2000.07.21 22:29
      장명선 wrote: Lock은 paradox만 그런것이 아니고 모든 DB가 마찬가지입니다. 다만 table을 create할때 L...
    • 초보자
    • 2000.07.19 00:35
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 초보자
      2000.07.19 02:58
      찾았습니다.. 먼저 고수님들의 성원에 감사들입니다. 아래의 내용을 From 문장을 합쳐서 하닌 문제없이 ...
    • ACCESS
      2000.07.19 02:39
      초보자 wrote: > 데이타는 ms access2000을 사용하고 있습니다. > > > ADOQBAR.Close; > ADOQBAR.S...
    • 어린왕자
      2000.07.19 01:53
      초보자 wrote: > 데이타는 ms access2000을 사용하고 있습니다. > > > ADOQBAR.Close; > ADOQBAR.S...
    • 어린왕자
      2000.07.19 03:02
      아..그룹별루 정렬을 안해두 되는 군요.. 이상타 쩌번엔 안되는 건 같던데..윈도우 98만 안되었던가? m...
    • 한재필
      2000.07.19 01:01
      김인수 wrote: > 고수님들 안녕하세요 > 오늘두 하수는 고수님들을 찾아 뵙는군요 > 염치없지만 제문제...
    • 이경문
      2000.07.19 00:47
      Form의 KeyPreview 를 true로 해 주시고 procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char)...
    • 김인수
      2000.07.19 01:08
      정말루 감사합니다 가르쳐주신대로 해보겠습니다 좋은 하루가 되시길 바랍니다 안녕히...
    • Black}{ole
      2000.07.19 00:27
      델파이걸 wrote: > 특정 폴더를 변수에 넣어주고 나서 거기에 있는것들을 하나씩 읽어와 > Listbox1.ite...
    • 델파이걸
      2000.07.19 01:27
      Black}{ole wrote: > > > > 안녕하세요. ^^ > 걍.. FileListBox를 이용하심.. 간단하게 해결될것 같...
    • Black}{ole
      2000.07.19 03:50
      델파이걸 wrote: > Black}{ole wrote: > > > > > > > 안녕하세요. ^^ > > 걍.. FileListBox를 이용...
    • 구창민
      2000.07.19 01:30
      김선달 wrote: > 스크린에서 현재 키보드 커서의 좌표를 알수 있는 함수를 알고 싶습니다. > API함수는 ...
    • heimdal
    • 2000.07.18 22:44
    • 0 COMMENTS
    • /
    • 0 LIKES
    • Black}{ole
      2000.07.19 00:29
      델초... wrote: > 고수님들의 철저한 외면을 받고 있는 델초...입니다.....정말 울고 싶군요... > 다시한...
    • 전수완
    • 2000.07.18 22:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.07.18 22:36
      안녕하세요 하얀까마귀 입니다. 그냥 데이타베이스 엔진 설치하시고 개발하시면 됩니다.. 단지.. 테...