近日發(fā)現(xiàn)微軟API的一個BUG,GetUserName API無法獲取更改名字后的Windows賬戶名。該函數(shù)只能始終返回第一次創(chuàng)建的Windows賬戶名,如果以后手動更改了賬戶名,是沒用意義的,因為返回值仍然是第一次獲取的用戶名。
先看一下微軟公司公布的函數(shù)GetUserName,函數(shù)定義聲明如下:
WINADVAPI
BOOL
WINAPI
GetUserNameA (
??? __out_ecount_part(*pcbBuffer, *pcbBuffer) LPSTR lpBuffer,
??? __inout LPDWORD pcbBuffer
??? );
WINADVAPI
BOOL
WINAPI
GetUserNameW (
??? __out_ecount_part(*pcbBuffer, *pcbBuffer) LPWSTR lpBuffer,
??? __inout LPDWORD pcbBuffer
??? );
#ifdef UNICODE
#define GetUserName?GetUserNameW
#else
#define GetUserName?GetUserNameA
#endif // !UNICODE
實踐中發(fā)現(xiàn),不僅僅是函數(shù)GetUserName函數(shù)有問題,Windows系統(tǒng)命令行模式內(nèi)置的echo %username% 命令,也是仍然返回最早的Windows賬戶名。不知道這個算不算一個Bug。以上問題在Windows 7或者Windows 10下都可以再現(xiàn)。

 

★關于WorkWin公司電腦監(jiān)控軟件★

WorkWin的使命是打造Work用途的Windows 電腦系統(tǒng),有效規(guī)范員工上網(wǎng)行為,讓老板知道員工每天在做什么(監(jiān)控包括屏幕、上網(wǎng)在內(nèi)的一舉一動),限制員工不能做什么(禁止網(wǎng)購、游戲、優(yōu)盤等)。

WorkWin基于純軟件設計,非常容易使用,無需添加或改動任何硬件,使用一臺管理機監(jiān)控全部員工機電腦。歷經(jīng)南京網(wǎng)亞十余年精心打造,此時此刻每天都有成千上萬企業(yè)電腦正在運行WorkWin,選擇WorkWin選擇“贏”。

WorkWin介紹

WorkWin監(jiān)控首頁 短視頻講解 下載免費試用版

版權所有,南京網(wǎng)亞計算機有限公司 。本文鏈接地址: GetUserName API無法獲取更改名字后的Windows賬戶名