发现一个问题,硬盘剩余空间比较大的时候,坏道测试结果看着比较健康;硬盘快存满的时候,坏道测试结果看着就没那么健康了。
- 硬盘剩余空间较大时

- 硬盘剩余空间较小时
Windows10的更新重启机制真是蛋疼,在设置界面里是无法关闭的。系统给出的解决方案是,设定一个计算机工作时间,待到自动更新完毕后,会在工作时间以外的时间重启计算机。然而这个工作时间只能设置12个小时的长度。要想彻底关闭自动更新的计划重启机制,就得改组策略。
uuid u = lexical_cast<uuid>("01234567-89ab-cdef-0123-456789abcdef");
在较高版本的VS中使用lexical_cast
/D_SCL_SECURE_NO_WARNINGS
//API CryptBinaryToString in crypt32.dll Demonstration: // //CRYPT_STRING_BASE64HEADER:[ //-----BEGIN CERTIFICATE----- //AAECAwQFBgcICQoLDA0OD0FCsKFKVQ== //-----END CERTIFICATE----- //] // //CRYPT_STRING_BASE64:[ //AAECAwQFBgcICQoLDA0OD0FCsKFKVQ== //] // //CRYPT_STRING_BASE64REQUESTHEADER:[ //-----BEGIN NEW CERTIFICATE REQUEST----- //AAECAwQFBgcICQoLDA0OD0FCsKFKVQ== //-----END NEW CERTIFICATE REQUEST----- //] // //CRYPT_STRING_HEX:[ // 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f // 41 42 b0 a1 4a 55 //] // //CRYPT_STRING_HEXASCII:[ // 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ................ // 41 42 b0 a1 4a 55 AB..JU //] // //CRYPT_STRING_BASE64X509CRLHEADER:[ //-----BEGIN X509 CRL----- //AAECAwQFBgcICQoLDA0OD0FCsKFKVQ== //-----END X509 CRL----- //] // //CRYPT_STRING_HEXADDR:[ //0000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f //0010 41 42 b0 a1 4a 55 //] // //CRYPT_STRING_HEXASCIIADDR:[ //0000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ................ //0010 41 42 b0 a1 4a 55 AB..JU //] //
VOID CMyDlg::SetDropDownList(CComboBox* pComboBox)
{
DWORD theStyle;
HWND theChild;
theChild = ::GetWindow(pComboBox->m_hWnd, GW_CHILD);
theStyle = GetWindowLong(pComboBox->m_hWnd, GWL_STYLE);
theStyle &= ~CBS_DROPDOWN; //去掉DROPDOWN
theStyle |= CBS_DROPDOWNLIST; //添加DROPDOWNLIST
::DestroyWindow(theChild);
SetWindowLong(pComboBox->m_hWnd, GWL_STYLE, theStyle);
}
—– BEGIN LICENSE —– Anthony Sansone Single User License EA7E-878563 28B9A648 42B99D8A F2E3E9E0 16DE076E E218B3DC F3606379 C33C1526 E8B58964 B2CB3F63 BDF901BE D31424D2 082891B5 F7058694 55FA46D8 EFC11878 0868F093 B17CAFE7 63A78881 86B78E38 0F146238 BAE22DBB D4EC71A1 0EC2E701 C7F9C648 5CF29CA3 1CB14285 19A46991 E9A98676 14FD4777 2D8A0AB6 A444EE0D CA009B54 —— END LICENSE ——
配合判断当前进程权限的函数可以得知当前是否具备Bypass UAC的条件。
//
BOOL IsUserInAdminGroup()
{
BOOL fInAdminGroup = FALSE;
DWORD dwError = ERROR_SUCCESS;
HANDLE hToken = NULL;
HANDLE hTokenToCheck = NULL;
DWORD cbSize = 0;
ULONG dwMajorVersion = 0;
ULONG dwMinorVersion = 0;
do
{
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_DUPLICATE, &hToken))
return FALSE;
GetSysVer(&dwMajorVersion, &dwMinorVersion);
if (dwMajorVersion >= 6)
{
TOKEN_ELEVATION_TYPE elevType;
if (!GetTokenInformation(hToken, TokenElevationType, &elevType, sizeof(elevType), &cbSize))
break;
if (TokenElevationTypeLimited == elevType)
{
if (!GetTokenInformation(hToken, TokenLinkedToken, &hTokenToCheck, sizeof(hTokenToCheck), &cbSize))
break;
}
}
if (!hTokenToCheck)
{
if (!DuplicateToken(hToken, SecurityIdentification, &hTokenToCheck))
break;
}
BYTE adminSID[SECURITY_MAX_SID_SIZE];
cbSize = sizeof(adminSID);
if (!CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, &adminSID, &cbSize))
break;
if (!CheckTokenMembership(hTokenToCheck, &adminSID, &fInAdminGroup))
break;
} while (0);
if (hToken)
CloseHandle(hToken);
if (hTokenToCheck)
CloseHandle(hTokenToCheck);
return fInAdminGroup;
}
用于在64位系统中的32位进程访问64位的系统目录和注册表
//
BOOLEAN EnableWow64FsRedirection(BOOLEAN Wow64FsEnableRedirection)
{
typedef BOOLEAN (WINAPI *_Wow64EnableWow64FsRedirection)(
_In_ BOOLEAN Wow64FsEnableRedirection
);
_Wow64EnableWow64FsRedirection fpWow64EnableWow64FsRedirection = (_Wow64EnableWow64FsRedirection)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "Wow64EnableWow64FsRedirection");
if (fpWow64EnableWow64FsRedirection)
{
return fpWow64EnableWow64FsRedirection(Wow64FsEnableRedirection);
}
return FALSE;
}
//
BOOL IsWow64(HANDLE ProcessHandle)
{
typedef BOOL(WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL bIsWow64 = FALSE;
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(LoadLibraryA("kernel32.dll"), "IsWow64Process");
if (NULL != fnIsWow64Process)
{
fnIsWow64Process(ProcessHandle, &bIsWow64);
}
return bIsWow64;
}