惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
博客园 - 司徒正美
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
L
LangChain Blog

博客园 - -==NoWay.==-

[转载]使用C#的BitmapData The Open Source iPhone Apps List 一个自动更新的简单实现(通过反射解耦) - -==NoWay.==- - 博客园 Lambda印象 使用WinDBG + SOS调试.Net程序的一般步骤 魔兽、星际和红警的比较 迟到 年华 一款简单却很非脑力的小游戏 Implementing Virtual Mode with Just-In-Time Data Loading in the Windows Forms DataGridView Control 只因女婿是VB程序员,刚见面就被未来岳父轰出家门 About System.Reflection.Emit InitialInstanceActivator AsyncCallback The Windows Control 为开通http://beta.zooomr.com/的Pro帐户用的 AsyncCallback The Windows Control 标准代码页列表 winmine cheat Read MP3 Header Info
获取系统信息
-==NoWay.==- · 2007-08-19 · via 博客园 - -==NoWay.==-

  • OS Version
  • CPU
  • Memory
  • Mouse
  • Storage
  • Hard Disk
  • Multimedia (Wave Device)
  • OS Protected Files (Win2K, ME & later)
  • Misc (User Info, Machine Name, etc.)
  • OS Version

    This component has been implemented in SystemOS project. Following APIs are used to extract this information.

    • GetVersionEx

    If OSVERSIONINFOEX structure is not available then you will have to take help of registry to determine if WinNT installation is Workstation, Server or Domain Controller. This information is available in ProductType key under HKLM\\System\\CurrentControlSet\\Control\\ProductOptions registry entry.

    CPU

    CPU’s approximate speed can be obtained from registry key ~MHz under HKLM\\Hardware\\Description\\System\\CentralProcessor\\0 registry entry. This technique works on OS other than Win95. For rest of the CPU information, GetSystemInfo API can be used.

    Memory

    This component has been implemented in SystemMemory project. You can use GlobalMemoryStatus API to extract the information about system memory.

    Mouse

    This component has been implemented in SystemMouse project. You can use GetSystemMetrics API to see if a mouse is present and if buttons are swapped or not. To get speed of mouse speed you can use SystemParametersInfo API.

    Storage

    This component has been implemented in SystemStorage project. This extracts information about all the storage devices attached to a system, internal as well as external. You can use following APIs to accomplish the task of extracting the information.

    • GetLogicalDrives
    • GetDriveType
    • GetDiskFreeSpaceEx
    • GetVolumeInformation

    Hard Disk

    This component has been implemented in SystemHDisk project. This component extracts information about hard disk partitions only. This is accomplished by checking if the drive type is of DRIVE_FIXED or not.

    nDriveType = ::GetDriveType (szCurrentDrive);
    if (nDriveType == DRIVE_FIXED)
    {
       .
    }
    

    Following APIs are used to extract information.

    • GetLogicalDrives
    • GetDriveType
    • CreateFile
    • DeviceIoControl

    Multimedia

    This component has been implemented in SystemMultiMedia project. This component extracts information about any wave output audio device installed on the system. In the next release of this application, wave input and auxiliary input device information will also be added. Following APIs can be used to extract the information.

    • waveOutGetNumDevs
    • waveOutGetDevCaps

    For this project, make sure that you are linking with winmm.lib library and have following headers file included.

    #include <mmsystem.h>
    #include <mmreg.h>

    OS Protected Files

    This component has been implemented in SystemProtectFiles project. The component extracts list of OS files that has been marked as protected. This feature Windows File Protection (WFP) has been introduced with Windows2000. WFP prevents the replacement of essential system files installed as part of Windows 2000. Applications should not overwrite these files because they are used by the system and other applications. Protecting these files prevents application and operating system failures. All Windows-based applications and their installation programs should be aware of WFP. SfcGetNextProtectedFile API can be used to get the list of protected files.

    Locale Information

    To retrieve locale info there is only one API that you will require, GetLocaleInfo. It is the second parameter to this call, LCType, which you need to specify to get the specific piece of information you want. There are about 100 different values you can specify for this information. For more information on all of them, check the Platform SDK documentation for this API. E.g. If you want to get the English name of the country which was specified at the time of OS installation, you will use the value LOCALE_SENGCOUNTRY for LCType in GetLocaleInfo call. I will not describe each and every value. I think documentation has done this job pretty well. For implementation look in the GetInformation function call of CLocaleInformation class in SystemLocale project.

    Misc

    This component has been implemented in SystemMisc project. This component extracts information like logged in User Name, Machine Name, Local Language, etc. Following APIs can be used to get this information.

    • GetComputerName
    • GetUserName
    • GetSystemDefaultLangID