欧美特黄不卡,涩涩视频在线,成人国产精品一区二区网站,亚洲一区二区三区欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

用api函數讀取硬盤的序列號

用api函數讀取硬盤的序列號

更新時間:2022-05-02 文章作者:未知 信息來源:網絡 閱讀次數:

在寫程序時我們想對每一臺計算機都生成一個唯一的標識,而且在一此共享軟件中我們也看到,軟件在不同的機器上生成了不同的標識,這是如何實現的呢,其實是軟件有一部分程序讀取了,本地計算機的一部分硬件參數(如硬盤序列號,網卡序列號等等),再通過一系列算法而得到了一個唯一標識,其實我們也可以通過一個api函數生成我們的唯一標識,由于硬盤人人都有,而網卡不一定每個人都有,所以以讀硬盤序列號為例,
下面就先介紹一下我們要用到的api函數
BOOL GetVolumeInformation(
  LPCTSTR lpRootPathName,           // 硬盤的路徑
  LPTSTR lpVolumeNameBuffer,        // 硬盤的卷標
  DWORD nVolumeNameSize,            // 卷標的字符串長度
  LPDWORD lpVolumeSerialNumber,     // 硬盤的序列號
  LPDWORD lpMaximumComponentLength, // 最大的文件長度
  LPDWORD lpFileSystemFlags,        // 文件系統的一此標志
  LPTSTR lpFileSystemNameBuffer,    // 存儲所在盤符的分區類型的長指針變量
  DWORD nFileSystemNameSize         // 分區類型的長指針變量所指向的字符串長度
);
如果上述函數成功就返回一個非0值。

光說不做,是不行了,我們還得實踐一下:// 最大的文件長度
首選用MFC AppWizard建立一個基于Dialog base的對話框工程,名為GetHardID,點擊finish。
加一個按鈕,雙擊它,點擊ok,并在對應的函數中加入如下代碼:
LPCTSTR lpRootPathName="c:\\"; //取C盤
LPTSTR lpVolumeNameBuffer=new char[12];//磁盤卷標
DWORD nVolumeNameSize=12;// 卷標的字符串長度
DWORD VolumeSerialNumber;//硬盤序列號
DWORD MaximumComponentLength;// 最大的文件長度
LPTSTR lpFileSystemNameBuffer=new char[10];// 存儲所在盤符的分區類型的長指針變量
DWORD nFileSystemNameSize=10;// 分區類型的長指針變量所指向的字符串長度
DWORD FileSystemFlags;// 文件系統的一此標志
::GetVolumeInformation(lpRootPathName,
  lpVolumeNameBuffer, nVolumeNameSize,
  &VolumeSerialNumber, &MaximumComponentLength,
  &FileSystemFlags,
  lpFileSystemNameBuffer, nFileSystemNameSize);

CString str;
str.Format("Seria Num is %lx ",VolumeSerialNumber);
AfxMessageBox(str);

編譯,鏈接并運行程序,單擊按鈕,在彈出的對話框中就是我們要的序列號。
對不對我們驗證一下,進入dos窗口,打入"dir c:/p"命令,怎么樣是不是和我們的程序顯示的一模一樣
這樣我們就在功告成了。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 二手房| 霍山县| 兴义市| 泾源县| 靖远县| 彭山县| 射阳县| 晋江市| 绥江县| 杭锦旗| 岳池县| 湘乡市| 灵台县| 玛曲县| 金川县| 叙永县| 安阳市| 庐江县| 大名县| 沁水县| 独山县| 嘉鱼县| 五大连池市| 武汉市| 巴彦淖尔市| 五指山市| 汕尾市| 卢龙县| 巴彦淖尔市| 阿鲁科尔沁旗| 罗平县| 北京市| 石柱| 南皮县| 高尔夫| 郧西县| 彰化县| 会泽县| 临湘市| 吉隆县| 永福县|