Q&A

  • 시스템사양 알아오기??
안녕하세요!!

제가 짠 프로그램이 시스템 사양에 따라 쏙도가 굉장히 많이 차이가 납니다.

그래서 제 PC사양에서는 Error가 없는데 제 PC보다 낮은 사양으로 가면 속도를

이기지 못하고 Error가 나거나 다운이 됩니다.

그래서 인데 CPU 와 Memory등을 참조하여 속도를 조절하려고 하는데 Windows등록정보

DLL에 나오는 걸 부러는 왔는데 어떻게 참조를 하죠!!

아님 다른 방법은 없나요!!!

그럼 즐거운 하루 되시길.......

1  COMMENTS
  • Profile
    서경환 2000.06.13 01:17
    CPU종류 알아내기

    procedure TForm1.Button1Click(Sender: TObject);

    var

    Sysinfo : TSysteminfo;

    begin

    GetSystemInfo(Sysinfo);

    case Sysinfo.dwProcessorType of

    386 : Label1.Caption := 'Intel 386 ';

    486 : Label1.Caption := 'Intel 486 ';

    586 : Label1.Caption := 'Intel Pentium';

    4000 : Label1.Caption := 'MIPS R4000';

    21046 : Label1.Caption := 'Alpha 21046'

    end;

    end;



    VOID GetSystemInfo(



    LPSYSTEM_INFO lpSystemInfo // address of system information structure

    );



    // SYSTEM_INFO 구조체 내용 - 자세한 사항은 도움말 참조

    typedef struct _SYSTEM_INFO { // sinf

    union {

    DWORD dwOemId;

    struct {

    WORD wProcessorArchitecture;

    WORD wReserved;

    };

    };

    DWORD dwPageSize;

    LPVOID lpMinimumApplicationAddress;

    LPVOID lpMaximumApplicationAddress;

    DWORD dwActiveProcessorMask;

    DWORD dwNumberOfProcessors;

    DWORD dwProcessorType;

    DWORD dwAllocationGranularity;

    WORD wProcessorLevel;

    WORD wProcessorRevision;



    } SYSTEM_INFO;



    메모리상태 알아내기

    procedure TForm1.Button1Click(Sender : TObject);

    var

    MemStat : TMemoryStatus;

    begin

    MemStat.dwLength := sizeof(TMemoryStatus);

    GlobalMemoryStatus(MemStat);

    with MemStat do

    begin

    Label1.Caption := Format('%d KB',[Trunc(dwTotalPhys/1024)]); //총메모리

    Label2.Caption := Format('%d KB',[Trunc(dwAvailPhys/1024)]); //MemAvailable

    Label3.Caption := Format('%d %%',[trunc(dwAvailPhys/dwTotalPhys*100)]); //사용메모리

    Label4.Caption := Format('%d KB',[Trunc(dwTotalPageFile/1024)]); //SwapFileSetting

    Label5.Caption := Format('%d KB',[Trunc((dwTotalPageFile-dwAvailPageFile)/1024)]); //SwapFileSize

    Label6.Caption := Format('%d %%',[100-trunc(dwAvailPageFile/dwTotalPageFile*100)]); //SwapFileUsage

    end;



    BOOL GetDiskFreeSpace(

    LPCTSTR lpRootPathName, // 디스크 루트 패스

    LPDWORD lpSectorsPerCluster, // 클러스터당 섹터수

    LPDWORD lpBytesPerSector, // 섹터당 바이트수

    LPDWORD lpNumberOfFreeClusters, // 사용하지 않은 클러스터수

    LPDWORD lpTotalNumberOfClusters // 총 클러스터수

    );



    델파이팁을 참조했음...



    비룡득주 wrote:

    > 안녕하세요!!

    > 제가 짠 프로그램이 시스템 사양에 따라 쏙도가 굉장히 많이 차이가 납니다.

    > 그래서 제 PC사양에서는 Error가 없는데 제 PC보다 낮은 사양으로 가면 속도를

    > 이기지 못하고 Error가 나거나 다운이 됩니다.

    > 그래서 인데 CPU 와 Memory등을 참조하여 속도를 조절하려고 하는데 Windows등록정보

    > DLL에 나오는 걸 부러는 왔는데 어떻게 참조를 하죠!!

    > 아님 다른 방법은 없나요!!!

    > 그럼 즐거운 하루 되시길.......